Компания 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. При планировании перехода на новую версию рекомендуется адаптировать конфигурации полнотекстового поиска.

Подробные инструкции по установке обновления и миграции данных доступны в официальной документации к выпуску:

https://postgrespro.ru/docs/enterprise/18/index