
Этот небольшой обзор рассказывает о двух конференциях: PGConf.Russia 2025 и PgConf Nepal 2025. Совсем разные, но в чём-то похожие. Главное отличие для меня: что на первый я был, а на второй не был. Но коллега Егор Рогов присылал мне впечатления и фотографии. И не он один.
А общее то, что докладчики и доклады, прочитанные в Непале, нередко пересекались с московскими, поэтому во второй части фокус будет, скорее, на атмосфере и пейзажах.
Москва
PGConf.Russia 2025 прошла в месте историческом: в Центре Международной Торговли. История её короткая, но эффектная: построили в конце 70-х, ЦМТ был сначала Совинцентром, потом Хаммеровским центром - это было в то время такое окно в Европу. Через окно входили и выходили технологии и бизнес. Скульптура Меркурия перед фасадом мелькала тогда то и дело в новостях. Бизнес, судя, например, по машинам на парковке, это здание (комплекс зданий) отнюдь не позабыл. Хотел написать (и, как видите, написал) круче только в Кремлёвском Дворце Съездов эту конференцию провести, но это и не так, и ГКД тут ни при чём. Но я был впечатлён, и некоторые бывалые коллеги вспоминали былые тех-события, проходившие здесь во времена, когда таких мест в Москве было раз два и обчёлся, а может и раз - без два.
Но ещё больше впечатлило прибавление числа участников. Офлайн и онлайн посетило в сумме больше 2 тыс. человек (рекорд конференции), но впечатлили присутствующие телесно: зарегистрировалось 1120, но казалось, что их в 2 раза больше, чем на предыдущей (а там было 800 телесных и 600 виртуальных, на этот раз зрителей онлайн было 1100). Во всяком случае, до сих пор не было случая, чтобы я не попал на какой-то доклад из-за того, что не занял место заранее. Говорят, съели и выпили больше 3 тонн продовольствия. Так я думал, но уточнил, и выяснилось, что 3 тонны только съели, а ещё кофе выпили 2 тонны 340 л. Хотя, вроде, усердствовали в этом не больше обычного.
Толпящиеся у стендов и у столов с закуской распределились по двум этажам: один этаж отдали стендам (5 шт.) с решениями Postgres Pro, другой (8 шт.) - другим компаниям-участникам. Три зала = 3 потока, ну это как обычно. 50 с чем-то докладов. Сейчас доклады доступны: видео и презентации участникам конференции (то есть имеющим доступ в личный кабинет), а фотографии - всем желающим. И то, что пока доступно только участникам, постепенно будет выкладываться в общее пользование.

На этой конференции были опять мастер-классы (они мигающие: то появляются, то исчезают на PGConf). Они очень разные по темам и объёму: от умеренных по 20-30 минут к 60- и 90-минутным и до 2 часовых (на прошлых конференциях случались и 3-часовые).
Работа с расширением pg_uprobe. Трассирование запросов и их анализ. 120 мин, Вадим Лактюшин, Михаил Сироткин, Postgres Professional;
Работа с Shardman. 120, Александр Попов, Postgres Professional;
Интеграция кластера BiHA с корпоративным окружением. 90, Василий Пучков, Postgres Professional;
Отказоустойчивый кластер BiHA. 90, Андрей Забелин, Postgres Professional;
Что можно сделать при помощи pg_probackup3 FUSE? 60, Степан Неретин, Postgres Professional;
Сборка эксплойтов для исторических CVE 30, Андрей Бородин, Яндекс.Облако;
Мастер-класс по работе с CFS. 20-30, Сергей Зимин, Postgres Professional.

