Обновление Postgres Pro Shardman: улучшенные возможности СУБД для крупных предприятий
Postgres Professional выпустила обновленную версию СУБД Postgres Pro Shardman 14.12.2.
Postgres Pro Shardman — новая распределённая реляционная СУБД для высоконагруженных систем, подходит для крупнейших инсталляций до ста и выше ТБ, когда одиночного сервера недостаточно. СУБД позволяет разделить данные на части и распределить их по разным серверам — шардам. При этом решение обеспечивает встроенную отказоустойчивость и гарантированное соблюдение требований ACID: атомарности, согласованности, изолированности и устойчивости.
В текущем выпуске добавлены новые возможности, улучшена производительность и исправлены некоторые ошибки. Среди важнейших изменений:
Ядро и расширения
- Добавлена возможность создавать глобальную или сегментированную таблицу на основе другой глобальной, сегментированной или локальной. На данный момент есть ограничения на создание таблиц на основе локальных.
- Исправлена обработка параметра IF NOT EXISTS команды CREATE TABLE для глобальных и секционированных таблиц. Ранее была вероятность создания таблицы с неправильной структурой, если секционированная таблица с идентичным именем уже существовала на одном из узлов кластера.
- Обновлено значение по умолчанию для параметра хранения num_parts на 24 для достижения более равномерного распределения данных для кластеров с 2, 3, 4, 6 и 8 узлами.
- Добавлен параметр конфигурации enable_merge_append, который включает или отключает использование планировщиком планов MergeAppend. В частности, позволяет отключить использование этих планов, если они слишком дорогие.
- Добавлен параметр конфигурации pgpro_stats.track_shardman_connections, который включает или отключает обработку операторов Shardman.
- Добавлена возможность выполнять соединения с выражением VALUES на удаленном сервере.
- Удалено ограничение в 64 тысячи на количество таблиц в запросе.
- Добавлено представление shardman.pg_stat_monitor, которое предоставляет статистику работы детектора распределённых взаимоблокировок и служб разрешения подготовленных транзакций.
- Добавлено глобальное представление shardman.gv_stats_sdm_statements, предоставляющее доступ к агрегированной статистике для распределённых запросов.
- Обновлено представление pgpro_stats pgpro_stats_sdm_statements. Теперь оно содержит статистику только по запросам, задействующим сегментированные таблицы.
- Обновлена поддерживаемая версия утилиты pg_probackup до 2.8.2.
Утилиты управления
- Добавлена возможность резервного копирования кластера с табличными пространствами, которые теперь находятся в каталоге резервной копии.
- Добавлена возможность восстанавливать полностью или частично работающий кластер из резервной копии, сделанной на частично работающем кластере, с использованием shardmanctl probackup.
- Введён параметр --no-wait для команды shardmanctl shard add, с которым команда shardmanctl не ждёт запуска сегмента и снимает блокировку с других команд.
- Введён параметр s|--scale для команды shardmanctl bench run. Задаёт коэффициент масштабирования, на который умножается количество сгенерированных строк.
- Добавлена команда shardmanctl script, которая выполняет нетранзакционные команды из файла или командной строки на указанных сегментах.
- Изменён файл конфигурации sdmspec.json, генерируемый командой shardmanctl config generate. Из файла исключены параметры, зависящие от ресурсов системы и рабочей нагрузки на узел кластера. Эти параметры сохраняют значения по умолчанию. Ранее инициализация кластера могла завершиться ошибкой на узлах с меньшими ресурсами из-за высоких значений этих параметров.
- Добавлена возможность восстанавливать из резервной копии одного кластера другие, если они имеют одинаковую топологию. Добавлена команда shardmanctl config update ip, которая обновляет IP-адреса указанных узлов кластера.
- Добавлен параметр --log-format в shardmand, который задаёт формат журнала: json или text.
Подробная информация об обновлениях доступна в замечаниях к выпуску.