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

Пакет оптимизаций для экосистемы «1С»
Одной из главных задач релиза стало улучшение работы СУБД с типичными для «1С» нагрузками, характеризующимися сложными запросами со множеством соединений и активным использованием временных объектов.
Горизонтальное масштабирование читающей нагрузки. Реализована поддержка операций чтения и записи для временных таблиц, последовательностей и представлений на ведомом сервере (Hot Standby). Функциональность активируется параметром enable_standby_temp_tables совместно с enable_temp_memory_catalog и hot_standby. Это позволяет переносить построение сложных отчётов непосредственно на standby-сервер, снижая нагрузку на основной узел и рациональнее используя аппаратные ресурсы.
Join Predicate Pushdown. Новый параметр конфигурации enable_join_predicate_pushdown позволяет планировщику запросов проталкивать условия соединения внешнего запроса внутрь вложенных подзапросов. Это помогает планировщику выбирать более эффективные пути соединения и ускорять выполнение сложных запросов.
Оптимизация оценки селективности для больших списков MCV. Ранее при работе с большими списками наиболее частых значений (Most Common Values) алгоритм оценки селективности соединений имел квадратичную вычислительную сложность. Это могло вызывать падение производительности при высоких целевых показателях статистики столбцов. В версии 18.4.1 данный механизм был оптимизирован, что положительно сказывается на времени планирования в базах «1С».
Оценка селективности верхнего предела. Планировщик получил оптимизированный механизм оценки селективности при использовании параметра planner_upper_limit_estimation, что ускоряет выполнение операций с ограниченной выборкой — в частности, регламентных операций вроде закрытия периода в «1С».
Отказоустойчивость и балансировка нагрузки
Встроенное решение для создания отказоустойчивых кластеров BiHA (Built-in High Availability) обновлено до версии 1.8.
Стабилизация GDBiHA. Функциональность многоуровневого географического распределения и катастрофоустойчивости переведена из статуса экспериментальной в стабильную.
Снятие ограничения на имя суперпользователя. В утилите bihactl добавлена опция --cluster-init-username. Ранее инициализация была возможна только под стандартным системным пользователем postgres. Теперь администраторы могут задать альтернативное имя суперпользователя как при создании кластера с нуля, так и при конвертации существующего узла.
Безопасность сервисных каналов. Введены параметры biha.ssl_cert_path и biha.ssl_key_path для явного указания путей к SSL-сертификатам и приватным ключам, обеспечивающим защиту внутренних соединений между узлами кластера.
Расширение Proxima, обеспечивающее для платформы «1С» единую точку подключения к отказоустойчивому кластеру СУБД и автоматическое перенаправление запросов при смене ролей узлов, получило важные архитектурные улучшения.
Единая точка входа без дополнительной инфраструктуры. Процесс рефери BiHA с Proxima может быть установлен непосредственно на сервер приложений «1С» — в этом случае строка подключения навсегда остаётся неизменной (
localhost), а Proxima самостоятельно следит за составом кластера и при смене лидера прозрачно перенаправляет соединения. В отличие от схемы с виртуальным IP, такой подход не создаёт дополнительной точки отказа и не требует лицензионных затрат.Адаптивная балансировка. Реализован новый алгоритм балансировки adaptive, распределяющий запросы на основе комплексной оценки утилизации CPU, RAM и дискового ввода-вывода (для точечной настройки добавлены параметры proxima.load_balancer_cpu_weight, proxima.load_balancer_ram_weight и proxima.load_balancer_io_weight). Также добавлены специализированные алгоритмы adaptive-ram и adaptive-io.
Защита и аутентификация. Добавлена поддержка аутентификации по сертификатам (SSL CA). Реализована возможность проксирования проверки подлинности пользователей на первичный узел кластера (proxima.auth_policy), что по умолчанию активировано для узлов-арбитров BiHA.
Мультиадресный режим. Теперь Proxima может принимать входящие соединения на нескольких сетевых адресах одновременно. Поддерживаются IPv4, IPv6 и пути к Unix-сокетам.
Новые модули, расширения и утилиты
Метод доступа pgpro_iheap. Новое расширение предоставляет метод доступа iheap, призванный ускорить последовательное сканирование за счет интеграции встроенных механизмов обычного heap и разреженного индекса BRIN.
Автоматическая статистика для временных таблиц pgpro_temp_stats. Расширение pgpro_temp_stats автоматически создаёт расширенную статистику (ndistinct, функциональные зависимости, MCV) для временных таблиц прямо во время планирования запроса — по аналогии с механизмом AUTO_CREATE_STATISTICS в MS SQL Server. При первом обращении расширение извлекает столбцы и выражения из условий WHERE/JOIN, неявно вызывает CREATE STATISTICS и целевой ANALYZE только нужных столбцов. Планировщик больше не действует «вслепую»: последующие запросы получают корректные оценки кардинальности. Для пользователей «1С», чья логика целиком построена на временных таблицах, это устраняет одну из главных причин деградации производительности при миграции с MS SQL Server.
Контроль целостности с помощью pgpro_validate. Утилита предназначена для быстрой верификации физической целостности данных на уровне инстанса СУБД.
Дополнительные улучшения СУБД
Кеширование дескрипторов каталогов. Для уменьшения использования ресурсов CPU при планировании SQL-запросов реализовано кеширование файловых дескрипторов директорий внутри PGDATA.
Логирование типов параметров. Параметр log_parameter_types позволяет выводить в логи СУБД значения связанных параметров подготовленных выражений с префиксом их типа данных (например, [integer] $1 = '42').
Поведение при самосравнении. Планировщик теперь преобразует конструкции вида col = col в эквивалентную и более быструю проверку IS NOT NULL, если такое преобразование является семантически безопасным.
Ограничение hba_file в сертифицированной версии. В редакции Postgres Pro Enterprise Certified ограничена возможность изменения конфигурационного параметра hba_file «на лету» для защиты от несанкционированного изменения сетевого доступа.
Подробности обновления и способы установки можно найти в документации:
