Компания Postgres Professional выпустила корректирующую версию Postgres Pro Enterprise 18.6.2. Релиз базируется на PostgreSQL 18.6 и предыдущей версии Postgres Pro Enterprise 18.6.1, наследуя все изменения апстрима и добавляя собственные улучшения производительности, новые параметры конфигурации и исправления ошибок.

Оптимизация ядра и существенный прирост производительности
В версии 18.6.2 реализован пакет улучшений для систем с интенсивной смешанной нагрузкой и активным использованием временных объектов:
-
«Ленивое» создание файлов для временных таблиц. Дисковые файлы для временных таблиц и их индексов теперь создаются исключительно при фактической записи данных на диск (при вытеснении страницы из временного буфера). Ранее пустые файлы выделялись всегда, что перегружало файловую систему частыми операциями создания и удаления.
-
Снижение накладных расходов при работе со статистикой временных объектов:
-
отключен сбор статистики выполнения запросов для временных таблиц и индексов при работе системного каталога в оперативной памяти, что устранило конкуренцию за блокировки в shared memory;
-
параметр compute_id_ignoring_temp_tables заменяет уникальные имена временных таблиц на константу при вычислении идентификаторов запросов и планов, благодаря чему в pg_stat_statements теперь накапливается корректная агрегированная статистика по динамическим запросам 1С;
-
уменьшено количество сообщений об аннулировании кеша при включенном параметре skip_temp_rel_lock.
-
-
Улучшения оптимизатора запросов:
-
оптимизирована трансформация предикатов EXISTS в соединения SEMI JOIN при значении extra_query_transformations = full;
-
улучшено вычисление уникальности соединений и селективности для подзапросов с DISTINCT или GROUP BY (enable_compound_index_stats), что ускоряет выполнение частых в 1С запросов (в частности, сценариев «среза последних»).
-
-
Аппаратное ускорение на базе AVX2. Контрольные суммы страниц и последовательные сканирования таблиц теперь ускорены за счет векторных инструкций современных процессоров.
-
Масштабируемость массовых операций:
-
параметр enable_btree_bulk_extension разрешает пакетное расширение индексов B-дерева сразу на группу страниц (до 64), снижая конкуренцию за блокировки при параллельных вставках;
-
параметр хранения append_optimized позволяет выполнять массовое добавление строк в обход карты свободного пространства (FSM) в агрессивном режиме (append_optimized = aggressive);
-
параметр share_lock_fk позволяет накладывать разделяемую блокировку (SHARE) на родительскую таблицу при валидации внешних ключей, устраняя массовые построчные блокировки для редко обновляемых таблиц-справочников;
-
в многосегментной вставке (multi_segment_relname) теперь можно передавать список таблиц, а также устранены конфликты блокировок, приводившие к задержкам на репликах.
-
Новое расширение mysql_fdw и обновление pgpro_stats_2
В комплект поставки добавлена обёртка сторонних данных mysql_fdw для доступа к базам MySQL прямо из Postgres Pro. Она поддерживает вынос наружу (pushdown) условий WHERE, списков столбцов, JOIN, агрегатных функций min/max/sum/avg/count, ORDER BY, LIMIT/OFFSET, а также запись данных и подготовленные операторы для SELECT. Расширение не поддерживается на Astra Linux «Новороссийск» 4.7 и «Ленинград» 8.1.
Добавлено экспериментальное расширение pgpro_stats_2 — усовершенствованная альтернатива pg_stat_statements и pg_wait_sampling, которая обеспечивает сохранение планов запросов и сбор статистики по событиям ожидания для выполняемых запросов при минимальном влиянии на производительность. Для промышленной эксплуатации расширение пока не рекомендуется.
Крупное обновление кластерного решения BiHA
Изменения затронули конфигурацию, ручное управление кластером и устойчивость репликации:
-
Новая модель конфигурации. Параметры BiHA-кластера теперь хранятся в структурированном файле
pg_biha/biha_conf_*.json, а изменяются через специальные функции — прямое редактирование черезALTER SYSTEM SETосталось только для нескольких необязательных параметров. Посмотреть текущие значения можно функциейbiha.config(). -
Поддержка pg_probackup3 как метода создания резервной копии при добавлении узла (
bihactl node add). -
Расширенная функциональность ручного переключения лидера. Сменить лидера теперь можно прямо из
bihactl, без подключения к Postgres, командойset leader. Добавлены таймаут переключения leader_timeout (если новый лидер не успевает синхронизироваться — например, ему нужно «дополучить» много данных — переключение откатывается) и режимimmediateдля мгновенной смены без проверок (с риском потери данных). -
Выполнение пользовательских скриптов. С помощью новой команды bihactl run теперь можно выполнять кастомные скрипты с SQL-запросами к BiHA-кластеру. Поддерживаются скрипты в формате YAML. Функциональность можно использовать, например, для мониторинга состояния кластера.
-
Разделение сетевых каналов. Реализована возможность разделить внутренний канал управления кластером (BCP) и канал репликации по разным интерфейсам.
-
Запрещённые источники репликации. Для гибкости автоматического перестроения репликаций при для узла кластера добавлен параметр deny_wal_sources в котором можно указать список узлов, которые не могут быть использованы в качестве источника данных. Это может быть востребовано при физичкских ограничениях сетевой доступности.
Proxima. В IP-адрес клиента теперь можно добавлять в application_name (параметр proxima.add_ip_to_application_name) — это упрощает мониторинг подключений в pg_stat_activity.
KVik. Для KVik (экспериментального встроенного модуля proxima) реализована возможность работы на репликах кластера BiHA, добавлена аутентификация по логину и паролю, по клиентскому сертификату и поддержка шифрованных SSL-соединений.
Мультимастер. На 70–80% оптимизирована производительность кластера при профиле нагрузки с использованием временных объектов.
Другие компоненты и расширения
Обновлены и доработаны десятки сопутствующих модулей:
-
pg_probackup — до версии 2.8.15 Enterprise: многопоточное удаление резервных копий, устранение ложных «успехов» при повторяемых ошибках S3, защита от бесконечных циклов на повреждённых копиях;
-
pgpro_pwr обновлён до 4.15 с поддержкой статистики ядра PostgreSQL 19 и новыми разделами отчётов;
-
pg_proaudit — до версии 2.1: фильтрация технических ролей в журнале аудита, отдельный неротируемый журнал DDL-изменений (ddllog);
-
pgvector — до версии 0.8.7, pg_wait_sampling — до 1.1.1 (новые представления pg_wait_sampling_statements и pg_wait_sampling_objects), plpgsql_check — до 2.10.3, hypopg — до 1.4.3;
-
postgres_fdw — исправлена обработка UPDATE/DELETE для секционированных таблиц с учётом принадлежности строк секциям.
Также стабилизирована параллельная автоочистка (parallel_autovacuum_workers, max_parallel_autovacuum_workers) — она больше не считается экспериментальной, а максимальное число параллельных воркеров теперь можно менять без перезапуска сервера.
Обновлены расширения mamonsu, ODBC-драйвер, orafce, pgbouncer_exporter, pg_hint_plan (адаптация для Postgres Pro Shardman), pgpro_queue, pgpro_result_cache, pgpro_scheduler, pgpro_scout, pgpro_stats, pgpro_temp_stats, pgpro_validate, pgpro_wrap (закрыта уязвимость просмотра исходного кода обфусцированных пакетов) и rum.
Добавлена поддержка ОС Ubuntu 26.04 для архитектуры ARM.
Рекомендуем обновиться как можно скорее
Postgres Professional настоятельно рекомендует обновить кластеры до версии 18.6.1, поскольку в ней устранена проблема, которая могла приводить к повреждению данных WAL из-за работы механизма фоновой заморозки (background freezer). Ранее фоновая заморозка могла аварийно завершаться с ошибкой уровня PANIC при попытке очистить страницы таблицы после выполнения команд TRUNCATE, CLUSTER, VACUUM FULL или DROP TABLE — теперь такие отношения корректно пропускаются.
Подробные инструкции по установке обновления и миграции данных доступны в официальной документации к выпуску:
https://postgrespro.ru/docs/enterprise/18/index
Источник: habr.com