пятница, 25 ноября 2016 г.

Postgres Professional на HighLoad++2016

          Конференция HighLoad++ - огромнейший форум российских разработчиков систем, работающих под большой нагрузкой. Традиционно наша команда приняла в нём участие. Наши сотрудники подготовили и провели в общей сложности 10 разного рода дискуссионных мероприятий и выступлений среди которых был пример сотрудничества с компанией Перкона. Генеральный директор Компании Олег Бартунов дал два интервью - выступил для видеоканала Хабрахабра и это интервью можно было смотреть в прямой трансляции событий конференции, и еще одно интервью с Олегом Бартуновым уже опубликовано на нашем сайте. На стенде началась раздача задач, решение которых дает доступ к розыгрышу 10 бесплатных билетов на PgConf.Russia 2017. Одновременно с этим происходила безумная арт-акция «сложи мне слоника» по массовому освоению ИТ-профессионалами техники оригами.

          Но обо всем по порядку.

          Начнем с расписания докладов и митапов от нашей компании:

7 октября

8 октября

Впечатления участников

          Кто-то из наших докладчиков выступал на HighLoad++ уже не первый раз, а кто-то получил на конференции "боевое крещение". Но все участники получили впечатления, которыми готовы поделиться с читателями нашего блога:

Олег Бартунов


          На HighLoad я дал два интервью Хабру - одно на видео и второе уже опубликовано в хабе «Карьера в IT-индустрии» , плюс выступил с докладом по полнотекстовому поиску. Понравилось, что весь зал был забит. Правда, не хватило времени на вопросы.

          Благодаря работе Саши Короткова в версии Постгреса 9.6 появилась возможность разрабатывать свои методы доступа в виде расширения. Это дало нам возможность разработать метод доступа RUM, который улучшает GIN, является более производительным для целого ряда запросов, например, запросы с ранжированием, запросы с сортировкой результатов по времени. Также, RUM ускоряем фразовый поиск, который в этом году вошел в список основных новшеств релиза 9.6. Кроме этого, я рассказал про еще несколько улучшений полнотекстового поиска, в частности, про улучшенную работу со словарями.

          Был еще доклад Дмитрия Долгова по слабоструктурированным данным в реляционных СУБД, и я прокомментировал реализацию JSONB в постгресе. Дмитрий - наш коллега из Новосибирска, с которым я работаю уже пару лет в области поддержки jsonb в Постгресе.

          Потом с Артуром Закировым мы провели митап. Показали демонстрацию реализации полнотекстового поиска для веб-сайта - людям понравилось, хотя ее еще надо шлифовать. Исходные тексты доступны в нашем репозитории https://github.com/postgrespro/apod_fts

          Митап тоже был по полнотекстовому поиску - он был для тех людей, которые хотели узнать побольше, увидеть полнотекстовый поиск в действии. Артур Закиров подготовил демо-базу, демо-сайт. На митапе было ползала, потому, что это было уже в конце. Но митап был очень долгий. Уже все закрылось, а мы только к часам восьми освободились. Три часа это продолжалось и людям не наскучило. Были вопросы, люди сидели слушали.

          У нас все было хорошо на HighLoad за исключением нашего продвижения. У нас не было никаких задумок - был обычный скучный стенд.

          Я выступаю на HighLoad с самой первой конференции. HighLoad от года к году движется от профессионализма ко все большему опопсению, к сожалению. И сейчас HighLoad для нас - для нашей компании - средство продвижения. А раньше он был площадкой для разговора профессионалов, для общения профессионалов.

          Как компания в этот раз мы были достаточно хорошо представлены, но проиграли в сравнении с прошлым годом в работе между докладами - на стенде деятельность у нас была слабая.

