E.1. Postgres Pro Shardman 17.5.1 #
Дата выпуска: 2025-07-02
Это первый выпуск Postgres Pro Shardman 17. Он основан на Shardman 14.18.2 и PostgreSQL 17.5 и включает все новые возможности, появившиеся в PostgreSQL 17, а также исправления ошибок, вошедшие в корректирующий выпуск PostgreSQL 17.5. Он также наследует часть возможностей Postgres Pro Enterprise 17.5.1. Подробное описание вы можете найти в разделах Замечания к выпуску PostgreSQL 17 и Замечания к выпуску PostgreSQL 17.5.
Список расширений и дополнительных утилит Postgres Pro Shardman, а также основных видимых пользователю отличий от ванильной версии PostgreSQL, в том числе список унаследованных от Postgres Pro Enterprise возможностей, приведён в Разделе 2. Ниже перечислены значимые отличия этой версии от PostgreSQL 17.5.1 и Shardman 14.18.2:
E.1.1. Ядро и расширения #
Отличия версии от Shardman 14.18.2:
Добавлена поддержка команды
LOCK TABLEдля глобальных и сегментированных таблиц.Переименовано поле
is_replyпредставленияshardman.silk_routing, теперь оно называетсяis_outgoing. Поле принимает значениеtrue, если маршрут был создан исходящим сетевым соединением, иfalse, если входящим.Улучшена работа Silk для высоких значений shardman.silk_unassigned_job_queue_size.
Обновлены значения по умолчанию параметров конфигурации ведения журнала для всех новых инсталляций Postgres Pro Shardman:
logging_collector:onlog_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 распределённых запросов и с импортированными снимками.
Улучшения, унаследованные от Postgres Pro Enterprise 17.5.1:
Добавлена функциональность фоновой заморозки, которая очищает изменённые и незаблокированные страницы данных постоянных таблиц, хранящихся в оперативной памяти. Эта функциональность управляется при помощи специальных новых параметров конфигурации.
Изменена логика блокировок, что позволяет существенно сократить использование ресурсов процессора в случае восстановления при загрузке на физических репликах, используемых в качестве источника для логической репликации 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. Утилиты управления #
Отличия версии от Shardman 14.18.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.