Как стать автором
Обновить
77
0
Журавлёв Юрий @stalkerg

Разработчик

Применение машинного обучения для увеличения производительности PostgreSQL

Время на прочтение 10 мин
Количество просмотров 21K
image

Машинное обучение занимается поиском скрытых закономерностей в данных. Растущий рост интереса к этой теме в ИТ-сообществе связан с исключительными результатами, получаемыми благодаря ему. Распознавание речи и отсканированных документов, поисковые машины — всё это создано с использованием машинного обучения. В этой статье я расскажу о текущем проекте нашей компании: как применить методы машинного обучения для увеличения производительности СУБД.
В первой части этой статьи разбирается существующий механизм планировщика PostgreSQL, во второй части рассказывается о возможностях его улучшения с применением машинного обучения.

Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Комментарии 6

Доступ к таблицам из Си расширений для Postgres

Время на прочтение 8 мин
Количество просмотров 9.4K

Всем привет!


В этот раз я расскажу не про использование Python или очередной трюк с CSS/HTML и, увы, не про то, как я 5 лет портировал Вангеры, а про один важный аспект написания расширений для замечательной СУБД PostgresSQL.

На самом деле, уже есть достаточно много статей о том, как написать расширение для Postgres на Си (к примеру, эта), в том числе и на русском языке. Но, как правило, в них описываются достаточно простые случаи. В этих статьях и инструкциях авторы реализуют функции, которые получают на вход данные, как-то их обрабатывают, а затем возвращают одно число, строку или пользовательский тип. В них нет пояснений, что делать, если из Си кода нужно пробежаться по обычной таблице, существующей в базе, или индексу.

К таблицам из Си можно получить доступ через хорошо описанный но медленный SPI (Server Programming Interface), также есть очень сложный способ, через буферы, а я расскажу про компромиссный вариант. Под катом я постарался дать примеры кода с подробными пояснениями.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 3

PostgreSQL на многоядерных серверах Power 8

Время на прочтение 13 мин
Количество просмотров 26K

Аннотация


При помощи московского представительства компании IBM мы провели тестирование производительности последних версий СУБД PostgreSQL на серверах Power8, изучили масштабируемость зависимость производительности от количества одновременных запросов, нашли узкие места ограничивающие производительность, предложили новые технические решения и добились рекордной производительности.

Введение


В ряде задач практически неограниченного масштабирования по объему обрабатываемых транзакций можно достичь, используя распределённые системы, в которых тем или иным способом поток транзакций распределяется на большое количество серверов. Такое масштабирование часто называют “горизонтальным”. Однако, универсального распределенного решения не существует, кроме того, распределённость имеет свою цену. Архитектура системы должна заранее проектироваться как распределённая. Распределенные системы менее гибки, чем монолитные, к тому же они сложнее в эксплуатации и требуют более высокой квалификации персонала. Одни задачи легче поддаются распараллеливанию, другие — сложнее. Поэтому спрос на высокопроизводительные монолитные системы существует, и достижение возможно лучших результатов по производительности в рамках одного сервера было и остается важной задачей. Это часто называют “вертикальным масштабированием”.

Сущность проблем, возникающих при параллельной обработке большого количества транзакций в монолитных и распределенных системах, одинакова — это конкуренция между транзакциями за доступ к одним и тем же ресурсам. Говоря просто, отдельные процессы работают параллельно и независимо до тех пор, пока не выстраиваются в очередь к какому-либо общему ресурсу (а это может быть как аппаратный ресурс, так и элемент информации, хранящийся в базе данных) и не начинают ожидать друг друга.

Для решения таких проблем существуют механизмы управления доступом к ресурсам — использование блокировок, а также пригодные в некоторых случаях неблокирующие (lock-free) подходы. Рост производительности этих механизмов, а также детализация блокировок дает возможность снизить издержки, связанные с одновременным (конкурентным) доступом.

При этом, если в распределённых системах узким местом оказывается, как правило, сеть, то в монолитных системах, близких к пиковой производительности, её рост ограничивается именно упомянутыми механизмами управления одновременным доступом.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 44

Перевод: Один год с Go

Время на прочтение 6 мин
Количество просмотров 51K
Под катом — перевод статьи опытного разработчика о его опыте практического применения Go. Важно — мнение переводчика может не совпадать с мнением автора статьи.