Александр Коротков


          Мы с Димой Ивановым прочитали доклад про pg_pathman – расширение для секционирования (partitioning), разрабатываемое в нашей компании. Дима Иванов сейчас наиболее активный разработчик в этом проекте, поэтому в основном говорил он. Я его только представил его в начале и дополнял по ходу доклада. Мы видим большой интерес к нашему расширению среди пользователей, как на github’е, а и среди слушателей Highload++. Люди дают нам ценный фидбэк, который идёт на пользу продукту. На мой взгляд, доклад прошёл вполне удачно, а для Димы Иванова это еще и хорошая тренировка перед предстоящими выступлениями на международных конференциях.

          Существуют еще несколько расширений, которые позволяют реализовать секционирование в PostgreSQL включая: pg_partman, partitioned и т.д.. Все эти расширения объединяет одно: они являются надстройками, работающими на пользовательском уровне. Они автоматизируют написание SQL-запросов, но не могут преодолеть ограничения механизма constraint exclusion. Отличие pg_pathman в том, он работает на уровне хуков планировщика (planner hooks) и пользовательских узлов (custom nodes). Благодаря этому pg_pathman позволяет решить проблему медленного планирования запросов по секционированным таблицам; поддерживает HASH-секционирование, выбор секций на этапе выполнения, быструю вставку и многое другое.

          Расширение pg_pathman – это уже довольно известный наш продукт. Мы освещали его на ряде митапов, писали о нём в блоге, у нас около 150 звёздочек на Гитхабе. Поэтому с вопросами к нам подходили в основном те люди, которые уже знали о его существовании. Они интересовались, есть ли там та или иная фича, как ей пользоваться, а если её пока нет, то когда она появится.

          Доклад со Светой Смирновой - это доклад о том, как СУБД PostgreSQL и MySQL масштабируются на современных больших серверах. В релизах PostgreSQL 9.6 и MySQL 5.7 были введены серьёзные улучшения в данной области. В обеих СУБД стало возможным обрабатывать больше миллиона SQL запросов в секунду. Еще несколько лет назад эта цифра могла показаться фантастической, но сегодня это реальность. Было рассказано, какие конкретно оптимизации позволили это достичь.

          Я, к сожалению, физически не смог рассказать свою часть доклада. Но со своей стороны подготовил все бенч-марки и презентацию. И Фёдор Сигаев, который тоже хорошо владеет предметом, отлично выступил вместо меня, и доклад прошел очень успешно.

Фёдор Сигаев


          У меня теперь есть рекорд: Принимаемость моих докладов 150%. Я подавал когда-то один доклад - его приняли. И вот я не подавал, и половину доклада прочитал - это о докладе «Open Source SQL базы данных вступили в эру миллионов запросов в секунду» со Светой Смирновой и Анастасией Распопиной из Перконы.

          Было любопытно. Народ очень интересовался, подходил, говорил “спасибо”. В середине доклада были аплодисменты. Сама идея мне понравилась, пусть и не удалось до конца полностью сделать честное сравнение.

          Во-первых, на современном железе реляционные СУБД достигли уровня порядка миллиона. Во-вторых удалось поставить в приблизительно равные условия разные базы данных и, оказывается, наблюдается конвергенция - они приходят к одному и тому же уровню производительности.

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

          Наш доклад не был полярным. Мы не подрались. Это скорее всего было не то, чтобы выяснение истины, а хотя бы — правды в смысле корректных честных сравнений. Это была первая попытка от людей, которые хорошо знают хотя бы одну из этих СУБД, а не просто абстрактно — “берем, ставим, запускаем”.

