Pull to refresh
77
0
Журавлёв Юрий @stalkerg

Разработчик

Send message

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

Reading time 10 min
Views 21K
image

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

Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 6

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

Reading time 8 min
Views 9.4K

Всем привет!


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

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

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

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

Reading time 13 min
Views 26K

Аннотация


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

Введение


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

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

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

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

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

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



почитать что он там пишет
Total votes 110: ↑100 and ↓10 +90
Comments 304

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

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


Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Comments 24

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

Reading time 5 min
Views 299K
Я никому не открою Америку, не удивлю публику новым фокусом и не взорву мозг тем, кто в CSS3 плавает, как аквалангист. Расскажу простой способ, как создать слайдер с помощью простых функций CSS3 без необходимости использовния javascript.
Читать дальше →
Total votes 55: ↑50 and ↓5 +45
Comments 39

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

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

Читать дальше →
Total votes 92: ↑81 and ↓11 +70
Comments 149

Графы — sigmajs

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

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

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

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

Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Comments 16

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

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

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

[скриншот]

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

Читать дальше →
Total votes 133: ↑111 and ↓22 +89
Comments 133

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

Reading time 2 min
Views 38K

Assorium

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

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

Reading time 1 min
Views 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 (скриншот)]
Читать дальше →
Total votes 153: ↑140 and ↓13 +127
Comments 134

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

Reading time 2 min
Views 812
Важное замечание: эта блогозапись — моё собственное мнение. Не более, не менее.

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

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

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

Information

Rating
Does not participate
Location
Токио, Токио, Япония
Date of birth
Registered
Activity