E.1. Postgres Pro Shardman 17.7.1 #
Дата выпуска: 2026-02-02
Этот выпуск основан на Postgres Pro Shardman 17.6.1 и PostgreSQL 17.7. Он также наследует часть возможностей и исправлений Postgres Pro Enterprise 17.7.1. Все новые возможности, появившиеся в PostgreSQL 17, вы можете найти в разделе Замечания к выпуску PostgreSQL 17. Ниже перечислены значимые отличия этой версии от Postgres Pro Shardman 17.6.1.
E.1.1. Ядро и расширения #
Отличия этой версии от Postgres Pro Shardman 17.6.1:
Добавлено новое представление
shardman.pg_stat_fast_pathи его глобальный аналогshardman.gv_stat_fast_pathдля просмотра количества запросов, использовавших и не использовавших механизм оптимизацииFastPath, в том числе запросы к локальным таблицам.Добавлена процедура shardman.global_analyze_async для анализа сегментированных и глобальных таблиц всего кластера, выполняемого для каждого узла параллельно.
Добавлена поддержка проталкиваемых и непроталкиваемых функций для механизма оптимизации запросов
FastPath, за исключением изменчивых и стабильных функций.Добавлена поддержка нескольких ключей сегментирования для
FastPath.Обновлены возможности Silk путём добавления порога времени, при достижении которого рабочий процесс считается работающим слишком долго, с помощью параметра
shardman.silk_long_job_time, а также путём добавления возможности задавать максимальное количество рабочих процессов, которое может быть запущено Silk, с помощью параметраshardman.silk_max_workers.Оптимизирован перенос статистики между узлами.
Улучшения и исправления, унаследованные от Postgres Pro Enterprise 17.7.1:
Улучшена производительность сбора информации о сбоях сервера за счёт оптимизации служебных функций и команд.
Улучшена производительность для случаев, когда приоритизация ресурсов выключена.
Реализовано обязательное маскирование паролей в журнале сервера для защиты конфиденциальных данных.
Добавлен параметр конфигурации enable_sorted_merge_join, который включает или отключает использование планировщиком соединений слиянием в планах с сортировкой.
Добавлен параметр конфигурации max_wal_segments_prealloc, который позволяет фоновому процессу записи заранее создавать сегменты WAL в ходе своего основного цикла работы, тем самым снижая нагрузку на обслуживающие процессы. Параметр задаёт максимальное количество таких сегментов.
В выходные файлы
crash_infoдобавлена информация о внутренних обработчиках сигналов.Ограничено максимальное количество присваиваемых идентификаторов транзакций, теперь оно равняется 263. Кроме того, при достижении порогового значения в 10 миллионов XID теперь выводится предупреждение. При достижении максимального количества XID новые транзакции перестают запускаться, но запросы только на чтение продолжают выполняться.
Реализованы следующие исправления и усовершенствования для CFS:
Добавлен параметр конфигурации cfs_compression, позволяющий временно отключать сжатие в CFS, что ускоряет миграцию больших сжатых таблиц.
Устранена проблема CFS со сжатием файлов отношений, в которых OID превышал значение
INT32_MAX. Проблема возникала при переносе таблиц в табличное пространство CFS.
Исправлена проблема с процессом очистки, который мог бесконечно ожидать заморозки страницы из-за события ожидания
BufferPin. Проблема могла возникать при наличии буфера, постоянно используемого обслуживающими процессами.Исправлена ошибка некорректного вычисления внутреннего порогового значения vacuum_freeze_min_age, которое должно равняться половине значения autovacuum_freeze_max_age. Ранее эта ошибка могла приводить к некорректному внутреннему вычислению параметров автоочистки, и, как следствие, лишним запускам очистки.
Исправлена ошибка, из-за которой ограничение, задаваемое параметром конфигурации max_backend_memory, не учитывалось для контекста памяти «bump» при выделении памяти для обслуживающего процесса.
Добавлены новые значения переменной окружения
PGPRO_TUNE, используемой initdb.Обновлён модуль aqo. Включены следующие исправления и усовершенствования:
Улучшен механизм обучения aqo на подзапросах.
Устранена проблема, из-за которой функция aqo_cleanup не удаляла данные в основном режиме.
Обновлено расширение pg_proaudit. Включены следующие исправления и усовершенствования:
Добавлена поддержка регистрации следующих типов событий:
ANALYZE,DISCARD ALL,DISCARD PLANS,DISCARD SEQUENCES,DISCARD TEMP(для временных таблиц),CHECKPOINT,FETCHиMOVE.Добавлен новый класс событий
MISC. Этот класс позволяет регистрировать все события (включая перечисленные выше), не относящиеся к другим классам.Добавлен новый метод регистрации событий безопасности. Теперь события безопасности в формате CEF можно не только записывать в отдельный файл, но и передавать в syslog.
Добавлено новое поле в журнал событий: название приложения. Теперь записи о событиях
AUTHENTICATEсодержат не только параметры подключения, но и название инициирующего приложения.Исправлена проблема, из-за которой pg_proaudit не регистрировал события безопасности в файл CEF.
Исправлена проблема, из-за которой расширение pg_proaudit не регистрировало события для команды
INSERTпослеCREATEв анонимных блоках кода (командаDO) и хранимых процедурах/функциях.Исправлена ошибка, приводившая к чрезмерной нагрузке на ядро процессора из-за сбоя ротации журналов в pg_proaudit.
Обновлён плагин pgpro_bindump. В новой версии исправлена проверка уровня сжатия. Ранее применялся одинаковый диапазон уровней сжатия независимо от выбранного алгоритма.
Модуль pgpro_pwr обновлён до версии 4.12, в которой улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже:
Улучшено отслеживание времени функцией
take_sample.Добавлена возможность исключать из дампов строки подключения к серверу.
В отчёты добавлена доступная статистика по точкам перезапуска.
Приложение pgpro_stats обновлено до версии 1.10-sdm4, в которой были исправлены некоторые ошибки и появились новые возможности:
В представления
pgpro_stats_statementsиpgpro_stats_totalsвключены новые поля, добавленные в pg_stats_statements в PostgreSQL 18. Также были обновлены соответствующие функции.Добавлена функция
pgpro_stats_statements_filtered, которая фильтрует статистику, аналогичную доступной в представленииpgpro_stats_statements, по одному или нескольким полям:userid,dbid,queryidиplanid. Вызов этой функции работает быстрее, чем запрос к представлениюpgpro_stats_statementsс указанием соответствующих значений этих полей.Улучшено поведение pgpro_stats аналогично pg_stat_statements. Включены следующие изменения:
Добавлена возможность параметризации значений SET. Это позволяет сократить раздувание, которое возникает из-за операторов
SETс разными константами.Добавлена возможность параметризации списков констант.
Устранена проблема, которая могла возникать, когда в pgpro_stats дополнительные метрики изменялись «на лету». Теперь при каждом изменении дополнительных метрик требуется перезапуск сервера.
E.1.2. Утилиты управления #
Отличия этой версии от Postgres Pro Shardman 17.6.1:
Добавлена возможность проталкивать значения переменных окружения для команд pg_ctl.
Добавлена возможность запуска кластера на одном узле.
Добавлена возможность направлять команды psql на определённый сегмент с помощью команды
shardmanctl psql.Улучшена логика переноса значений переменных окружения для команд
shardcmanctl bench.Улучшена логика команды
shardmanctl status.Изменено поведение команды
shardmanctl config get, которая теперь работает без блокировки метаданных.Обновлено расширение postgres_fdw, оно больше не используется для взаимодействия между узлами. Поэтому при обновлении с предыдущих версий Postgres Pro Shardman после запуска
shardmanctl upgradeвыполните командуdrop extension postgres_fdwна каждом узле кластера. Кроме того необходимо удалить postgres_fdw изshared_preload_libraries. Для коммуникаций внутри кластера теперь используется shardman_fdw.Исправлена проблема
shardman.dictionary_check_json, ранее приводившая к некорректной работе функции.