Анастасия Распопина и Света Смирнова


          Подготовка к докладу заняла год - Олег Бартунов предложил нам протестировать PostgreSQL и MySQL ещё на HighLoad++ 2015, после которого он встречался с нашим CEO Петром Зайцевым. Тогда впервые обсуждались возможности сотрудничества и обмена опытом, и после нескольких встреч представителей обеих компаний появился совместный доклад Postgres Professional и Percona.

          Попытки сравнить MySQL и PostgreSQL были и до этого, но на сей раз за сравнение взялись люди, которые знали обе базы досконально, могли их правильно настроить. Анастасия Распопина: “Александр имеет статус major contributor PostgreSQL, Света много лет работает с багами MySQL и более 10 лет помогает клиентам в технической поддержке. В последние 5 дней, когда мы узнали о съёмках Александра в “Часе кода”, заменить его согласился Фёдор. С Александром и Фёдором было очень комфортно работать, они стремились добиться сравнимых результатов, что оказалось непросто, т.к. протестировать обе базы одним инструментом сходу не получилось, пришлось придумывать, как прогонять sysbench-подобные тесты на pgbench”.

          Тема для доклада выбрана практически неисчерпаемая - можно попытаться всё же протестировать обе базы одним и тем же инструментом для benchmark-тестов, можно рассмотреть и сравнить то, что хотелось потестировать, но до HighLoad++ не удалось. Это напоминает детективный сериал - интрига сохраняется, ждите новых серий на Percona Live, постгрессовых конференциях, возможно, на следующем HighLoad++. Кстати, мы активно приглашаем представителей PG-сообщества на наши конференции Percona Live (на Percona Live Amsterdam 2016 в октябре даже был PG Day!), аналогичное движение в сторону MySQL/NoSQL демонстрирует PG Day Russia в Питере - мы учимся друг у друга в рамках одной Open Source культуры.

Иван Фролков


          Зал был не очень удобный — в виде вагона, причем я был посередине. Правда, организаторы поставили 2 экрана. Что еще хорошего сказать? Идиотское совершенно было помещение - ничего не найдешь, очень легко заблудиться. Зато я впервые увидел, чтобы на конференции было нормально организовано питание — обычно там такая драка за еду, как-будто все из голодного края приехали, а тут выдавали талончики, по талончикам ходили. По поводу народа: народ традиционно 20% понимают, 80% ничего не понимают, о чем речь идет.

          Понравился Олег Иванов. Дима Иванов понравился поменьше, но тоже понравился. И еще мне понравился Космодемьянский - только одним соображением, и оно стоило того, что бы его послушать - это было на тему, чем у нас Михаил Кулагин занимается - Михаил занимается кластером. Соображение такое, что если вы делаете отказоустойчивую систему, отказы, он сказал, будут в пять лет раза два. За эти два раза, по его словам, проще посадить админа, который все руками поднимет аккуратно, чем ставить какую-то автоматическую штуку, которая вместо того, чтобы восстановить, она вам еще и все разломает дополнительно. И привел хороший пример с Гитхабом, который упал - у них там был мастер и цепочка слейвов. Начали они падать так: упал мастер, следующий слейв стал мастером, тоже упал, и так пока слейвы не кончились. Они лежали не 15-20 минут. Они лежали 2 дня. Автоматизировали процесс. Дешевле в таких случаях поставить человека.

          И еще хочу рассказать об Олеге - Олег делает очень интересную вещь, подобное мало где реализовано. Я все время привожу пример, что у нас есть нянечки-женщины и мужчины-бульдозеристы. Соответственно, если мы хотим сделать выборку по какому-то параметру, то выгоднее всего табличное сканирование и наверняка мы очень быстро наткнемся на что-то подходящее. Если же попадается странный запрос, например, надо выбрать няничек-мужчин или женщин-бульдозеристов, у нас сервер резко обламывается и выбирает очень нехороший план - он обычно выбирает seq scan - сканирует всю таблицу, ничего не находит, таблица может быть большая - в Постгресе нет статистики распределения с колонками.

          Олег предлагает такие запросы не то, чтобы отменять, а просто на ходу собирать дополнительную статистику и сохранять, что “женщин-бульдозеристов очень мало”, и учитывать это планером. Он это использует, он это гонял на TPC, на TPCH. Там у него достаточно интересно получается - вполне предсказуемые результаты. На простых запросах толку никакого нет. На запросах достаточно мудреных выигрыш порой очень большой. На запросах совсем тяжелых выигрых не такой заметный - примерно в два-три раза.

          Мне кажется, что это достаточно интересная штука, надеюсь, что она войдет нашу СУБД Postgres Pro. Она достаточно новая, современная. Такого практически нигде нет. Нечто похожее есть в Oracle, но Oracle не разглашает подробностей.

          Дима Иванов рассказывал про очень важную вещь - про секционирование. Оно в Постгресе нужно. Нужно оно чрезвычайно. (Речь о расширении pg_pathman созданном разработчиками Postgres Professional - примечание ред.блога) Там им есть, куда расти.

          Еще понравился доклад Валентина Гогичашвили из Оланды (из Германии). Они там с микросервисами воюют. Но это персонально мои тараканы. Я эти микросервисы люблю - под них писать удобно, но тяжело администрировать. В чем преимущество микросервисов: можно мигрировать частями, можно писать на разных языках.

          Заинтересовал совместный доклад Федора Сигаева с Перконой - Перкона в MySQL параллельный bg_writer организовала, правда докладчица - Света, кажется, - затруднилась ответить, в какой версии.

          Еще меня занесло на доклад какого-то парня с Касперского, который был, как Momjian - с бабочкой. Что он там делал, я честно говоря не понял, но у него получилось так: MongoDB была первой, Постгрес - последним, и еще две DB первый раз услышал. Это анализ временных рядов. Что он там анализировал, я так и не понял. Самое интересное, что людям понравилось!!!

