Конференция началась с «вешалки»: огромная очередь на регистрацию. В данном случае это был не просчёт организаторов (лично я слышал только похвалы организаторам от посетителей конференции), просто неожиданно много зарегистрировалось в последний момент. И вообще в этом году конференция выросла раза в полтора (700+ против 450+ в 2022) по очным участникам, а были ещё многочисленные онлайновые участники (итого около 1200). Я занял очередь и подошёл спросить: сотрудникам компании стоять в общей очереди?
— Нет, — ответили мне — мы решили, что наши сотрудники будут регистрироваться вообще после всех.
Но очередь прошла быстро. Чуть‑чуть сдвинули время докладов. Первый доклад был коллеги Павла Лузанова. Об этом докладе я не буду рассказывать ничего кроме того, что по результатам голосования он был признан лучшим докладом конференции. Не буду потому, что доклад PostgreSQL 16: На финишной прямой был о новинках грядущей 16-й версии PostgreSQL, об этом можно прочитать в обзорах Павла PostgreSQL 16: Часть 4 или Коммитфест 2023-01; ч. 3 или 2022-11; ч.2 или 2022-09; ч.1 или 2022-07. Уж их-то мы и в обзорах Postgresso не забываем. Но успех доклада - ещё одно приятное подтверждение, что такие обзоры очень востребованы.
Postgres vs. Redis, аналитика, Shardman
Начну не со 2-го места читательских симпатий, и не хронологически со 2-го доклада. Хочется рассказать о связке из докладов - Криса Трейверса (Chriistopher Travers) PostgreSQL vs Redis: Making the Right Choice, Павла Конотопова Пять оттенков шардинга и Максима Милютина Аналитические open-source решения на базе PostgreSQL. Темы их пересекались, не дублируя друг друга, а дополняя. Крис сейчас работает в Timescale, спонсировавшей поездку, но доклад был в основном по опыту работы в берлинской Adjust. Максим работает в исследовательском центре Huawei, но доклад в большей степени обобщает опыт работы в Arenadata. Ну а Павел Конотопов работает в Postgres Professional и базировался на опыте работы над шардированием там же.
Крис Трейверс предварил своё выступление дисклеймером: доклад не о Redis и PostgreSQL, а о стратегии при выборе СУБД. Базы всякие важны - большие и маленькие. Что критично, когда у вас 10ГБ, когда 100ГБ? А когда 1ТБ, 10ТБ и больше? Приоритеты сильно меняются от начала этой линейки к концу. И в верхней части безусловно придётся разбираться в том, что под капотом.
И становится понятно: Redis работает очень быстро, но он оптимизирован под 1 ядро. Горизонтально масштабируется он со скрипом.
Крису задали вопрос: а что же вы в Adjust выбрали Redis при таком слабом масштабировании? Почему пришлось переезжать на Postgres, а не сразу начать с него?
Ответ простой: невозможно предвидеть и рассчитать, как быстро будет расти компания и данные вместе с ней.
Интересно, что помогали в оценке работы этих баз под нагрузкой специалисты OrioleDB, основанной и возглавляемой Александром Коротковым.
Павел Конотопов начал с красивой и слегка пугающей картинки с 2 сходящимися ветвями консистентности от Jepsen - serializable и linearizable, сходящиеся в strict serializable - всего 16 квадратиков. Многим из нас более привычны, конечно, схемки попроще. Исходя из этого, Павел рассказывал об особенностях разных принципах шардирования и их реализациях - на примерах CitusDB, Greenplum, Cockroach DB, Yugabyte DB, SPQR, PgCat и, конечно, Shardman.
Показал, кто как хранит данные, как ими обменивается, где обитает метаинформация, сколько узлов координируют процессы, однородны ли узлы. От какой версии Postgres оттолкнулись. Отдал должное "суперобзервабилити" Cockroach DB и Yugobyte. Но свой Shardman ближе к телу. Рассказывал, зачем и как делали свой мультиплексор, регулирующий трафик между узлами.
Максим Милютин делал сравнительный анализ Greenplum и расширений Citus и TimescaleDB, а его рубашка, близкая к телу - это OpenGauss (GaussDB). В отличие от Конотопова, он акцентировал своё сравнительное архитектурное исследование на колоночном хранении, сжатии данных, балансировке MPP-кластера. Ну и о распределённой обработке тоже говорил (добрая дюжина слайдов), и о консистентном чтении, конечно.
Гео
Мир практиков PostGIS и вообще тех, что имеют дело с геоданными, отнюдь не на 100% совпадает с миром PostgreSQL. Свой мир. Но не мирок: доклад Игоря Сухорукова (MTS Digital) Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap успешно конкурировал по посещаемости с чисто постгресовыми докладами.
Демонстрации геовычислений выигрышны: прежде всего это красиво - карты, заливы, дороги, города. Приятно видеть, что весь этот объём невместимой, казалось бы, информации, действительно помещается в ноут и отображается на экране. Но оказалось, что красив может быть и индекс сам по себе - Игорь рассказывал о иерархической системе индексирования H3, которую он использовал для OSM сам и выложил свой H3 на гитхаб. Этот индекс, некогда разработанный под Uber, использует не прямоугольники, а соты из шестигранников. Почему-то автор не показал этой красоты в своей статье на хабре, а в зале этим необычным зрелищем удалось насладиться.
Ну и, конечно, автор показывал полезные, реальные геозапросы - сколько где каких дорог, например. При этом успев рассказать и про секционирования в гео, о докере-контейнере со всем миром объёмом 587МБ, о том, как использовать для геоцелей Citus с его колоночным хранением, о перспективах apache parquet, о правилах хорошего поведения в сообществах открытых геоданных и о многом другом.
В фойе
Посетившие конференцию говорили, что конференция получилась интересная и полезная - люди не только расширяли свой кругозор, многие шли целенаправленно, чтобы узнать побольше о конкретных свойствах конкретных реализаций Postgres и его экосистемы. И некоторые интересовались именно новостями Postgres Pro Enterprise. А узнавали они о новых разработках не только из докладов, но и на стендах. А также за обедом, за пивом/вином на банкете. Звездой стал стенд BiHA (встроенный отказоустойчивый кластер Postgres Pro, BiHA - это пока неофициальное название). Один инженер даже признался при мне: "я просто влюбился в эту Биху". На стенке закрепили кластер из узлов ARM, на большом экране - диаграммы.
На других стендах представили Shardman, DBaaS (Postgres Professional). Были стенды у «ФОРС» и у Cloud MTS.
Переезд
Доклады, посвящённые миграции, всегда привлекали внимание, а на этой конференции они были для немалого количества участников непосредственной причиной появления здесь, в Рэдисоне. Многочисленные примеры докладов можно посмотреть в программе на сайте. Замечу здесь только, что переезжали не только с Oracle, а и с MS SQL.
Доклад Игоря Мельникова Поддержка пакетов Oracle (packages) в СУБД Postgres Pro 15 Enterprise вызвал понятный в наше время интерес и много вопросов. Поэтому: сейчас уже появилась возможность прочитать статью на хабре на ту же тему (да, IgorM23= И.Мельников), но у просмотра видео доклада добавленная ценность ещё и эта - вопросы/ответы. Видео скоро станут доступны для участников конференции, а слайды презентаций уже начали выкладывать.
Александр Любушкин и Андрей Чибук из "ФОРС Телеком" рассказали, Как перенести 10Тб из Oracle в Postgres за 24 часа. Этот коллектив хорошо известен завсегдатаям PGConf.Russia, на всякий случай они и сами ссылаются на свои доклады в 2019; 2019Сибирь; 2020; 2021 и 2022. И продолжают рассказывать о том, как им помогает собственная разработка - Live Universal Interface (LUI).
Оптимизатор
Познакомиться с GEQO за 20 минут иногда достаточно, но всё же я бы советовал помнить и о докладе автора - Павла Толмачёва (отдел образования Postgres Professional) - на прошлой конференции: Коллапс в планах запросов. Достигаем и управляем. Там он рассказывал о тяжёлой жизни планировщика в случае соединения большого числа таблиц, о его причудливом поведении, связанном с настройками и особенностями алгоритма GEQO. Ну вот теперь и остановился на этой теме, которую тогда лишь зацепил по касательной.
Брюс Момджан (Bruce Momjian, EDB), в отличие от Криса Трейверса, прилететь не смог, выступал онлайн. Здешний доклад Брюса - Beyond Joins and Indexes - продолжение его усилий объяснить работу оптимизатора. На этом слайде виден масштаб его замаха. Само собой, в формате доклада каждому из 42 пунктов досталось по плюс-минус минуте/абзацу.
Ну а наш небольшой обзор не претендует ни на полноту, ни на объективность в выборе докладов. Хотелось просто нарисовать привлекательную картину хорошей конференции, порадовать красивыми картинками - вдруг хоть красота спасёт мир (с).
Но, чтобы соблюсти видимость объективности, перепечатаем сюда табличку победителей читательского голосования (10-ка) - то есть нечто субъективно-объективное:
Павел Лузанов - PostgreSQL 16: На финишной прямой;
Анатолий Анфиногенов - Вакуумотерапия: лечим хронические заболевания БД;
Александр Никитин - Борьба с блоатом;
Евгений Бредня - Восстановление повреждённых данных;
Антон Дорошкевич - Тонкости эксплуатации PostgreSQL для 1С;
Павел Конотопов - Пять оттенков шардинга;
Андрей Зубков - Утилиты стратегического мониторинга pg_profile/pgpro_pwr, архитектура, настройка, возможности;
Василий Тимощенко - Опыт миграции высоконагруженной системы с DB2 for z/OS на PostgresPro в конфигурации multimaster;
Christopher Travers - PostgreSQL vs Redis: Making the Right Choice;
Иван Фролков - Новые версии UUID.
В оригинальном списке есть подробности - сколько за/против.
Вместо эпилога
В этом году сообщество наградило медалями 37 российских постгресистов за вклад в PostgreSQL 15. Генеральный директор Postgres Professional Олег Бартунов вручил их на конференции. 27 из 37 принадлежат разработчикам компании.