почитать что он там пишет
Всего голосов 110: ↑100 и ↓10 +90
Комментарии 304

Количественные CSS селекторы

Время на прочтение 7 мин
Количество просмотров 91K
Вам когда-нибудь хотелось прямо в CSS коде посчитать, в меню 4 элемента или 10? Для четырех задать им ширину по 25%, а если набралось десять — прижать их друг к другу и уменьшить отступы?
Как выяснилось, CSS умеет работать с разным количеством элементов, позволяя избавиться от головных болей и лишнего кода на js.


Читать дальше →
Всего голосов 65: ↑61 и ↓4 +57
Комментарии 24

Интересный и одновременно простой слайдер на чистом CSS3

Время на прочтение 5 мин
Количество просмотров 297K
Я никому не открою Америку, не удивлю публику новым фокусом и не взорву мозг тем, кто в CSS3 плавает, как аквалангист. Расскажу простой способ, как создать слайдер с помощью простых функций CSS3 без необходимости использовния javascript.
Читать дальше →
Всего голосов 55: ↑50 и ↓5 +45
Комментарии 39

Вангеры были переизданы на Steam

Время на прочтение 1 мин
Количество просмотров 61K
image
Сегодня игра вышла в переизданном виде на Steam под покровительством KranX Productions.
Сбылась мечта западного журналиста, который в конце 90-х сожалел о том, что игра опубликована только в России и недоступна западному игроку.
Многие не знают о её существовании, но эта игра стала одной из тех первых российских игр, после которых западные игроки и издатели обратили внимание на наш геймдев.
Сейчас Калининград — один из центров российского геймдева. И это стало возможным не только благодаря особенной экономической зоне, но и благодаря примеру и кадрам KD-Lab.
Для меня огромная честь быть лично знакомым с некоторыми членами команды KD-Lab.
Поздравляю КранКа и весь состав KD-Lab с этим событием!
Ну и, конечно, игроков, которые помнят и любят Вангеров!
Вперед за Нюхой, товарищи!

Читать дальше →
Всего голосов 92: ↑81 и ↓11 +70
Комментарии 149

Графы — sigmajs

Время на прочтение 2 мин
Количество просмотров 23K
Привет, уважаемое Хабра сообщество. В один из прекрасных летних дней, позвонил мне мой товарищ, и сказал, что у него есть для меня очень интересная задача. Я люблю интересные задачи. Приехав на следующий день в офис, мы обсудили задачу. Задача, в двух словах, поставлена была следующая: отобразить на браузерном канвасе иерархию ~ 30000 пользователей с зависимостью между ними, плюс должна присутствовать некая анимация, которая в контексте данного поста не существенна, может в будущих, если на то будет время и Ваше одобрение.

Мы ударили по рукам, я сказал, что мне нужно провести «изыскания», так как сфера (JS + Canvas), была для меня была нова, и выяснить насколько развитие браузерных технологий соответствует реалиями поставленной задачи.

Через некоторое, не долгое время, я наткнулся на замечательную библиотеку — sigmajs, на тот момент была версия 0.8.2, если мне не изменят память, которая удовлетворила почти все наши амбициозные потребности.

С тех пор, много воды утекло, появилась версия сигмы 1.0.0, я обрел новый багаж знаний в сфере JS + Canvas и веба в целом. Для тех, кого я заинтриговал, прошу под кат, где будет дан краткий обзор библиотеки — sigmajs.

Читать дальше →
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 16

Основные зарубежные сборники аниме-картинок отключены Роскомнадзором

Время на прочтение 3 мин
Количество просмотров 79K
В сáмом начале месяца (1 ноября) я упоминал на Хабрахабре о закрытии доступа к «Sankaku Complex» Роскомнадзором, а veam в комментариях прибавил, что несколькими днями ранее того был закрыт доступ и ко крупной доске картинок — к Gelbooru.

Сейчас я вынужден прибавить к этому не менее печальную новость. Все читатели, из России собравшиеся посетить другой крупный сборник аниме-картинок — сайт Danbooru, на идее которого Gelbooru был изначально основан — вот ужé несколько дней принуждены наблюдать сообщение о блокировке:

[скриншот]

В твиттере ещё одного значительного сборника аниме-картинок (Yande.re, название которого происходит от японского слова «ヤンデレ», означающего безумную и смертоносную влюблённую) позавчера была опубликована новость о том, что домогательства Роскомнадзора, обращённые к их провайдеру, поневоле привели к решению самостоятельно блокировать доступ для всех российских читателей сайта. И действительно можно видеть «403 Forbidden» от nginx.