Дмитрий Иванов


          Я участвовал в конференции HighLoad++ первый раз. В сравнении с другими IT-конференциями здесь гораздо больше публики, охват самой конференции гораздо больше - весемь, а если учесть митапы, то - десять площадок, на каждой из которых постоянно идут доклады на совершенно разные темы. Для сравнения, когда на обычной конференции одновременно четыре сцены, ну пять, а тут соответственно больше, докладчиков больше. Были очень интересные доклады, были - не очень, откровенно говоря. Было обидно, что на один доклад я не попал - я как раз выступал в это время.

          Не в последнюю очередь было интересно, какие люди приходили к нам на стенд компании, как они искренне интересовались, задавали вопросы, решали задачи. В частности, даже были люди, которые подходили с задачами с соседнего стенда - от Ильи Космодемьянского - там тоже были задачи, и люди спрашивали, как их решить.

          (Осталось неизвестным, помогал ли Космодемьянский решать наши задачи - примечание редактора блога.)

          У него были интересные задачи, но одну или две он сформулировал так, что понять было сложно. Люди подходили к нам за комментариями, мы (Я Саша Коротков, Иван Фролков) вместе думали, как их решить, мы выдвинули лучший кандидат из четырех возможных решений. Потом, когда решение были опубликовано, оно совпало с нашим.

          Из докладов понравился про автовакуум Алексея Лесовского - он уже рассказывался на одной из конференций, но тут была улучшенная версия. Лесовский фактически залез в “нутро” и показал, из каких кусков кода состоит автовакуум, какие функции в каком порядке вызываются, к каким последствиям это приводит.

          Что касается нашего с Александром Коротковым доклада - «Долгожданный релиз pg_pathman 1.0» - я ожидал увидеть больше заинтересованной публики, но потом я совершенно не пожалел о том, что в начале ее было не так много, как хотелось - нам выделили тот же зал, в котором выступал Олег Бартунов, Иван Фролков и все остальные. Зал был очень неполным, хотя ближе к концу подходили люди и стало больше раза в два. Я не был разочарован, потому, что те люди, которые пришли с самого начала, они с первого же момента слушали меня внимательно, им была интерена тема, случайных людей практически не было. После доклада Иван Фролков сказал, что человек сидевший рядом с ним - его бывший коллега - очень заинтересовался нашей разработкой. Мы встретились и пообщались с представителями компаний, с которыми мы взаимодействуем. Они высказали свои пожелания - это был тоже ценный опыт.

          Очень хорошо, что к докладу мы успели решить большинство проблем и добавить несколько новых фич. В частности мы добавили сравнение с pg_partman и обычными таблицами - не партицированными. Мы имели возможность показать все наши тесты, по которым можно однозначно судить, что pg_pathman по тестам превосходит pg_partman - нам пришлось строить графики сравнения использую логарифмическую шкалу, что бы на них было видно, что pg_partman и его график вообще есть - вот такая разница! И, что в сравнении с обычными таблицами - непартицированными - мы не сильно отстаем, а в ряде случаев даже превосходим. Например, вставка получилась значительно быстрее в партицированной таблице.

          После доклада к нам подходили люди, задавали вопросы. Часть вопросов, которые нам задавали на конференции мы предложили развить и задать их на GitHub, что вылилось в некоторую дискуссию. То есть, на GitHub мы рассмотрели вопрсы связанные с логической репликацией. Я видел живой интерес у людей и то, как наш инструмент можно применить.

          Во второй день конференции я уже не выступал, но я помог подготовиться к докладу Олегу Иванову. Более того, я встретился с автором pl_pgsql - Яном Виком - я посетил его доклад и сразу после доклада перехватил. У нас была плодотворная дискуссия, мы обсуждали, какие изменения можно внести в pl_pgsql , чтобы сделать его еще лучше.

