Компания Postgres Professional представила очередное обновление своей флагманской СУБД — Postgres Pro Enterprise 18.4.1. Новый релиз предлагает инструменты для горизонтального масштабирования читающей нагрузки, улучшения в подсистеме отказоустойчивости, а также ряд новых расширений.

Временные объекты на репликах и масштабирование нагрузок
Одним из ключевых функциональных изменений версии 18.4.1 стала возможность полноценной работы с временными объектами на резервных серверах:
Временные таблицы на серверах горячего резерва. Теперь на репликах поддерживаются операции чтения и записи для временных таблиц, последовательностей и представлений, а также создание и вызов временных функций. Эта функциональность включается с помощью параметров конфигурации enable_standby_temp_tables, enable_temp_memory_catalog и hot_standby.
Совместимость с параллельным выполнением. Системный каталог в оперативной памяти теперь совместим с параллельным выполнением запросов для временных таблиц. При этом для повышения надежности введен запрет на создание связей (зависимостей метаданных) между постоянными и временными объектами.
Производительность и диагностика ядра
В версии 18.4.1 также оптимизирована работа с системными ресурсами:
Кеширование дескрипторов файлов. Реализована возможность кеширования дескрипторов файлов для каталогов в директории PGDATA. Системные вызовы open и stat адаптированы под использование этого кеша, что снижает нагрузку на процессор при планировании SQL-запросов.
Повышение резервного сервера. Оптимизирован процесс перевода резервного сервера в статус главного за счет корректного учета изменений в блоках карты свободного пространства (FSM) во время операций записи. Это позволяет избежать временного снижения производительности резервного узла сразу после его повышения.
Управление и журналирование:
добавлен параметр log_parameter_types, позволяющий отображать типы данных для значений привязанных параметров в логе;
параметр enable_background_freezer_worker позволяет отключать фоновую заморозку в средах, где по требованиям безопасности запрещено использование UDP-сокетов;
в файлы crash_info теперь записываются идентификаторы сборок (Build IDs) исполняемых файлов и разделяемых библиотек.
Развитие отказоустойчивости (BiHA) и балансировки нагрузки (Proxima)
Обновления затронули расширения обеспечения высокой доступности.
Улучшения BiHA:
технология многоуровневой геораспределенности и катастрофоустойчивости вышла из статуса экспериментальной и признана стабильной;
в утилиту bihactl добавлен параметр --username для инициализации кластера под именем суперпользователя, отличным от postgres;
появилась гибкость настройки безопасности с использованием собственного публичного SSL-сертификата (параметр biha.ssl_certificate) и закрытого SSL-ключа (biha.ssl_private_key).
Развитие Proxima:
внедрены алгоритмы адаптивной балансировки нагрузки, распределяющие запросы к репликам в зависимости от текущей загрузки памяти и ввода-вывода диска;
поддерживается приём соединений на нескольких сетевых адресах (IPv4, IPv6 и Unix-сокеты) через параметр proxima.address;
добавлена возможность запуска Proxima на на легковесном узле‑рефери, что позволяет вынести точку входа в кластер BiHA на сервер приложений, например 1С;
реализовано проксирование аутентификации: теперь можно проверять доступ к СУБД на лидере, что решает проблему подключения к только что созданной БД.
Развитие глобальных индексов
В версии 18.4.1 расширены возможности расширения pgpro_gbtree, обеспечивающего создание и использование глобальных индексов на секционированных таблицах:
Снятие ограничений на первичные ключи. Добавлена возможность создания глобального индекса по столбцу, входящему в состав первичного ключа таблицы.
Поддержка операций CONCURRENTLY. Реализована возможность создания (CREATE INDEX CONCURRENTLY) и пересоздания (REINDEX CONCURRENTLY) глобальных индексов без блокировки параллельных операций записи в секционированную таблицу.
Секционирование по ссылке. Добавлена поддержка ссылок из таблиц на глобальный индекс секционированной таблицы при помощи ограничения внешнего ключа.
Поддержка конструкции ON CONFLICT. Для глобальных уникальных индексов добавлена совместимость с инструкцией INSERT ... ON CONFLICT (действия DO UPDATE и DO NOTHING).
Оптимизация работы планировщика. Добавлены параметры конфигурации gbtree.usage_partition_fraction и gbtree.partitions_number_threshold, которые управляют тем, будет ли использоваться глобальный индекс. Для этого нужно указать процент или количество секций в таблице соответственно.
Новые расширения и утилиты
В состав дистрибутива Postgres Pro Enterprise 18.4.1 включен ряд новых инструментов для администраторов:
pgpro_iheap — реализует табличный метод доступа iheap со встроенным BRIN-индексом, предназначенный для ускорения последовательного сканирования таблиц;
pgbouncer_exporter — экспортирует метрики пулера соединений pgBouncer в формате Prometheus;
pgpro_logical_slot — облегчает управление слотами логической репликации;
pgpro_temp_stats — собирает многостолбцовую статистику по временным таблицам;
pgpro_validate — утилита для проверки физической и логической целостности данных экземпляра СУБД.
Также обновлен модуль автоматического подбора планов AQO до версии 4.1, где оптимизирована внутренняя структура хранилища данных и улучшены механизмы выделения разделяемой памяти, что снижает вероятность блокировок в высоконагруженных сессиях.
Специализированный релиз Postgres Pro Enterprise для 1С
Вскоре состоится выпуск обновленной редакции Postgres Pro Enterprise для 1С. В эту специализированную версию войдет дополнительный комплекс улучшений и оптимизаций, созданных целенаправленно для повышения производительности, стабильности и масштабируемости систем на платформе «1С:Предприятие».
Изменения в поддержке компонентов
Обратите внимание, что начиная с версии 18.4.1 прекращена поддержка расширения pg_tsparser и модуля shared_ispell. При планировании перехода на новую версию рекомендуется адаптировать конфигурации полнотекстового поиска.
Подробные инструкции по установке обновления и миграции данных доступны в официальной документации к выпуску:
