До розыгрыша «Кабанчика» осталось 3…2…1…
Друзья! Состоялся розыгрыш книги «Высоконагруженные приложения. Программирование, масштабирование, поддержка» за авторством Мартина Клеппмана (в простонародии – «кабанчик») с автографами спикеров PG BootCamp Russia 2026 Moscow.
Победителем стал Vitaly (@Vtitaly)!
Поздравляем. Организаторы свяжутся с вами для уточнения деталей доставки.
Друзья! Состоялся розыгрыш книги «Высоконагруженные приложения. Программирование, масштабирование, поддержка» за авторством Мартина Клеппмана (в простонародии – «кабанчик») с автографами спикеров PG BootCamp Russia 2026 Moscow.
Победителем стал Vitaly (@Vtitaly)!
Поздравляем. Организаторы свяжутся с вами для уточнения деталей доставки.
🔥26🎉20👍9😢2
PG BootCamp Russia 2026 Moscow: как это было
19 марта в Москве прошла пятая, юбилейная конференция PG BootCamp Russia. 563 участника офлайн и более 1300 онлайн — сообщество растет и укрепляется. О том, как это было – читайте на Хабре в репортаже одного из непосредственных участников события..
P.S. Записи всех докладов, а также фотографии с мероприятия появятся в ближайшие недели.
Когда выложим - обязательно сообщим, оставайтесь на связи!
Читать репортаж на Хабре
19 марта в Москве прошла пятая, юбилейная конференция PG BootCamp Russia. 563 участника офлайн и более 1300 онлайн — сообщество растет и укрепляется. О том, как это было – читайте на Хабре в репортаже одного из непосредственных участников события..
P.S. Записи всех докладов, а также фотографии с мероприятия появятся в ближайшие недели.
Когда выложим - обязательно сообщим, оставайтесь на связи!
Читать репортаж на Хабре
👍16🔥6❤🔥2
Презентации спикеров PG BootCamp Russia 2026 Moscow
Как и обещали, начинаем публиковать материалы с прошедшей конференции. Уже можно скачать презентации спикеров. Видео пока что загружаются, нужно еще немного подождать.
📑 Скачать презентации (GitHub)
Как и обещали, начинаем публиковать материалы с прошедшей конференции. Уже можно скачать презентации спикеров. Видео пока что загружаются, нужно еще немного подождать.
📑 Скачать презентации (GitHub)
🔥18👍12
Ответы на вопросы спикерам из чата онлайн-трансляции
🔹Вопросы к докладу Станислава Выщепана «Очереди и кэш на Postgres — без Redis, RabbitMQ и Kafka»
❔Вопрос по типам данных. Есть ли инструменты для работы с целыми числами больше 64 разрядов. Т.е. int, который больше, чем 2^64 (ограничение из-за разрядности архитектуры процессора). Речь об индексируемых данных.
❔Сравнение ограничено только RabbitMQ и Kafka. Рассматривали ли Вы позиционирование PgSQL как замену инфраструктуры данными с ESB-решениями? Да/нет, почему, какие преимущества?
🔹Вопрос к докладу Константина Ващенкова «Опыт эксплуатации, проблемы и производительность PostgreSQL на Эльбрус, Baikal-S, Loongson/Иртыш, Repka Pi, x86»
❔Учитывает ли планировщик запросов PostgreSQL какие-то особенности архитектуры "Эльбрус" (например, очень большой набор регистров), или он работает в "эмуляции" x86, и мы теряем потенциал производительности?
🔹Вопрос к докладу Кирилла Боровикова «Highload «из ниоткуда»: когда проблема не в СУБД, а в клиентской архитектуре»
❔В каком приложении ведется логирование процесса разбора проблемы? Чтобы можно было передать ссылку разработчику, который столкнулся с подобной ситуацией.
🔹Вопросы к докладу Станислава Выщепана «Очереди и кэш на Postgres — без Redis, RabbitMQ и Kafka»
❔Вопрос по типам данных. Есть ли инструменты для работы с целыми числами больше 64 разрядов. Т.е. int, который больше, чем 2^64 (ограничение из-за разрядности архитектуры процессора). Речь об индексируемых данных.
Ответ: тип numeric позволяет хранить и индексировать числа со 131 072 десятичными цифрами до точки. Для больших чисел придется отыскать или сделать расширение.
❔Сравнение ограничено только RabbitMQ и Kafka. Рассматривали ли Вы позиционирование PgSQL как замену инфраструктуры данными с ESB-решениями? Да/нет, почему, какие преимущества?
Ответ: ESB — это зачастую сервер приложений, API которого может подстраиваться под целевые системы и преобразовывать данные между форматами разных систем. Реализация такого в Postgres видится не вполне целесообразной.
🔹Вопрос к докладу Константина Ващенкова «Опыт эксплуатации, проблемы и производительность PostgreSQL на Эльбрус, Baikal-S, Loongson/Иртыш, Repka Pi, x86»
❔Учитывает ли планировщик запросов PostgreSQL какие-то особенности архитектуры "Эльбрус" (например, очень большой набор регистров), или он работает в "эмуляции" x86, и мы теряем потенциал производительности?
Ответ: вся инсталляция нативна, без бинарной транасляция, то есть чистый e2k. Потенциал производительности – да, теряем, но для этого существуют доработанные, т.е. не ванильные, версии PostgreSQL.
🔹Вопрос к докладу Кирилла Боровикова «Highload «из ниоткуда»: когда проблема не в СУБД, а в клиентской архитектуре»
❔В каком приложении ведется логирование процесса разбора проблемы? Чтобы можно было передать ссылку разработчику, который столкнулся с подобной ситуацией.
Ответ: Процесс разбора обнаруженной ошибки или инцидента производительности ведется внутри нашего же продукта Saby, который сочетает функции как трекера, так и системы внутреннего документооборота.
❤4🔥3
🔹Вопросы к докладу Алексея Копытова «Разделение Compute и Storage: архитектурный прорыв для PostgreSQL в облаке»
❔Вопрос к слайдам 21/22. Зачем нужно было реализовывать fsync(), если на слайде 21 упоминается, что PolarFS работает в O_DIRECT режиме? Возможно, поэтому fsync() и был no-op?
❔Если HAProxy знает кто мастер, и произошла потеря мастера, переключение на standby, может ли оказаться так, что бывший мастер, не имея связи с HAProxy, будет продолжать думать, что он мастер, и тажке проводить запись?
❔Вопрос к слайдам 21/22. Зачем нужно было реализовывать fsync(), если на слайде 21 упоминается, что PolarFS работает в O_DIRECT режиме? Возможно, поэтому fsync() и был no-op?
Ответ: Tantor Polar, как и PostgreSQL, для обеспечения долговечности данных вызывает сброс буферов на диск через аналог fsync() — в API PolarFS это pfsd_fsync() (и соответствующий вызов в libpfs). Без реальной реализации этого вызова нельзя гарантировать, что после сбоя питания или падения узла записанные данные действительно окажутся на постоянном носителе.
В оригинальной открытой реализации PolarFS вызовы pfsd_fsync() и pfs_fsync() были пустыми операциями (noop): они ничего не делали. Причины в коде не задокументированы. Возможные объяснения - в облачной версии PolarFS поверх PolarStore запись могла считаться «автоматически устойчивой» (например, семантика вроде O_SYNC на уровне хранилища). Для блочного устройства (бэкенд PFS_DEV_DISK), которое мы используем, это не применимо. Или же разработчики могли считать, что раз PolarFS использует только небуферизованный I/O (O_DIRECT), явный fsync() не нужен.
На деле O_DIRECT лишь обходит кэш страниц ОС и гарантирует попадание данных в кэш устройства, а не обязательно на энергонезависимый носитель. Считать запись устойчивой можно только если железо гарантирует защиту от потери питания (PLP), а в общем случае — и тем более в программно-определяемом хранилище — полагаться на это нельзя.
Поэтому в нашей доработанной PolarFS исправлено: при вызове pfsd_fsync() / pfs_fsync() теперь принудительно выполняется сброс кэша записи нижележащего блочного устройства (аналог flush на уровне диска). Поведение включается опцией конфигурации diskdev_flush_enable (по умолчанию включено). Это даёт Tantor Polar корректную гарантию долговечности при использовании PolarFS на произвольном блочном устройстве или кластере хранения.
❔Если HAProxy знает кто мастер, и произошла потеря мастера, переключение на standby, может ли оказаться так, что бывший мастер, не имея связи с HAProxy, будет продолжать думать, что он мастер, и тажке проводить запись?
Ответ: Patroni с DCS (etcd/Consul) – единый источник истины о том, кто сейчас мастер. Эпоха увеличивается при каждом failover. Shared storage с fencing – при переключении новый мастер получает эксклюзивное право на запись в общее хранилище. Даже если на реплике случайно или намеренно выполнить promote, эта операция провалится – реплика не сможет перемонтировать storage в режим RW, так как shared storage уже захвачен действующим мастером. HAProxy в этой схеме отвечает только за маршрутизацию клиентского трафика, но не за предотвращение split-brain – эту работу делают Patroni и shared storage. Так что потеря связи с HAProxy не позволяет старому мастеру навредить данным.
ProxySQL с группой репликации – в нашей архитектуре мы используем ProxySQL, в котором группа репликации допускает только один пишущий узел. Роли узлов периодически проверяются в отдельном потоке мониторнга. Это гарантирует, что даже если какой-то узел по ошибке считает себя мастером, пишущий трафик на него не пойдёт. Таким образом, даже при полной потере связи между компонентами, ни один узел не сможет несанкционированно писать в данные.
🔥4❤1
🔹Вопросы к докладу Александра Никитина «Работа с логами PostgreSQL»
❔Используются в Вашей организации ИИ-агенты для анализа логов?
❔Отдел безопасности очень хочет видеть все изменения в БД, я смог им предложить только log_statements = all. Можно ли как-то этого избежать?
❕Напоминаем: презентации спикеров уже доступны, а видео выступлений мы выложим и оповестим вас в ближайшее время.
❔Используются в Вашей организации ИИ-агенты для анализа логов?
Ответ: Нет, мы не используем ИИ для анализа логов
❔Отдел безопасности очень хочет видеть все изменения в БД, я смог им предложить только log_statements = all. Можно ли как-то этого избежать?
Ответ: Если интересуют изменения, то всё-таки - log_statement=mod должно вам подойти - all будет включать в себя и запросы (SELECT), которые вряд ли будут интересовать безопасников. Возможно, отделу безопасности не хочется видеть абсолютно все изменения, а только изменения на каких-то конкретных таблицах? Ведь объём изменений в БД очень велик и со временем он начнёт превышать размер самой БД. Если можно ограничиться конкретными таблицами, то можно посмотреть в сторону дополнительных расширений типа pgaudit или рассмотреть создание триггеров, на интересующих их таблицах. В любом случае, нужно исходить именно от поставленной задачи.
❕Напоминаем: презентации спикеров уже доступны, а видео выступлений мы выложим и оповестим вас в ближайшее время.
🔥6👍2
Друзья!
Видеозаписи докладов и фотоотчет с PG BootCamp Russia 2026 Moscow готовы.
Для вашего удобства просмотр доступен на:
📌 Rutube
📌 Youtube
Также доступен фотоотчет с конференции:
📌 Облако с фотографиями
Приятного просмотра!
Видеозаписи докладов и фотоотчет с PG BootCamp Russia 2026 Moscow готовы.
Для вашего удобства просмотр доступен на:
Также доступен фотоотчет с конференции:
Приятного просмотра!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤10👍10⚡2
Forwarded from Pangolin Community
Привет, это Павел Селезнев, участник команды Pangolin. Пару недель назад я выступил на PG BootCamp с докладом «Временные таблицы для PostgreSQL. Почему это важно для платформы 1С и что можно улучшить?».
⏯️ Запись доклада можно посмотреть по ссылке
После выступления мне задали несколько интересных вопросов. На два из них я ответил в прошлом посте. Сегодня продолжу и разберу вопрос о медленной работе оператора UPDATE. Спасибо автору за вопрос и за то, что позже прислал почтой дополнительные детали👍
Схема базы данных
Таблица cmn_object (назовем её «Справочник идентификаторов»)
Таблица od_structure_extension (назовем её «Справочником апартаментов»)
Таблица _result (назовем её «Доступными апартаментами»)
Проблемный запрос
-----------------
Задача: требуется обновить те апартаменты, которые есть в _result и не заняты.
Проблема: запрос выполняется очень медленно.
Уточним, что:
1) Проблема не относится к временным таблицам, если мы уберём ключевое слово TEMP, то она сохранится
2) Оптимизатор ошибается со статистикой, т.к. она не актуальна. Поэтому в начале здесь у нас происходит self join (то есть декартово произведение таблицы саму на себя), и далее идёт фильтрация миллионов строк.
✔️ Возможные решения
1) Можно переписать запрос так:
2) Если запрос редко выполняется, то можно запустить Analyze перед ним.
Если вы тоже хотите узнать побольше по теме временных таблиц для PostgreSQL, задавайте вопросы в комментариях — разберу их там, а может, сделаю отдельный следующий пост👌
Подписывайтесь на Pangolin в Max | ВКонтакте
После выступления мне задали несколько интересных вопросов. На два из них я ответил в прошлом посте. Сегодня продолжу и разберу вопрос о медленной работе оператора UPDATE. Спасибо автору за вопрос и за то, что позже прислал почтой дополнительные детали
Схема базы данных
Таблица cmn_object (назовем её «Справочник идентификаторов»)
CREATE TABLE cmn_object
(
id bigint PRIMARY KEY
);
Таблица od_structure_extension (назовем её «Справочником апартаментов»)
CREATE TABLE od_structure_extension
(
id bigint PRIMARY KEY,
object_id bigint ,
common_apartment_number int NOT NULL
);
Таблица _result (назовем её «Доступными апартаментами»)
CREATE TEMP TABLE _result
(
identity_column bigint NOT NULL,
object_id bigint NOT NULL,
living_rooms_amount varchar(30)
)
Проблемный запрос
-----------------
Задача: требуется обновить те апартаменты, которые есть в _result и не заняты.
UPDATE _result r_u
SET living_rooms_amount = ex.common_apartment_number::varchar
FROM _result r
JOIN cmn_object o
ON r.object_id = o.id
JOIN no.od_structure_extension ex
ON ex.object_id = o.id
WHERE r_u.identity_column = r.identity_column
AND r.living_rooms_amount IS NULL;
Проблема: запрос выполняется очень медленно.
Уточним, что:
1) Проблема не относится к временным таблицам, если мы уберём ключевое слово TEMP, то она сохранится
2) Оптимизатор ошибается со статистикой, т.к. она не актуальна. Поэтому в начале здесь у нас происходит self join (то есть декартово произведение таблицы саму на себя), и далее идёт фильтрация миллионов строк.
✔️ Возможные решения
1) Можно переписать запрос так:
UPDATE _result u
SET living_rooms_amount = (
SELECT ex.common_apartment_number::varchar
FROM no.cmn_object o
JOIN no.od_structure_extension ex
ON ex.object_id = o.id
WHERE o.id
= u.object_id
LIMIT 1
)
WHERE u.living_rooms_amount IS NULL
AND EXISTS (
SELECT 1
FROM no.cmn_object o
JOIN no.od_structure_extension ex
ON ex.object_id = o.id
WHERE o.id
= u.object_id
);
2) Если запрос редко выполняется, то можно запустить Analyze перед ним.
Если вы тоже хотите узнать побольше по теме временных таблиц для PostgreSQL, задавайте вопросы в комментариях — разберу их там, а может, сделаю отдельный следующий пост
Подписывайтесь на Pangolin в Max | ВКонтакте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥2
После мартовского PG BootCamp Russia многие темы, поднятые в докладах партнеров конференции, получают продолжение уже в отдельных технических мероприятиях.
🔹25 июня коллеги из «Хи-Квадрат» провели вебинар, посвященный развитию своих low-code инструментов для PostgreSQL. Если пропустили эфир — доступна запись.
Продолжает развитие и тема современной архитектуры PostgreSQL, которая звучала в докладах Вадима Яценко и Алексея Копытова. На московском PG BootCamp обсуждалось преодоление архитектурных ограничений классического PostgreSQL, подход Compute / Storage Separation и построение работающей на едином наборе данных HTAP-системы внутри PostgreSQL без необходимости прибегать к использованию внешних аналитических движков.
🔹30 июня в 11.00 команда «Тантор Лабс» расскажет, как эти архитектурные подходы реализованы в машине баз данных Tantor XData Gen3. В программе — эволюция архитектуры, 100% совместимая с PostgreSQL распределенная СУБД Tantor Polar, организация вычислительных и storage-ресурсов, инструменты управления и практическая демонстрация работы системы. Мероприятие пройдет онлайн бесплатно для всех участников.
📌 Регистрация
🔹25 июня коллеги из «Хи-Квадрат» провели вебинар, посвященный развитию своих low-code инструментов для PostgreSQL. Если пропустили эфир — доступна запись.
Продолжает развитие и тема современной архитектуры PostgreSQL, которая звучала в докладах Вадима Яценко и Алексея Копытова. На московском PG BootCamp обсуждалось преодоление архитектурных ограничений классического PostgreSQL, подход Compute / Storage Separation и построение работающей на едином наборе данных HTAP-системы внутри PostgreSQL без необходимости прибегать к использованию внешних аналитических движков.
🔹30 июня в 11.00 команда «Тантор Лабс» расскажет, как эти архитектурные подходы реализованы в машине баз данных Tantor XData Gen3. В программе — эволюция архитектуры, 100% совместимая с PostgreSQL распределенная СУБД Tantor Polar, организация вычислительных и storage-ресурсов, инструменты управления и практическая демонстрация работы системы. Мероприятие пройдет онлайн бесплатно для всех участников.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤2
За последние годы участники PG BootCamp Russia хорошо познакомились с «Тантор Лабс» — бессменным генеральным партнером конференции. Коллеги регулярно выносят на обсуждение новые архитектурные подходы и возможности для развития российских Postgres-технологий. В августе Tantor исполняется пять лет, а 10 сентября пройдет главное ежегодное мероприятие компании — Tantor JAM 2026.
Если вам интересны не только сегодняшние возможности PostgreSQL, но и технологии, которые будут определять его развитие в ближайшие годы, рекомендуем обратить внимание на это мероприятие.
Программа встречи формируется, однако уже проанонсировано несколько премьер:
🔹Новое поколение Платформы Tantor, основанное на AI-first подходе, — ИИ-администратор БД с целым роем специализированных ИИ-агентов, которые возьмут на себя рутинные операции по работе с СУБД.
🔹Реальные цифры по производительности МБД Tantor XData Gen3 на различных профилях нагрузки. Покажем, как enterprise-технологии, ранее доступные только в зарубежных решениях, — независимое масштабирование Compute и Storage, RDMA, распределенная файловая система и полноценный HTAP — становятся доступны в российском программно-аппаратном комплексе. Ранее подобное было доступно только в машинах класса Oracle Exadata.
🔹Подробнее будет рассказано о Tantor Polar — новой распределенной СУБД, открывающей следующий этап развития российских PostgreSQL-технологий с полным сохранением совместимости с экосистемой Postgres.
Ожидаются разнообразные демо, выступления руководителей разработки, прямое общение со специалистами компании, обсуждение того, куда движется отечественная PostgreSQL-экосистема, а также праздничная программа, посвященная пятилетию Tantor).
📅 Когда: 10 сентября, Москва (информация о площадке будет направлена зарегистрированным пользователям дополнительно).
Формат: очный (требуется подтверждение организатора).
📌 БЕСПЛАТНАЯ РЕГИСТРАЦИЯ
Если вам интересны не только сегодняшние возможности PostgreSQL, но и технологии, которые будут определять его развитие в ближайшие годы, рекомендуем обратить внимание на это мероприятие.
Программа встречи формируется, однако уже проанонсировано несколько премьер:
🔹Новое поколение Платформы Tantor, основанное на AI-first подходе, — ИИ-администратор БД с целым роем специализированных ИИ-агентов, которые возьмут на себя рутинные операции по работе с СУБД.
🔹Реальные цифры по производительности МБД Tantor XData Gen3 на различных профилях нагрузки. Покажем, как enterprise-технологии, ранее доступные только в зарубежных решениях, — независимое масштабирование Compute и Storage, RDMA, распределенная файловая система и полноценный HTAP — становятся доступны в российском программно-аппаратном комплексе. Ранее подобное было доступно только в машинах класса Oracle Exadata.
🔹Подробнее будет рассказано о Tantor Polar — новой распределенной СУБД, открывающей следующий этап развития российских PostgreSQL-технологий с полным сохранением совместимости с экосистемой Postgres.
Ожидаются разнообразные демо, выступления руководителей разработки, прямое общение со специалистами компании, обсуждение того, куда движется отечественная PostgreSQL-экосистема, а также праздничная программа, посвященная пятилетию Tantor).
📅 Когда: 10 сентября, Москва (информация о площадке будет направлена зарегистрированным пользователям дополнительно).
Формат: очный (требуется подтверждение организатора).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🔥2
Forwarded from Tantor Labs
Опубликовали программу Tantor JAM 2026
10 сентября собираем в Москве участников рынка, чтобы отметить пять лет «Тантор Лабс» и поговорить о том, каким будет следующий этап развития российских СУБД и инфраструктуры данных.
Гендиректор «Тантор Лабс» Вадим Яценко расскажет об истории развития нашей компании, о том, почему российским СУБД пора играть по-крупному и что стоит за амбицией перевести конкуренцию из плоскости функций в плоскость архитектур.
Руководитель группы разработки Платформы Tantor Алексей Барган представит недавно анонсированный в Платформе Tantor 7.0 AI-first подход к управлению и администрированию СУБД и то, как ИИ-агенты меняют саму профессию DBA.
Отдельный блок будет касаться развития СУБД Tantor Polar и МБД Tantor XData Gen3. Впервые представим результаты тестов производительности XData на OLTP, OLAP и HTAP-нагрузках, разберем архитектуру с разделением вычислений и хранения, RDMA и PFS, архитектуру нативной MPP-аналитики на оригинальных данных без ETL и построение конвейера обработки аналитических запросов поверх обычных heap-таблиц.
Поговорим и о задачах, которые особенно хорошо показывают практический эффект развития Tantor Postgres: как за два года изменилась производительность для 1С и что происходит, когда для поиска проблем приходится погружаться глубже очевидного.
И, конечно, безопасность: сертифицированное TDE с поддержкой HSM, новая архитектура шифрования с ротацией мастер-ключей без даунтайма и комплексная защита данных непосредственно внутри СУБД.
Полное расписание, темы и спикеры — на странице мероприятия.
📍 10 сентября. Москва. Tantor JAM 2026.
↗️ ПРОГРАММА И РЕГИСТРАЦИЯ
10 сентября собираем в Москве участников рынка, чтобы отметить пять лет «Тантор Лабс» и поговорить о том, каким будет следующий этап развития российских СУБД и инфраструктуры данных.
Гендиректор «Тантор Лабс» Вадим Яценко расскажет об истории развития нашей компании, о том, почему российским СУБД пора играть по-крупному и что стоит за амбицией перевести конкуренцию из плоскости функций в плоскость архитектур.
Руководитель группы разработки Платформы Tantor Алексей Барган представит недавно анонсированный в Платформе Tantor 7.0 AI-first подход к управлению и администрированию СУБД и то, как ИИ-агенты меняют саму профессию DBA.
Отдельный блок будет касаться развития СУБД Tantor Polar и МБД Tantor XData Gen3. Впервые представим результаты тестов производительности XData на OLTP, OLAP и HTAP-нагрузках, разберем архитектуру с разделением вычислений и хранения, RDMA и PFS, архитектуру нативной MPP-аналитики на оригинальных данных без ETL и построение конвейера обработки аналитических запросов поверх обычных heap-таблиц.
Поговорим и о задачах, которые особенно хорошо показывают практический эффект развития Tantor Postgres: как за два года изменилась производительность для 1С и что происходит, когда для поиска проблем приходится погружаться глубже очевидного.
И, конечно, безопасность: сертифицированное TDE с поддержкой HSM, новая архитектура шифрования с ротацией мастер-ключей без даунтайма и комплексная защита данных непосредственно внутри СУБД.
Полное расписание, темы и спикеры — на странице мероприятия.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤🔥4👍3🥰1