Григорий Смолкин и Сергей Петров


          Григорий Смолкин: До этого я выступал на Инфостарте. Разница, конечно, колоссальная. HighLoad многочисленнее, а на Инфостарте мой топик вышел качественнее в плане аудитории - на Инфостарте пришлю люди с четкой целью послушать нас - аудитория была сильно меньше, чем на HighLoad, но более подкованная, и вопросы были более сложные, более неудобные, более злые - люди знали где реально чего болит и могли грамотно задать вопрос. Но HighLoad куда более крупное мераприятие.

          Сергей Петров: Зал был полным, вдоль стен стояли. Конечно, с Иваном Фролковым не сравнить, когда стояли еще в коридоре и слушали.

          Григорий Смолкин: Я думаю, дело в том, что людям просто нравится Постгрес, нравится слушать всякие вещи о Постгресе. Плюс ко всему мы рассказывали практические полезные вещи.

          Григорий Смолкин: Тема временных таблиц возникла из тестирования 1С, которое мы проводили и проводим до сих пор в одной компании. У них были очень плохие результаты работы 1С с Постгресом. Тут появились мы и начали разбираться, почему. Выяснилось, что одним из факторов объясняющих такую низкую производительность являются некоторые аспекты работы этих временных таблиц. Мы рассказали, как мы это нашли и рассказали, как мы это поправили. Надеемся, что это оказалось полезно не только апологетам 1С.

          Григорий Смолкин: Как возникла идея провести митап? - Мы не знаем. Эта идея не у нас возникла. Мы сами ее обнаружили только посмотрев рассписание - О! - митап, у нас!

          Сергей Петров: На митапе мы показывали то, что смогли рассказать на докладе, и плюс те наши разработки, которые показались нам интересными для митапа.

          Сергей Петров: Заявлена была тема из той же области - из моментов нашей презентации. Но митап идет два часа, а ту тему настянуть на 2 часа было не реально - она не на столько глубокая. Поэтому мы решили показать вообще все, что мы можем интересного показать, рассказать. Хотели просто устроить шоу - “Смотрите, что сделали полезного сделали мы и наша компания”. Но так, что бы были вполне конкретные люди, пользователи, которые могли это видеть, трогать руками, задавать вопросы. Что бы какой-то фидбэк шел от них. С моей точки зрения это даже более полезное времяпровождение, чем доклад. Аудитория при этом, правда, была меньше.

          Сергей Петров: Аудитория была глубоко заинтересованная и хорошо знающая предмет. Были те, кто пользуются и рассчитывают на какие-то, если не прорывы, то улучшения.

          Григорий Смолкин: На митапе у нас была примерно такая же аудитория, которая была на Инфостарте - не в таких количествах, как на Инфостарте, но они есть.

          Сергей Петров: Возможно, это просто формат HighLoad, когда идет параллельно очень много секций и тяжело охватить все, что интересно. HighLoad - это все-таки не девелоперская конференция. Если смотреть с нашей точки зрения, то - это конференция потребительская. Разработчик здесь как потребитель, если говорить применительно к теме о базах данных. Кроме нас были еще одни разработчики баз данных, которые прочитали очень забавный доклад о базе данных, которая живет полностью в ядре - tempesta db. Каких-то других разработчиков СУБД там не было. Получается, что все остальные смотрят на СУБД как пользователи.

          Григорий Смолкин: Нам это понравилось. Митап длился пять часов вместо двух. Нас должны были сменить какие-то другие докладчики, но они пришли или не решились нас прервать.

          Сергей Петров: Из того, что еще интересного было на конференции - довольно много обещают производители железа, прямо-таки светлое будущее - память через сеть, nvme-память,

          Григорий Смолкин: Вообще говорят, память будет не нужна - прямо с диском будем работать.

          Сергей Петров: Да - стирают границы между памятью и диском. Интересная была англоязычная секция, но из-за митапа не удалось ее толком послушать. Был интересный доклад ребят из “Куратора” о том, как процессор работает с кешем, с памятью, как это можно существенно ускорить. Был интересным доклад ребят из Касперского про выбор базы данных - они достаточно точно обрисовали методологию выбора. Но слово “Постгрес” был в их докладе на последнем месте. Просто у них тот случай, когда им по сути ничего не нужно - ни транзакции, ни целостность.

