Вспоминаем доклады конференции PGConf.Russia 2021

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Открыта регистрация на конференцию 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
Источник: https://habr.com/ru/company/postgrespro/blog/647819/


Интересные статьи

Интересные статьи

Всем привет! Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире. Главные темы нового выпу...
В ночь с воскресенья на понедельник в ходе пары сессий на E3 2021 разработчики представили более 80 игр. Анонсы, как обычно, сопровождались демонстрацией трейлеров. Издатели и разработч...
Появившиеся в 2006 году сервисы Google по работе с текстовыми документами (Google Docs) и таблицами (Google Sheets), дополненные 6 лет спустя возможностями работы с вирту...
Росстат утверждает, что в 2019 году в России по трудовому договору об удаленной работе официально работали только 30 тысяч из 67 млн занятых. Это очень мало и слабо отражае...
Каждому любопытному сотруднику IT рано или поздно становится интересно узнать чем занимаются коллеги по цеху, обменяться опытом и посмотреть на новые технологии, появляющиеся на рынке. Для этих ц...