Мастер-классы были только live, задним числом их посмотреть нельзя, останавливаться на них не буду. Ну разве что процитирую аннотацию к мастер-классу Андрея Бородина - доклада самого интригующего, но который я пропустил, да и ноутбука с собой не было:
Попробуем атаковать базу данных с историческими уязвимостями. Для примера будут взяты три уязвимости, я расскажу в чем суть этих уязвимостей и попробуем сделать подход к их взлому. Бери с собой ноутбук с возможность docker-compose, например colima.
Некоторые из дававших мастер-классы делали и доклады. Андрей, например, не ограничился любимой темой эксплойтов, а рассказывал ещё и о своём опыте по сжатию WAL. Речь о сжатии больших записей, а не всего WAL. Он предложил свой способ решения проблемы с большими записями сообществу, вот его письмо в рассылку hackers: Compress big WAL records. Андрей обсуждает способы сжатия, в докладе есть и весьма интересные обобщения.
Некоторые доклады образовывали тематические пары - мне нравится такой подход. Например: Изменение структуры таблиц в PostgreSQL с помощью технологии DBMS_REDEFINITION - это доклад Игоря Мельникова, в своё время перешедшего из Oracle в Postgres Professional. Сейчас Игорь был приглашён уже как независимый консультант. Как и он сам, его разработка имеет оракловые корни. Расширение Postgres с названием dbms_redefinition
повторяют пакет с тем же названием в Oracle: DBMS_REDEFINITION - там тот же состав и те же названия функций и их сигнатуры. Игорь написал свой постгресовый пакет целиком на PL/pgSQL, в нём примерно 2 тысячи строк кода. Ссылки нет - пакет ещё не выложен на githab. Но там будет. В конце выступления (в презентации это стр. 21) есть список ограничений. А дальше (стр. 22) есть даже и сравнение с pgpro_redefinition. Понятно, что у pgpro_redefinition галочек - функциональных возможностей больше, но dbms_redifinition будет работать на любом PostgreSQL, не только Pro.
Пару образует доклад Александра Попова из Postgres Professional pgpro_redefinition — итоги переработки - итоги работы за год. Это тот случай, когда надо смотреть доклад, пролистнуть презентацию недостаточно. Александр говорит, что не собирался делать этот доклад (между прочим, на этой конференции он выступал аж 3 раза: кроме 2-часового мастер-класса и этого доклада, ещё и доклад Хранение файлов в Postgres - итого 40+40+120=3ч 20мин). Но, когда узнал о заявленном докладе Мельникова, понял, что надо прояснить некоторые нюансы. Александр, кстати, рассказывал о расширении pgpro_redefinition и на PGConf.Russia 2024.
Дело в том, - сказал он, - что богатая функциональность не самоцель. Некоторые фичи при тестировании на больших таблицах показали себя тормозными, и от них решили отказаться. Так случилось с отложенным переносом данных: там не обойтись без построчного копирования, а от него отказались в пользу копирования постраничного, которое гораздо более быстрое. И там появился и надёжно работает параллелизм.
Логическая репликация работает хорошо и надёжно, но решили, что в этом расширении ей делать нечего, за логической репликацией лучше обратиться к другим инструментам Postgres Pro Enterprise. И так далее - очень важный материал для пользователя или потенциального пользователя этого расширения.
Когда я писал об этих докладах, неожиданно набрёл ещё на один dbms_redefinition - оказывается, есть разработка с таким названием на базе pg_migrate и pg_repack у китайского коллектива HaloLab. Не в обиду автору доклада, только информации ради.
Управление петабайтами логов в PostgreSQL - Крис Трейверс (Christopher Travers), гендир OneMoreData. Это был один из 4 иностранных докладов, второй тоже был Кристофера - о стрессах админа базы. Остальные два транслировались: доклад Перевод T-SQL (MS SQL Server) в PL/pgSQL - Карела ван дер Валта (Karel van der Walt, Mental Arrow) и Migrating from Oracle PL/SQL to PostgreSQL PL/pgSQL : Navigating Differences and Optimization Challenges - Абхинава Сангара (Abhinav Sagar, CSG International - Индия).
Крис постоянный участник PGConf.Russia, с Postgres он уже 27 лет, постил патчи, делал проекты, с очень большими данными работает лет 8-10. И ему есть что рассказать. Не на каждом докладе услышишь, что "с 10ПБ мы управились легко". И необычно то, что акцент проектов был на масштабируемости на запись, а не на чтение.
Начало этой истории на прошлом месте работы Криса - немецкой компании Adjust. Мы-то об этой компании немало слышали. Например, мы нередко рассказываем о статьях хорошо нам знакомого Артура Закирова (Artur Zakirov). Крис рассказывает, как организовывали работу с Kafka, как ворочали данные лопатами данных (Data Shovel, Data Schoufel по-немецки), как довели ElasticSearch до предела его возможностей, когда система захлёбывалась и выпадали ноды. И как с этим справлялись.
Через пару лет уже в другом проекте потребовалась еще более масштабируемая система с высокой нагрузкой на запись и редкими чтениями. Разработку в Adjust пока что не отдали в опен сорс, поэтому пришлось делать многое заново - и уж на этот раз всё в опен сорс.
Построили такую систему на PostgreSQL. Разработку назвали Bagger - так зовётся гигантский крупповский роторный экскаватор (не шагает, гусеничный). Bagger способен управлять логами объёмом в десятки и сотни (!) петабайт. Между прочим, такие объёмы копились не годами, а за месяц.
Вот этот bagger: Massive log storage in PostgreSQL. Команда с некоторыми людьми из Adjust писали в основном на Perl (Perl Dancer) и C (триггеры все на C). Может поменяем некоторое число нод на Citus, но это из тех вопросов, которые решаются, а не решены - говорит Крис. Пока что с масштабированием на запись всё хорошо, но одновременно ещё и масштабировать по чтению - задача сложная. И ещё один из нерешённых, рассматриваемых вопросов - можно ли отказаться от TOAST. А ключевое слово доклада, пожалуй, компромиссы.