Александр Алексеев


          На конференции HighLoad++2016 я выступил с докладом. Доклад про утилиты для профайлинга cpu и так далее. Был полный зал. Люди подходили с вопросами. Был большой интерес. Для себя с удивлением обнаружил, что у меня больше нет этой проблемы, когда я забываю дышать, когда я делаю доклад. Собой я очень доволен.

          Походил еще по всяким стендикам, прошел квест “собери наклейки на кружку” - теперь у меня есть кружка “HighLoad”. Просто просить наклейки было неудобно, поэтому спросил людей, а что они вообще делают?

          Узнал, что у Panasonic есть очень крутая железка - всего за 6 миллионов рублей - они на оптические диски, по 300 ГБ каждый, делают бэкапы - что за интерфейс, не помню. Довольно прикольная штука.

          Очень запомнился доклад парня из Яндекса - Владимира Бородина. С интересом послушал, как 2nd Quadrant пытался у Яндекса потребовать денег за то, чтобы они нажали merge их патча - в pg_barman.

          К сожалению, не попал на доклад про ClickHouse. Зато был на двухчасовом митапе товарищей, которые пишут на языке Go - на самом деле очень интересно. Узнал про Prisma - это такой стартап, который поддерживают очень многие, в том числе мэйл.ру - они очень убыточные - миллион долларов в месяц и суперсекретные. Этот доклад делался первый раз в истории - про Призму - при условии, что - не на запись, и при условии, что аудитория заполнена не сильно - человек 30 всё это слушали. И я, кстати, нашел у них два бага - зарепортил сразу. Насколько я понимаю идею таких стартапов - они не очень-то хотят монетизироваться. Они хотят набрать аудиторию - говорят, ими пользуются 500 миллионов человек в день. Аудиторию можно продать, можно показать ей рекламу, продать приложение всего за $1 и заработать. Можно показать новую “Free2Play” игру Мэйл.ру, где есть кристаллы за реальные деньги. Аудитория - это удобно. Я понимаю такую монетизацию, но они не говорят, зачем на самом деле они это делают.

