A.2. Postgres Pro Shardman 14.11.1

Дата выпуска: 2024-03-14

В этом выпуске улучшена производительность, добавлены новые возможности и исправлены некоторые ошибки. Важные изменения перечислены ниже:

A.2.1. Ядро и расширения

  • Улучшены возможности расширения 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 добавлены метрики, показывающие задержки глобального горизонта и транзакцию, которая может их вызывать. Они могут быть полезны для исследования проблем автоочистки.

A.2.2. Утилиты управления

  • Значительно улучшено резервное копирование и восстановление с помощью команды 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.