Дата выпуска: 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:
Отличия версии от 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: 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 распределённых запросов и с импортированными снимками.
Улучшения, унаследованные от 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 признано устаревшим.
Отличия версии от 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.