Олег Иванов


          За последний год я участвовал еще только в одной конференции - PgConf2016 - больше нигде. По занимаемой площади, по моим оценкам HighLoad был больше, хотя может быть это иллюзия, может там просто была система переходов необычная. На HighLoad++2016 я выступал ближе к концу и ожидал, что на мой доклад придет достаточно мало народу, потому что фактически - последний доклад перед закрытием.

          Доклад, с которым я выступал, был необычен тем, что с одной стороны есть какая-то часть, которая касается СУБД и доклад был в секции Постгреса. А с другой стороны есть часть (о ней слово “Адаптивная”) про машинное обучение. И было непонятно, в какой ветке он будет идти. Конечно, часть про СУБД была больше. И я постарался достаточно научно-популярно прочитать. Мне показалось, что аудитория поняла.

          Было больше половины зала и в конце задавали вопросы, которые свидетельствуют о том, что аудитория уловила, что происходит.

          О той части доклада, которая про машинное обучение: в перспективе она предлагает делать так, что бы планировщик запросов не повторял много раз одни и те же ошибки. То есть, что бы при планировании запросов он учитывал статистику выполнения предыдущих запросов такого же типа. Эта тема достаточно неисследована. Работ по ней совсем немного. Но кокретно по моей теме нет совсем.

          Существующий прототип пока годится только для ограниченного количества запросов. Это сложные аналитические запросты, которые выполняются несколько секунд, минут, часов, дней… Их он может существенно ускорять.

          Люди проявляют интерес к этому. Были люди, которые спрашивали, можно ли реализовать такое в MySQL, были люди, которые спрашивали, можно ли это ставить на сервера и идти в бой с этим. Интерес есть, но безусловно люди жду чего-то более простого в использовании, чтобы было меньше настроек, и - более проверенного временем. Хотя, то, что сейчас есть, по структуре управления во многом повторяет модуль sr_plan разработанный в нашей компании Юрой Журавлевым. Те, кто смогли разобраться с ним, у них не будет сложности при работе с существующим патчем. Пока же мы проводим тестирование внутри компании на своих нагрузках. Я был бы очень рад, если бы нашлись компании, которые хотят поставить и проверить патч на своих данных.

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

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

          Аудитория здесь достаточно смешанная. Некоторые люди пришли послушать про базы данных, некоторые - про машинное обучение. Я считаю, что и те, и другие являются моей целевой аудиторией, хотя между собой они не очень похожи. Но я считаю, что если люди меня услышали, если им понравилось, то это и есть моя целевая аудитория.

Артур Закиров

  • Митап: «Все о полнотекстовом поиске»


          На конференции HighLoad++2016 я с Олегом Бартуновым делал мастер-класс по использованию усовершенствованного полнотекстового поиска в СУБД PostgreSQL. Олег рассказал, какие у нас появились новые функции в работе с полнотекстовым поиском, а я показал реальную работу полнотекстового поиска на демосайте, в котором есть поле, в поле можно ввести запрос, было показано, как формируется запрос к базе данных - это был вполне реальный сайт - APOD (“Astronomy Picture of the Day” - “Aстрономическая Картинка Дня”) с АстроНета, но без картинок - только текстовая часть. Этот сайт можно посмотреть по адресу: tsdemo.postgrespro.ru - там есть и английская и русская версии. Это реальные данные.

          Код сайта выложен на Гитхаб. Там есть скрипты, которыми можно шаг за шагом поднять полнотекстовый поиск на сайте. Сначала там нет ничего. Первый скрипт добавляет поле для полнотекстового поиска, второй скрипт создает индекс - RUM, а не GIN. RUM - это новый access method, который делает Фёдор Сигаев - он основан на GIN, но имеет улучшения, дает большую скорость при ранжировании, делает полнотекстовый поиск практически моментальным. Но тут требуется миграция на 9.6, потому, что версии ниже чем 9.6 RUM не поддерживают.

          К сожалению, я почти не успел побывать на других докладах. Был только на митапе, на котором беседовали Олег Бартунов, Фёдор Сигаев (Митап: «Свободная дискуссия о Постгресе»). Потом я присутствовал на докладе Дмитрия Долгова - было тоже очень интересно, потому, что я в свое время делал code review его патча, связанного с работой JSONB. Дмитрий показал тесты работы разных баз данных с JSON-структурами - какая база более скоростная, какая менее. Постгрес пока проигрывает в сравнениии с MongoDB. И Дмитрий как раз работает над тем, чтобы ускорить Постгрес и быть на уровне.


Фотографии на память

          За время подготовки этой статьи в социальных сетях нашлось немало фотографий с прошедшей конференции. Лучшие снимки были получены стараниями организаторов. Сменяя друг друга на стенде нашей компании Иван Панченко и Михаил Кулагин дополнили этот репортаж своими фотографиями.


Поделись этим