E.1. Postgres Pro Shardman 17.5.1 #
Дата выпуска: 2025-07-02
Это первый выпуск Postgres Pro Shardman, он основан на Postgres Pro Enterprise 17.5.1 и Shardman 14.18.2, в нём добавлены новые возможности и улучшена производительность. Важные изменения перечислены ниже.
E.1.1. Ядро и расширения #
Добавлена поддержка команды
LOCK TABLE
для глобальных и сегментированных таблиц.Переименовано поле
is_reply
представленияshardman.silk_routing
, теперь оно называетсяis_outgoing
. Поле принимает значениеtrue
, если маршрут был создан исходящим сетевым соединением, иfalse
, если входящим.Улучшена работа Silk для высоких значений shardman.silk_unassigned_job_queue_size.
Обновлены значения по умолчанию параметров конфигурации ведения журнала для всех новых инсталляций Postgres Pro Shardman:
logging_collector
:on
log_directory
:{{dataDir}}
log_filename
:postgres-{{cluster}}-{{shard}}-{{host}}-{{keeperID}}.log
Удалены параметры конфигурации
csn_max_commit_shift
иcsn_max_snapshot_shift
. Добавлены параметры конфигурации csn_max_shift и csn_max_shift_error для работы со снимками CSN распределённых запросов и с импортированными снимками.Добавлена функциональность фоновой заморозки, которая очищает изменённые и незаблокированные страницы данных постоянных таблиц, хранящихся в оперативной памяти. Эта функциональность управляется при помощи специальных новых параметров конфигурации.
Изменена логика блокировок, что позволяет существенно сократить использование ресурсов процессора в случае восстановления при загрузке на физических репликах, используемых в качестве источника для логической репликации c большим числом принимающих сторон. Процессы walsender больше не замедляют применение WAL, поскольку ранее используемая циклическая блокировка была заменена на более эффективный примитив синхронизации.
Добавлен параметр конфигурации planner_upper_limit_estimation, который включает возможность планировщика запросов завышать оценку ожидаемого количества строк в выражениях, содержащих сравнение с неизвестной константой.
Добавлена возможность для демона автоочистки обрабатывать индексы таблицы в параллельном режиме. Параметр хранения таблицы parallel_autovacuum_workers управляет тем, должна ли она обрабатываться в параллельном режиме, и определяет количество дополнительных параллельных процессов автоочистки, которые можно запустить для обработки таблицы. Количество процессов автоочистки в кластере, которые могут использоваться для параллельной обработки таблиц, ограничивается параметром конфигурации autovacuum_max_workers. В настоящее время функциональность параллельной автоочистки находится в экспериментальной фазе, предназначена только для целей тестирования, и её пока не следует использовать в производственной среде.
Добавлен параметр конфигурации enable_any_to_lateral_transformation, который позволяет включать или отключать преобразование подзапросов
ANY
в соединения с ключевым словомLATERAL
.Оптимизирована производительность при работе с метаданными таблиц за счёт получения информации об атрибутах с использованием системного кеша вместо чтения напрямую из системного каталога.
Добавлены следующие изменения в реализацию crash_info:
Добавлена обработка сигналов
SIGILL
в процесс обработкиcrash_info
.В выходные файлы
crash_info
добавлены новые сведения: время запуска процесса и текст запроса при планировании.
Ограничены действия, которые суперпользователи могут совершать с временными отношениями из других сеансов. Теперь с такими отношениями можно выполнять только команду
DROP TABLE
. Если для параметра конфигурации skip_temp_rel_lock установлено значениеon
, их запрещено даже удалять.Обновлено расширение pg_proaudit. Включены следующие усовершенствования:
Добавлены новые типы объектов:
CATALOG RELATION
иCATALOG FUNCTION
.Добавлены новые поля событий: UUID, XID и VXID. Теперь стало возможно определить событие по его UUID и идентификатору транзакции (если применимо).
Исправлено поведение параметра конфигурации
pg_proaudit.log_catalog_access
, теперь оно отражает новую логику регистрации событий для объектов системного каталога.Исправлена логика обработки событий отключения от баз данных. Теперь такие события связаны с соответствующими событиями аутентификации, что позволяет регистрировать события отключения, даже когда соответствующее правило регистрации удаляется после аутентификации, но до непосредственного отключения.
Модуль pgpro_pwr обновлён до версии 4.9, в которой в основном улучшена производительность. Основные изменения перечислены ниже:
Добавлена поддержка pgpro_stats 1.9-sdm4.
Добавлена возможность определять режим сбора информации о размере отношений глобально при помощи параметра конфигурации
pgpro_pwr.relsize_collect_mode
расширения или для сервера при помощи функцииset_server_size_sampling
.Добавлена возможность тонкой настройки сбора статистики сервера, которая включается вызовом функции
set_server_setting
. Она позволяет определять статистику для сбора.Добавлена возможность предварительного просмотра параметров хранения таблиц и индексов в разделе отчёта «Schema object statistics» (Статистика по объектам схемы).
Расширение pgpro_stats обновлено до версии 1.9-sdm4, в которую включены следующие усовершенствования:
Улучшена трассировка сеансов, которая теперь предоставляет больше информации. В частности, новый атрибут фильтра
time_info
управляет включением дополнительной информации в вывод трассировки сеансов, а новый параметр конфигурацииpgpro_stats.trace_query_text_size
позволяет ограничивать размер запроса в таком выводе.Имена атрибутов фильтра
explain_*
трассировщика сеансов приведены в соответствие с именами параметров конфигурации трассировки сеансов.Изменён формат файла выгрузки статистики и соответствующие процедуры сохранения/загрузки.
Реализовано отключение функциональности трассировки сеансов, если не указаны соответствующие фильтры.
Запрещено одновременно указывать pgpro_stats и pg_stat_statements в
shared_preload_libraries
. Если они указаны вместе, сервер баз данных не запустится.
Экспериментальное расширение vops признано устаревшим.
E.1.2. Утилиты управления #
Изменены значения по умолчанию для флагов
-t
(--transactions
) и-T
(--time
) командыshardmanctl bench run
на 10 и 0 соответственно.Оптимизировано повышение резервного сервера до ведущего.
Добавлено ограничение на изменение файла
pg_hba.conf
, если для параметраcertVersion
задано значениеtrue
.Добавлен параметр --reinit-before-restore, позволяющий переинициализировать кластер с такой же топологией перед восстановлением.
Оптимизированы тайм-ауты опроса кластера.
Добавлена поддержка
{rgid}
для параметра--tablespace-mapping
команды shardmanctl probackup restore.Добавлена возможность проверки резервной копии на совместимом кластере.
Оптимизирован процесс поиска ведущего узла во избежание зависания кластера.
Добавлен
boot_uuid
в демон загрузки shardmand.Добавлена возможность менять параметр
max_wal_senders
через изменение параметра конфигурацииadditionalWalSenders
командойshardmanctl config update
.Добавлена команда shardmanctl --log-format, которая задаёт формат вывода журнала.
Добавлен параметр --message в команды shardmanctl cluster stop и shardmanctl restart, чтобы показывать причину остановки или перезапуска кластера.
Добавлено поле
CertVersion
в файл конфигурацииsdmspec.json
.Обновлён параметр конфигурации syncPointMonitorEnabled, который теперь сохраняет историю точки синхронизации, если задано значение
true
. Размер истории задаётся параметромsyncPointMonitorLimit
.Обновлены сообщения об ошибке для
keeper
, теперь они очищаются после каждой успешной операции, которая обновляет конфигурацию.Добавлена команда shardmanctl schema verify для проверки единообразия информации о секциях, расширениях, таблицах, ролях, схемах и последовательностях.
Добавлена возможность использования probackup как метода резервного копирования для BiHA.
Добавлена защита от падения кластерного ПО при запрете записи в файл конфигурации
pg_hba.conf
.