Справочник по настройке
- sharding
- weights
- shard_index
- bucket_count
- collect_bucket_garbage_interval
- collect_lua_garbage
- sync_timeout
- rebalancer_disbalance_threshold
- rebalancer_max_receiving
- rebalancer_max_sending
- discovery_mode
-
sharding
Поле, которое определяет логическую топологию сегментированного кластера Tarantool’а.
Тип: таблицаПо умолчанию: false (ложь)Динамический: да
-
weights
Поле, которое определяет конфигурацию относительного веса для каждой пары зон в наборе реплик. См. раздел Вес реплики.
Тип: таблицаПо умолчанию: false (ложь)Динамический: да
-
shard_index
Название или id TREE-индекса по идентификатору сегмента. Спейсы без этого индекса не задействованы в шардированном кластере Tarantool’а и при необходимости могут быть использованы как обычные спейсы. Необходимо указать первую часть индекса, остальные части являются необязательными.
Тип: непустая строка или неотрицательное целое числоПо умолчанию: «bucket_id» (идентификатор сегмента)Динамический: нет
-
bucket_count
Общее число сегментов в кластере.
Это число должно быть на несколько порядков больше, чем потенциальное число узлов кластера, учитывая потенциальное масштабирование в обозримом будущем.
Пример:
Если предполагаемое количество узлов равно M, тогда набор данных должен быть разделен на 100M или даже 1000M сегментов, в зависимости от запланированного масштабирования. Это число, безусловно, больше потенциального числа узлов кластера в проектируемой системе.
Следует помнить, что слишком большое число сегментов может привести к необходимости выделять больше памяти для хранения информации о маршрутизации. С другой стороны, недостаточное число сегментов может привести к снижению степени детализации при балансировке.
Тип: числоПо умолчанию: 3000Динамический: нет
-
collect_bucket_garbage_interval
Интервал между действиями сборщика мусора в секундах.
Тип: числоПо умолчанию: 0.5Динамический: да
-
collect_lua_garbage
Если задано значение true (правда), периодически вызывается Lua-функция
collectgarbage()
.Тип: логическийПо умолчанию: нетДинамический: да
-
sync_timeout
Время ожидания синхронизации старого мастера с репликами перед сменой мастера. Используется при переключении мастера или при вызове функции
sync()
вручную.Тип: числоПо умолчанию: 1Динамический: да
-
rebalancer_disbalance_threshold
Максимальный предел дисбаланса сегментов в процентах. Предел вычисляется для каждого набора реплик по следующей формуле:
|эталонное_число_сегментов - фактическое_число_сегментов| / эталонное_число_сегментов * 100
Тип: числоПо умолчанию: 1Динамический: да
-
rebalancer_max_receiving
Максимальное количество сегментов, которые может получить параллельно один набор реплик. Это число должно быть ограничено, так как при добавлении нового набора реплик в кластер балансировщик отправляет очень большое количество сегментов из существующих наборов реплик в новый набор реплик. Это создает большую нагрузку на новый набор реплик.
Пример:
Предположим,
rebalancer_max_receiving
= 100, число сегментов вbucket_count
= 1000. Есть 3 набора реплик с 333, 333 и 334 сегментами соответственно. При добавлении нового набора репликэталонное_число_сегментов
становится равным 250. Вместо того, чтобы сразу получить все 250 сегментов, новый набор реплик получит последовательно 100, 100 и 50 сегментов.Тип: числоПо умолчанию: 100Динамический: да
-
rebalancer_max_sending
Степень параллельности для параллельной балансировки.
Используется только для хранилищ, для роутеров игнорируется.
Максимальное значение:
15
.Тип: числоПо умолчанию: 1Динамический: да
-
discovery_mode
Режим работы файбера обнаружения сегментов:
on
/off
/once
. Подробнее.Тип: строкаПо умолчанию: «on»Динамический: да
-
weight
Вес набора реплик. Для получения подробной информации см. раздел Вес набора реплик.
Тип:По умолчанию: 1Динамическое: