Открыта регистрация на конференцию PGConf.Russia 2022. Конференция состоится 28 февраля – 01 марта там же, где и в прошлом году — в Первом МГМУ имени И. М. Сеченова. Принимаются доклады оффлайн длительностью 45 или 22 минуты или мастер-классы длительностью 90 минут на русском и английском языке. Возможно подключение ноутбука докладчиков для живых демонстраций (Live coding).

Ну а мы решили по этому поводу обновить воспоминания о предыдущей конференцииPGConf.Russia 2021 (офлайновой, в 2021-м была и онлайновая)

Начнём с докладов, которые стали тогда победителями голосования.
1-е место:

Андрей Зубков, руководитель группы систем мониторинга (Postgres Professional),
Развитие модуля анализа исторической нагрузки pg_profile/pgpro_pwr.

Доклад победил не только потому, что он толковый, но, конечно, по той причине, что очень многих интересуют мониторинг и конкретно возможности популярных утилит-расширений pg_profile/PWR.

PWR, или pgpro_pwr есть в Postgres Pro Enterprise 12 и 13 и в Postgres Pro Standard 14, 13, 12 (в Enterprise PWR может работать в связке с pgpro_stats). PWR создано на базе расширения pg_profile того же автора (докладчика). В PWR добавлена функциональность, которая интересовала клиентов.

Расширение собирает статистику с 13 системных таблиц (в докладе они перечислены). Делаются снэпшоты статистических данных (допустим, раз в полчаса), между снимками агрегируются и выводятся в наглядной форме как обычные html. Рассказав об устройстве и установке, Андрей перешёл к конкретному инциденту в базе и к тому, как он отобразился средствами его расширения.

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

Естественно, со времени прочтения этого доклада в pg_profile/PWR некоторые пункты этого плана уже реализованы, и появились другие приятные изменения. И, естественно, на PGConf.Russia 2022 тоже будет доклад Андрея Зубкова, где он расскажет о новшествах.

2-е место:

Андрей Сальников, DBA (Data Egret),
Индексы в помощь приложениям

Исходя из того, что отнюдь не все индексы полезны, Андрей предлагает некоторые критерии, уловки и тактики. Он, например, советует не только изучать статистику по представлению pg_stats, обращая внимание на корреляцию, но и в некоторых случаях собирать статистику вручную — когда нужна более полная, и когда есть подозрение: нет ли промахов.

Его высказывания об индексах иногда довольно экстравагантны: «hash — мою любимый тип индексов. Абсолютно бесполезен, используйте btree». Андрей поднял капот, смотрит, что там под капотом, и всем рассказывает. Строит индексы разных типов и на некоторых запросах добивается ускорения в тысячи раз, когда индекс правильный.

Бронзовый призёр:

Сергей Новиков, ведущий администратор баз данных («ЕДИНЫЙ ЦУПИС»),
Внедрение партицирования без простоя

Это мастер-класс (больше похожий на доклад) от админа, работающего с финансовой экосистемой (ЦУПИС = Центр Учёта Переводов Интерактивных Ставок), пропускающей через себя миллионы платежей ежедневно. Даже минута простоя приводит к возмущённым звонкам клиентов.

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

Ещё о некоторых докладах:

Андрей Бородин, руководитель подразделения разработки РСУБД с открытым исходным кодом в Яндекс.Облако,
Детали реализации CREATE INDEX CONCURRENTLY

Это, может быть, самый технологичный доклад конференции. Андрей рассказывает всего об одном патче (а работал он над полусотней), но это лишь повод разобрать уровни блокировок таблиц и строк, о том, что творится в ProcArray (с очень наглядной диаграммой). И о том, как вор был пойман: логика создания индекса нарушается при работе с двухфазными транзакциями: CREATE INDEX CONCURRENTLY does not index prepared xact's data.

Олег Бартунов, генеральный директор Postgres Professional, Никита Глухов, старший разработчик Postgres Professional,
Элегантный поиск ближайших соседей в PostgreSQL

(У Олега был на этой конференции и ещё один доклад, на тему «JSON or not JSON. Плюсы и минусы использования JSON в PostgreSQL». На эту тему он говорит намного чаще, поэтому сегодня перескажем доклад по KNN)

Надо найти N ближайших соседей к заданной на карте точке: 7 ближайших ресторанов или 5 бензоколонок. Задача K-NN (K-nearest neighbours) очень актуальная. Важно, что задача «найти рестораны» в радиусе R для базы принципиально другая. В K-NN радиус заранее не известен, так как иногда число соседей, попадающих внутрь окружности предсказать трудно.

(Класс задач K-NN гораздо шире задач пространственного поиска, например, он отлично работает при работе с текстом: в поиске похожих слов и опечаток)

Как же эффективно искать этих K соседей? Индекс не всегда помогает. Нужны модификации индексов (например, нужна новая версия GiST), другие стратегии обхода деревьев. Рассуждения сопровождаются диаграммами, визуализирующими эффективность различных стратегий и настроек. Тут хочется сказать: «и это просто красиво!»

Антон Дорошкевич, Руководитель ИТ-отдела (ИнфоСофт),
Неравный бой с «распуханием» в реалиях баз 1С

В этом неравном бою Антон всё же нащупал некоторые стратегии защиты. Одна из них: нужно быть поосторожней с UPDATE. Можно, например, запускать триггером BEFORE UPDATE на уровне строк процедуру, которая предотвратит внесение изменений в строки, в которых сами данные фактически не меняются.

Фёдор Сигаев, технический директор (Postgres Professional),
Зачем еще 64-битные значения?

Изрядная часть доклада была отдана традиционным для PostgreSQL — 32-битным счётчикам (идентификаторам) транзакций (XID). О прошлом и будущем на круге транзакций, что такое wraparound, для чего появился VACUUM, autovacuum, vacuum freeze, и какие проблемы из-за этого возникают.

Для того, чтобы wraparound случился, нужно около 2 млрд. транзакций. Когда-то для этого нужно было ждать вечность, потом годы. В наше время и вообще в мире, и у нас в России немало систем, которые набирают эти 2 млрд транзакций за дни, даже не за недели. Это связано и с ростом анализируемых данных, и с мощью железа, способного с этим справиться, и с быстрыми дисками.

Дальше Фёдор рассказал, каким образом в Postgres Professional Enterprise реализованы 64-битные счётчики. И в каком смысле они 64-битные. В смысле диапазона значений они 64-битные. Но хранятся не все 64-бита, это было бы слишком расточительно. А ещё Фёдор коснулся таких тонких вопросов, как «подрезание clog», CSN и других — подробности смотрите в докладе.

И, пользуясь случаем, рекомендуем книгу Егора Рогова «PostgreSQL изнутри». Она только что вышла в виде PDF, а на конференции будет доступна уже бумажная версия. Там вопросы, связанные со счётчиками транзакций, конечно, разобраны.

Доклад Мифы и заблуждения о Вселенной доцента МГУ Владимира Сурдина был не слишком постгресовый — если не считать слонов на его слайде:



Но это уж традиция: основатели Postgres Professional астрономы, а Иван Панченко даже недавно получил приз Книга Года за Неизвестное Солнце. Расследование. Чудеса. Факты. Загадки (в соавторстве с Еленой Киричек). Так что такое лирическое отступление длиной в целый доклад (а в нём аж 163 шикарных слайда!) простительно. Да и прощать не за что: всем, кажется, доклад понравился. Владимир Сурдин автор книг Вселенная в вопросах и ответах. Задачи и тесты по астрономии и космонавтике и Понятный космос. От кварка до квазара.

Ну и ещё раз: WELCOME на PGConf.Russia 2022

Комментарии (1)


  1. Jsty
    31.01.2022 17:15
    +2

    1. Через какое время записи докладов появятся в свободном доступе?

    2. Все ли доклады/воркшопы будут записаны?

    3. Программа на данный момент только формируется, ознакомиться с планируемыми темами нельзя?