Дата выпуска: 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.
Отличия этой версии от 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 дополнительные метрики изменялись «на лету». Теперь при каждом изменении дополнительных метрик требуется перезапуск сервера.
Отличия этой версии от 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, ранее приводившая к некорректной работе функции.