Читать дальше →
Всего голосов 133: ↑111 и ↓22 +89
Комментарии 133

Определение доминирующих цветов: Python и метод k-средних

Время на прочтение 2 мин
Количество просмотров 37K

Assorium

На Хабре публиковалось несколько статей с алгоритмами и скриптами для выбора доминирующих цветов на изображении: 1, 2, 3. В комментариях к тем статьям можно найти ссылки ещё на десяток подобных программ и сервисов. Но нет предела совершенству — и почему бы не рассмотреть способ, который кажется самым оптимальным? Речь идёт об использовании кластеризации методом k-средних (k-means).
Читать дальше →
Всего голосов 59: ↑54 и ↓5 +49
Комментарии 17

Gordon: среда исполнения Flash, реализованная на джаваскрипте

Время на прочтение 1 мин
Количество просмотров 1.1K
Вот это сюрприз! Тобиас Шнайдер (Tobias Schneider) построил среду исполнения Flash, работающую прямо во браузере. Она реализована на чистом джаваскрипте и HTML5, и все исходники являются открытыми (MIT-лицензированными), и располагаются на GitHub.

Поглядите на Gordon в действии (хостинг демонстраций осуществил Пол Айриш).

Gordon работает волшебно в последних версиях Файерфокса, Хрома и Сафари (да, и в iPhone Safari, хотя демонстрация «blue» на моём 3G идёт утомительно медленно). Чтобы установить его себе, запустите «git clone git://github.com/tobeytailor/gordon.git». Я обнаружил, что с URL «file:///» демонстрации не грузятся (в силу системы зависимостей скрипта), так что направьте ваш вебосервер на корень Gordon, а браузер направьте на demos/.

Документации ещё никакой нету, так что неясно, насколько широкой совместимостью с Flash обладает Gordon, или в каком направлении станет развиваться. Однако, по крайней мере, это мощная заявка на зрелость открытых веботехнологий.
<body onload="new Gordon.Movie('trip.swf', {id: 'stage', width: 500, height: 400})"></a>
    <div id="stage"></a></div>
</body>
[Gordon (скриншот)]
Читать дальше →
Всего голосов 153: ↑140 и ↓13 +127
Комментарии 134

Об открытом видео и о недопущении

Время на прочтение 2 мин
Количество просмотров 807
Важное замечание: эта блогозапись — моё собственное мнение. Не более, не менее.

Несомненно, вы слышали о том, что Youtube и Vimeo выпустили беты своих видеопроигрывателей HTML5 <video>. И много было разговоров о кодеке, ими используемом: H.264. Хотя в Файерфоксе есть превосходная поддержка HTML5 <video>, он не поддерживает (запатентованный) кодек H.264, так что эти проигрыватели вам в Файерфоксе использовать не удастся. Это потому, что Mozilla верит (и я согласен), что H.264 не годится для открытой Паутины.

Если ещё не читали, рекомендую прочесть:Ага, знаю, это масса чтива. Но стóит того.

Как бы то ни было, а отдельные лица предлагали вот какие решения:
  • Использовать кодек, который идёт в операционной системе (если такой есть).
  • Лицензировать H.264 и поставлять его только с бинарными версиями Файерфокса (а прочих поставщиков и внедренцев и разработчиков с меньшими финансами оставить в стороне).
  • Поставлять H.264 в Файерфоксе людям, живущим в тех странах, в которых софтверные патенты не защищены законом (живёте в США? Не повезло!).
Честно говоря, эти решения эгоистичны. Они предполагают, что это нормально, когда только отдельные избранные имеют доступ к Паутине. А так не годится. Не годится исключать людей из Паутины. Ни из-за их аппаратного обеспечения, ни из-за операционной системы, которой они пользуются, ни из-за клиента, которым пользуются, ни из-за их местожительства, ни из-за того, сколько у них денег. Ни по какой причине. Паутина задумывалась как открытая для участия в ней — давайте такою её и сбережём.
Всего голосов 97: ↑67 и ↓30 +37
Комментарии 139

Информация

В рейтинге
Не участвует
Откуда
Токио, Токио, Япония
Дата рождения
Зарегистрирован
Активность