Как PostgreSQL может сделать больно, когда не ожидаешь - Михаил Жилин.
Этого доклада многие ждали. Из-за этого я на него и не попал: выделили большой зал, но не только все места были заняты, а целая толпа ещё стояла в коридоре у входа. От Михаила ждали технически насыщенного доклада и артистизма и дождались, судя по тому, что этот доклад получил больше всего зрительских симпатий (но на PGConf награды не дают сотрудникам Postgres Professional). Интересно, какие бы были баллы, если б давали отдельно за технику и артистизм? Напишу всё же немного - по видео.
Страдания и кошмары. Только реальные примеры, но все имена изменены, а совпадения случайны.
В доклад Михаил уместил 6 увлекательных историй:
глобальные счётчики;
потерянные индексы;
to truncate or not to truncate?
коммить, восхищай!
когда физическая репликация отстаёт;
когда физическая репликация отстаёт, ещё раз, по-другому.

Михаил нещадно эксплуатирует метамемы, в докладе полно и моих любимых картинок - диаграмм FlameGraph, они в изобилии появляются в коммить, восхищай! и уже не слезают с экрана проектора - как и результаты perf и других инструментов подлинного исследователя производительности.
Выводы (их 3) такие:
умение профилировать даёт понимание сути проблемы;
свежие версии — это не только фичи, но и…
PostgreSQL можно разогнать до космических скоростей.. (ура!)
В докладе Как возможна Serverless база данных, для задач OLTP и OLAP Николая Голова из Postgres Professional не только бессерверные, но и бессердечные - не верите, проверьте, нет доступа - тогда да, поверьте.
В Postgresso мы довольно часто пишем о бессерверных базах. Чаще всего о Neon, создателей которой мы неплохо знаем. Николай же говорит о Snowflake и CockroachDB. Но дело не в этом, а в том, что рассказывает он об архитектурных и даже концептуальных проблемах/решениях: о Stateless/Statefull, о способах хранения, которые кажутся экстравагантными. Например, он говорит о хранении не строчном, не колоночном, а о хранении отдельных ячеек (определяемых строкой и колонкой) в огромной in memory базе key-value. И лишь за пару минут до конца своего доклада представляет Data Prostore (не путать с Prostore без Data), где есть разделение хранения и вычислений. Это действующая разработка, она была представлена на стенде.
Доклад Павла Лузанова был в самом начале. Ещё бы: тема его - PostgreSQL 18. Но мы уж очень часто начинали рассказ о PGConf с доклада Павла, пусть теперь будет пред-завершающим. Этот доклад был в самом большом зале. Зал - битком. Найти свободное место было непросто.

