Управление репликами
В этом разделе описывается, как управлять репликами данных в вашем cluster Selena.
Обзор
Selena использует стратегию множественных replica для гарантии высокой доступности данных. При создании таблицы необходимо указать количество replica с помощью свойства таблицы replication_num (значение по умолчанию: 3). Когда начинается транзакция загрузки, данные одновременно загруж аются в указанное количество replica. Транзакция возвращается с успехом только после того, как данные сохранены в большинстве replica. Подробную информацию см. в разделе Кворум записи. Тем не менее, Selena позволяет указать более низкий кворум записи для таблицы для достижения лучшей производительности загрузки.
Selena хранит несколько replica на разных узлах BE. Например, если вы хотите хранить три replica для таблицы, вы должны развернуть как минимум три узла BE в вашем cluster Selena. Если какая-либо из replica выходит из строя, Selena клонирует здоровую replica, частично или полностью, с другого узла BE для восстановления неисправной replica. Используя технику Multi-Version Concurrency Control (MVCC), Selena ускоряет восстановление replica путём дублирования физических копий этих многоверсионных данных.
Загрузка данных в таблицу с множественными репликами

Процедура транзакции загрузки следующая:
-
Клиент отправляет запрос на загрузку в FE.
-
FE выбирает узел BE в качестве координатора BE для этой транзакции загрузки и генерирует план выполнения для транзакции.
-
Координатор BE читает данные для загрузки от клиента.
-
Координатор BE распределяет данные по всем replica tablet.
ПРИМЕЧАНИЕ
Tablet — это логический фрагмент таблицы. Таблица имеет несколько tablet, и каждый tablet имеет replication_num replica. Количество tablet в таблице определяется свойством
bucket_sizeтаблицы. -
После того как данные загружены и сохранены во всех tablet, FE делает загруженные данные видимыми.
-
FE возвращает клиенту успешное завершение загрузки.
Такая процедура гарантирует доступность сервиса даже в экстремальных сценариях.