Дата выпуска: 2024-03-14
В этом выпуске улучшена производительность, добавлены новые возможности и исправлены некоторые ошибки. Важные изменения перечислены ниже:
Улучшены возможности расширения pgpro_stats для понимания того, какие системные ресурсы используются для распределённых запросов. Теперь в обычном представлении pgpro_stats_statements показывается статистика, собранная для отдельных операторов на текущем узле Shardman (они могут быть частью распределённого запроса), а в представлении pgpro_stats_sdm_statements показывается статистика, собранная для распределённых запросов, исходящих из текущего узла, то есть агрегированная по всем участвующим узлам.
Добавлен пакет pgpro_pwr, совместимый с Shardman и позволяющий пользователям собирать отчёты о нагрузке.
Улучшена информативность команды EXPLAIN. Если план запроса содержит узлы ForeignScan, теперь в вывод команды EXPLAIN может быть включён вывод EXPLAIN по запросам, выполняемым на удалённом сервере.
Добавлен новый параметр конфигурации enable_partition_pruning_extra, управляющий расширенной логикой отсечения секций подплана при построении и выполнении общих планов, в которых набор полезных секций зависит от параметров подготовленного запроса. Этот параметр позволяет Shardman выполнять первоначальное отсечение секций в сложных подпланах, соединениях и частичных агрегированиях.
В представление shardman.pg_stat_csn добавлены метрики, показывающие задержки глобального горизонта и транзакцию, которая может их вызывать. Они могут быть полезны для исследования проблем автоочистки.
Значительно улучшено резервное копирование и восстановление с помощью команды shardmanctl probackup. Основные изменения представлены ниже:
Добавлена поддержка создания резервных копий в S3-совместимом объектном хранилище.
Реализовано выборочное архивирование WAL подкомандой probackup в заданных сегментах.
Добавлены две новые команды: shardmanctl probackup delete и shardmanctl probackup merge. Команда delete удаляет резервную копию с указанным ID и ставшие ненужными заархивированные файлы WAL. Команда merge объединяет резервные копии, принадлежащие общей инкрементальной цепочке резервных копий.
Добавлена новая команда shardmanctl probackup set-config, с помощью которой в файле pg_probackup.conf можно создавать новые параметры или изменять существующие.
Добавлен новый параметр log-to-console для подкоманды validate. Размер файла журнала установлен равным 20 МБ. По достижении этого лимита происходит ротация журнала при запуске команды validate или backup.
Увеличено количество повторных попыток выполнения некоторых подкоманд во избежание сбоев резервного копирования из-за больших размеров баз данных.
Добавлена проверка совместимости топологии текущего кластера Shardman с кластером в каталоге резервных копий при выполнении подкоманд backup и restore.
Установлено значение по умолчанию для количества одновременных процессов pg_probackup, равное количеству логических ЦП в системе.
Исправлена очистка данных после сбоя подкоманды backup. Ранее некоторые данные резервного копирования, закончившегося сбоем, могли оставаться в репозитории.
Устранено зависание, которое могло возникать при восстановлении только метаданных кластера Shardman.
Устранена проблема в pg_probackup, которая могла возникать в процессе восстановления схемы.
Изменено поведение процесса восстановления только метаданных во избежание потери кластера. Теперь кластер останавливается перед выполнением такого восстановления и вновь запускается после его завершения. Кластер без узлов не может быть восстановлен из резервной копии etcd, и если ID резервной копии кластера отличается от ID текущего кластера, то пользователя просят подтвердить, что необходимо выполнить восстановление кластера с отличающимся ID.
Добавлены новые параметры для команды archive-command: --compress, --compress-algorithm, --compress-level, --batch-size и -j|--jobs. Эти параметры помогают уменьшить размер WAL.
Улучшена информативность вывода команды show. Добавлены новые флаги: -archive для вывода информации о журнале, -instance и -i|--backup-id для вывода информации об указанных экземплярах и резервных копиях.
Изменено поведение команд getconnstr и cluster topology так, что они не вызывают блокировку других процессов. Ранее из-за таких блокировок некоторые команды не могли получить строку подключения.
Устранена ошибка уровня panic, которая могла возникать в кластере Shardman с конфигурацией PlacementPolicy = manual при выполнении пользователем команды shardmanctl cluster repfactor set.
Убраны неинформативные предупреждения, выводящиеся pg_dump во время выполнения команд shardmanctl nodes add и shardmanctl probackup backup.
Убрана блокировка, требовавшаяся для команды shardmanctl status. Ранее shardmanctl status не предоставляла полезной информации о зависании процесса из-за ожидания блокировки.
Добавлен параметр конфигурации forceSuUserLocalPeerAuth. При включённом параметре для пользователя postgres устанавливается аутентификация peer через сокет Unix, если для strictUserHBA не установлено значение true. За подробностями обратитесь к sdmspec.json.
Добавлен URL-адрес обнаружения служб системы Prometheus в shardmand.