
ggrebalance: Часть 1. Shrink
saltysalsaparadox 14 минут назад ggrebalance: Часть 1. Shrink Средний 28 мин 706 Блог компании Greengage DB Open source * Высоконагруженные системы * Распределённые системы * PostgreSQL * Обзор В статье рассматривается...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: saltysalsaparadox 14 минут назад ggrebalance: Часть 1. Shrink Средний 28 мин 706 Блог компании Greengage DB Open source * Высоконагруженные системы * Распределённые системы * PostgreSQL * Обзор В статье рассматривается shrink кластера Greengage DB (open-source fork Greenplum) с использованием ggrebalance: архитектура утилиты, FSM-подход, безопасное перераспределение данных через INSERT, сравнение с CTAS, поддержка rollback и результаты тестов производительности. ВведениеКластер Greengage DB, как и любое распределенное хранилище, не является статичной системой.
Используемые объемы данных могут как расти, так и сокращаться, для оптимизации нагрузок может появиться необходимость изменить степень параллелизма системы. Оборудование может требовать замены, либо нужна полноценная миграция инфраструктуры на новые машины. Все эти явления и факторы требуют управляемых изменений в топологии кластера: в числе сегментов, их распределении по хостам, используемой стратегии зеркалирования.
Технические детали
Встроенный набор инструментов Greengage предлагает отдельные решения перечисленных задач: gpexpand для расширения кластера, gpmovemirrors для физического перемещения реплик и т. Использование их в кластерах, состоящих из сотен сегментов, вручную или через самописные скрипты — очень трудоемкий процесс, не защищенный от ошибок при распределении данных, выводе сегментов из кластера и перемещении зеркал и требующий тщательного контроля. Более того, в стандартном наборе утилит отсутствует поддержка операции уменьшения (шринк) кластера, а также ситуаций изменения топологии, затрагивающих несколько измерений одновременно (уменьшить число сегментов, добавить новый хост, вывести из использования другой и поменять стратегию зеркалирования).
Говоря про шринк, стоит отметить существование решения gpshrink от Cloudberry DB, по реализации являющегося калькой обратной шринку операции расширения gpexpand. Однако его использование также должно быть строго контролируемым, так как в случае шринка производятся необратимые изменения конфигурации кластера. Описанные пробелы в функционале существующего инструментария заполняет разрабатываемая нами кластерная утилита ggrebalance.
ggrebalance — это способ контролируемо реализовывать сценарии изменения топологии Greengage-кластера в безопасной (с обработкой ошибок), реентерабельной (продолжение прерванной операции) манере и с возможностью обратить последовательность действий вспять. В первом релизе утилиты поддерживаются следующие сценарии:1: Добавление нового хоста без изменения числа primary-сегментовНапример, доступно новое железо, и хочется перераспределить существующие сегменты так, чтобы новые хосты взяли на себя долю рабочей нагрузки без увеличения степени параллелизма Greengage DB (рис. Добавление нового хоста2: Декомиссия хоста без изменения числа сегментовНужно вывести из эксплуатации хост с переносом его сегментов на оставшиеся узлы.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





