Справочник по настройке
- 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
- sched_move_quota
- sched_ref_quota
Поле, которое определяет логическую топологию сегментированного кластера Tarantool.
Тип: table
Значение по умолчанию: false
Динамический: да
Поле, которое определяет конфигурацию относительного веса для каждой пары зон в наборе реплик.
Тип: table
Значение по умолчанию: false
Динамический: да
Название или id TREE-индекса по идентификатору сегмента. Спейсы без этого индекса не задействованы в шардированном кластере Tarantool и при необходимости могут быть использованы как обычные спейсы. Необходимо указать первую часть индекса, остальные части являются необязательными.
Тип: непустая строка или неотрицательное целое число
Значение по умолчанию: "bucket_id"
Динамический: нет
Общее число сегментов в кластере.
Это число должно быть на несколько порядков больше, чем потенциальное число узлов кластера, учитывая потенциальное масштабирование в обозримом будущем.
Пример:
Если предполагаемое количество узлов равно M, тогда набор данных должен быть разделен на 100M или даже 1000M сегментов, в зависимости от запланированного масштабирования. Это число, безусловно, больше потенциального числа узлов кластера в проектируемой системе.
Следует помнить, что слишком большое число сегментов может привести к необходимости выделять больше памяти для хранения информации о маршрутизации. С другой стороны, недостаточное число сегментов может привести к снижению степени детализации при балансировке.
Тип: number
Значение по умолчанию: 3000
Динамический: нет
Устарело с: 0.1.17. Интервал между действиями сборщика мусора в секундах.
Тип: number
Значение по умолчанию: 0.5
Динамический: да
Устарело с: 0.1.20. Если задано значение true (правда), периодически
вызывается Lua-функция collectgarbage().
Тип: boolean
Значение по умолчанию: no
Динамический: да
Время ожидания синхронизации старого мастера с репликами
перед сменой мастера. Используется при переключении мастера или при
вызове функции sync() вручную.
Тип: number
Значение по умолчанию: 1
Динамический: да
Максимальный порог дисбаланса сегментов в процентах. Дисбаланс вычисляется для каждого набора реплик по следующей формуле:
|эталонное_число_сегментов - фактическое_число_сегментов| / эталонное_число_сегментов * 100
Тип: number
Значение по умолчанию: 1
Динамический: да
Максимальное количество сегментов, которые может получить параллельно один набор реплик. Это число должно быть ограничено, так как при добавлении нового набора реплик в кластер балансировщик отправляет очень большое количество сегментов из существующих наборов реплик в новый набор реплик. Это создает большую нагрузку на новый набор реплик.
Пример:
Предположим, rebalancer_max_receiving = 100, число сегментов в
bucket_count = 1000. Есть 3 набора реплик с 333, 333 и 334
сегментами соответственно. При добавлении нового набора реплик
эталонное_число_сегментов становится равным 250. Вместо того, чтобы
сразу получить все 250 сегментов, новый набор реплик получит
последовательно 100, 100 и 50 сегментов.
Тип: number
Значение по умолчанию: 100
Динамический: да
Степень параллельности для параллельной балансировки.
Используется только для хранилищ, для роутеров игнорируется.
Максимальное значение: 15.
Тип: number
Значение по умолчанию: 1
Динамический: да
Режим работы файбера обнаружения сегментов: on/off/once. Подробнее.
Тип: string
Значение по умолчанию: 'on'
Динамический: да
Квота перемещений сегментов планировщика, используемая балансировщиком.
sched_move_quota определяет, сколько перемещений сегментов может быть
выполнено подряд при наличии ожидающих ссылок на хранилище. После этого
перемещения сегментов блокируются, и роутер продолжает выполнять запросы
map-reduce.
См. также: sched_ref_quota.
Тип: number
Значение по умолчанию: 1
Динамический: да
Квота ссылок на хранилище планировщика, используемая API map-reduce роутера. Например, функция vshard.router.map_callrw() реализует консистентный map-reduce по всему кластеру.
sched_ref_quota определяет, сколько ссылок на хранилище, а
следовательно, и запросов map-reduce, может быть выполнено на хранилище
подряд при наличии ожидающих перемещений сегментов. После этого ссылки
на хранилище блокируются, и балансировщик продолжает перемещение
сегментов.
См. также: sched_move_quota.
Тип: number
Значение по умолчанию: 300
Динамический: да
Уникальный идентификатор набора реплик.
Тип:
Значение по умолчанию:
Динамический:
Вес набора реплик. Для получения подробной информации см. раздел Вес набора реплик.
Тип:
Значение по умолчанию: 1
Динамический:
Включает автоматическое обнаружение мастера в наборе реплик, если
установлено значение auto. Применимо только к конфигурации роутера;
конфигурация хранилища игнорирует этот параметр.
Параметр следует указывать для каждого набора реплик. Конфигурация несовместима с ручным выбором мастера.
Примеры
Корректная конфигурация:
config = {sharding = {<replicaset uuid> = {master = 'auto',replicas = {...},},...},...}
Некорректная конфигурация:
config = {sharding = {<replicaset uuid> = {master = 'auto',replicas = {<replica uuid1> = {master = true,...},<replica uuid2> = {master = false,...},},},...},...}
Если конфигурация некорректна, она не применяется, и вызов
vshard.router.cfg() вызывает ошибку.
Если для некоторых наборов реплик параметр master установлен в
значение auto, роутер обращается к этим наборам реплик, обнаруживает
мастер в каждом из них и периодически проверяет, сохраняет ли экземпляр
мастера свой статус. Когда мастер в наборе реплик перестает быть
мастером, роутер опрашивает все узлы набора реплик, чтобы выяснить,
какой из них стал новым мастером.
Без этой настройки роутер не может самостоятельно обнаружить узлы мастера в настроенных наборах реплик. Он полагается только на то, как они указаны в конфигурации. Это становится проблемой при смене мастера, если изменение не передано в конфигурацию роутера: например, когда роутер не использует центральный поставщик конфигурации или поставщик не может доставить новую конфигурацию по какой-либо причине.
Тип: string
Значение по умолчанию: nil
Динамический: да