Выделю, что из нового в PostgreSQL 18, что мне запомнилось, а Павел счёл заслуживающим внимания.
Это checksums by default - подсчёт контрольных сумм теперь по умолчанию;
buffers - показываются теперь в Explain по умолчанию. И сколько раз сканировался индекс; дробное число строк; использование временного хранилища строк;
можно загрузить pg_overexplain, после чего получить в Explain дополнительные сведения: RANGE TABLE, DEBUG;
в мониторинге: статистика ввода-вывода для WAL; статистика клиентских процессов: ввод-вывод, WAL;
много по автовакууму;
SQL:Темпоральные ключи (не временные, а по времени);
из SQL: виртуальные генерируемые столбцы (раньше были только хранимые).
Расширение Вселенной и жизнь на Земле — астроном Анатолий Засов (доктор физ-мат наук, профессор физического факультета МГУ и сотрудник ГАИШ). Эта лекция была непохожа на лекцию об истории физики Вселенной Алексея Семихатова на PGConf.Russia 2024 - Открытие Вселенной силой мысли. Хотя она тоже звёздная. Обе хороши. Лектор меньше был похож на рок-звезду, не перемещался стремительно по сцене, не так эффектно интонировал, но лекция была ничуть не менее завораживающей. Ну а как иначе, когда тема - существование жизни, откуда она взялась, откуда взялась наша планета, эволюция вселенной, - а рассказывает ... тот, кто и должен и может об этом рассказывать.
PS. Опубликовали запись экспресс-доклада от Олега Бартунова, где он рассказал историю логотипа Slonik сообщества PostgreSQL - на Rutube и на Youtube.
PPS. Postgres Professional в соцсетях: YouTube, Rutube, ВК, Telegram, Дзен, Habr.
Непал
Соорганизатороми конференции были Университет Катманду и Postgres Professional. Были замечены люди из крупных банков. Это третья конференция, и впервые появились местные компании-спонсоры (внизу страницы). Так что Postgres пошёл в непальские массы.

В февральском Postgresso (следующим выйдет сдвоенный ##3-4) мы писали, что конференция пройдёт 5-6 мая в кампусе Университета Катманду в Дуликхеле (Dhulikhel, 30 км от столицы). Это не совсем точно. Практические занятия прошли в KUSoMе - в бизнес школе Университета Катманду, расположенной на окраине города.
Специально для этой конференции мои коллеги из Отдела Образования сделали двухдневную спецверсию курса DEV1 по PostgreSQL 17 (обычный DEV1 рассчитан на 4 дня). Занятия проводили Егор Рогов, Илья Баштанов и Павел Толмачев. Было примерно 30 человек, сидели, слушали внимательно, делали задания, в кулуарах задавали разнообразные вопросы - небольшая, но заинтересованная аудитория.

Сама конференция действительно проходила в Дуликхеле, и на ней было уже человек семьдесят. Для маленького Непала это не так уж мало. Делегация из Postgres Professional была многочисленной: гендир Олег Бартунов, зам гендира Иван Панченко, Михаил Жилин, Екатерина Соколова, Павел Лузанов, Егор Рогов, Павел Толмачёв, Илья Баштанов и Николай Шаплов. Открывал действо Олег Бартунов (но без бубнов и шаманов на этот раз: они, видимо, как-то не вписались в атмосферу этой буддийской страны). Речь его произвела, говорят, большое впечатление на непальцев. Олег много говорил о том, что очень важно вырастить в Непале сообщество. А 2-я и 3-я технические сессии вообще целиком состояли из наших докладов.
Выступали, конечно, и непальцы. Воркшоп по расширениям, например, проводил Свастик Гурунг (Swastik Gurung, Bajra Technologies). Были индийские докладчики (они, кажется, засветились и на PGConf.India 2025, а потом и в Москве) и пакистанский постгресист из известной компании Stormatics. Всех регулярно приветствовал профессор университета доктор Бал Кришна Бал (Bal Krishna Bal) и некоторые его коллеги. Всем причастным вручили token of love - это была кружка с логотипом конференции. Название всем очень понравилось.

Кроме Олега в качестве звёзд выступали Крис Трейверс (Christopher Travers, как и в Москве - во плоти) и Брюс Момджан (как и в прошлом году в Москве - онлайн).

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

Что греха таить, привлекала многочисленных российских гостей не только перспектива Postgres-пресвещения непальцев, но и прогулки, граничащие у многих с серьёзным горным туризмом. А марафон у базового лагеря Джомолунгмы-Эвереста, куда направилась часть делегации - я бы назвал экстремальным развлечением.

На момент написания этого обзора Олег Бартунов размялся на Таши Лапча (5800, а Эльбрус, кстати, 5642) и направляется с компаньонами к перевалу Ренжо Ла (горные фото из его блога, остальные прислал Егор Рогов).
Такие дела. Надеемся, что следующая конференция будут через год. Сначала речь шла о встрече через два года, но Олег настоял, и Бал согласился. И пообещал, что будет 100+ человек, так что придется переносить конфу в другой зал, побольше.
