Новое поколение СУБД Postgres Pro Enterprise
Компания Postgres Professional выпустила новое поколение СУБД Postgres Pro Enterprise 18, объединившее возможности новейшего ядра PostgreSQL 18 и собственные разработки компании для эксплуатации в крупных корпоративных и государственных ИТ-системах. Новый релиз повышает производительность, масштабируемость и отказоустойчивость при работе с высокими нагрузками и большими объемами данных. Переход на ядро PostgreSQL 18 обеспечивает прирост производительности и более удобную эксплуатацию. В Postgres Pro Enterprise 18 доступны все ключевые нововведения ванильной версии PostgreSQL 18.
В части масштабируемости и отказоустойчивости кластерное решение BiHA получило важные обновления для Enterprise-эксплуатации и геораспределенных систем. Расширены возможности управления кластером, добавлен сервисный режим для выполнения технических работ на серверах, watchdog, улучшены функции утилиты bihactl.
Каскадная репликация решает проблему избыточной нагрузки на сеть и основной сервер в кластерах с большим количеством узлов и распределением по нескольким ЦОДам. Реплики могут получать данные транзитом через другие узлы, что снижает межцентровый трафик и освобождает ресурсы лидера. Механизм полностью автоматизирован и поддерживает перестроение цепочки репликации при сбоях.
Реализована также процедура мажорного обновления кластера BiHA с версии 17 на 18 с минимальным простоем, гарантией отсутствия потери данных и возможностью отката на предыдущую версию.
Для балансировки нагрузки в расширении proxima появился встроенный Load Balancer, упрощающий маршрутизацию запросов. СУБД предоставляет специализированные порты P2L (Proxy-to-Leader) – для пишущей нагрузки (RW) и P2F (Proxy-to-Follower) – для распределения читающей нагрузки (RO) между репликами.
Читающая нагрузка может распределяться между репликами по разным алгоритмам в зависимости от требований клиента:
- round-robin – распределение между репликами по очереди;
- weighted-round-robin – между репликами по очереди пропорционально их настроенным весам;
- least-connections – распределение на реплику с самым низким числом активных подключений;
- random – между репликами в случайном порядке, что позволяет разгрузить драйверы и приложения, сняв с них логику балансировки.
Для систем с высокой долей операций чтения в расширение proxima добавлена экспериментальная версия модуля KVik, реализующая кеширование данных СУБД в оперативной памяти с доступом через RESP-протокол. По сути, KVik позволяет хранить наиболее востребованные данные максимально близко к приложению и получать их без обращения к дисковой подсистеме.
Для пользователей это означает более быстрый отклик сервисов, стабильную работу под пиковыми нагрузками и снижение нагрузки на основную СУБД. Особенно заметен эффект в сценариях с большим количеством повторяющихся запросов, например, в веб-приложениях, витринах данных и сервисах с интенсивным чтением.
Улучшена адаптивная оптимизация запросов: модуль AQO (Adaptive Query Optimizer) 4.0 использует машинное обучение для автоматического исправления ошибок в планах выполнения запросов, возникающих в стандартном планировщике PostgreSQL. Ключевое отличие версии 4.0 – устранение накладных расходов на этапе планирования, которые ранее ограничивали применение модуля. Благодаря этому AQO теперь рекомендован для любых типов рабочих нагрузок, а не только для отдельных сценариев. Дополнительно в версии 4.0: пользователи отмечают снижение нагрузки на дисковую подсистему за счет построения более эффективных планов запросов.
Оптимизирована запись и работа с большими данными. Для сценариев ETL и массовой загрузки данных в Postgres Pro Enterprise 18 реализованы новые инструменты, в том числе:
- Append Optimized Table – табличная опция append_optimized = true, при которой данные буферизируются пакетами, что снижает количество операций записи в WAL и поисков свободных буферов;
- отложенное сжатие (CFS) – возможность выполнять вставку данных без компрессии с последующим фоновым сжатием, что существенно ускоряет загрузку данных в ограниченные временные окна;
- секционирование по ссылке (Reference Partitioning).
Реализовано автоматическое создание секций в дочерних таблицах на основе внешнего ключа к родительской таблице. При создании новой партиции в основной таблице соответствующая партиция в связанной таблице появляется автоматически, что упрощает управление сложными иерархиями данных.
В части кеширование результатов запросов для сценариев с тяжелыми повторяющимися выборками в модуль pgpro_result_cache добавлены автоматическая инвалидация по изменению данных и поддержка отступов и лимитов. Достаточно указать хинт result_cache в SQL-запросе, и результат будет сохранен в памяти для следующих выполнений.
Релиз Postgres Pro Enterprise 18, отмечают в компании, – это результат системной работы с реальными требованиями заказчиков. В числе задач, критичных сегодня для крупных информационных систем, в Postgres Professional называют производительность под высокой нагрузкой, предсказуемое масштабирование, отказоустойчивость и безопасность эксплуатации. На приоритеты релиза повлиял и практический опыт, накопленный компанией при участии в проектах в федеральных ведомствах, финансовом секторе, промышленности и инфраструктурных компаниях.