Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Справочник по настройке

Базовые параметры

sharding

Поле, которое определяет логическую топологию сегментированного кластера Tarantool.

Тип: table

Значение по умолчанию: false

Динамический: да

weights

Поле, которое определяет конфигурацию относительного веса для каждой пары зон в наборе реплик.

Тип: table

Значение по умолчанию: false

Динамический: да

shard_index

Название или id TREE-индекса по идентификатору сегмента. Спейсы без этого индекса не задействованы в шардированном кластере Tarantool и при необходимости могут быть использованы как обычные спейсы. Необходимо указать первую часть индекса, остальные части являются необязательными.

Тип: непустая строка или неотрицательное целое число

Значение по умолчанию: "bucket_id"

Динамический: нет

bucket_count

Общее число сегментов в кластере.

Это число должно быть на несколько порядков больше, чем потенциальное число узлов кластера, учитывая потенциальное масштабирование в обозримом будущем.

Пример:

Если предполагаемое количество узлов равно M, тогда набор данных должен быть разделен на 100M или даже 1000M сегментов, в зависимости от запланированного масштабирования. Это число, безусловно, больше потенциального числа узлов кластера в проектируемой системе.

Следует помнить, что слишком большое число сегментов может привести к необходимости выделять больше памяти для хранения информации о маршрутизации. С другой стороны, недостаточное число сегментов может привести к снижению степени детализации при балансировке.

Тип: number

Значение по умолчанию: 3000

Динамический: нет

collect_bucket_garbage_interval

Устарело с: 0.1.17. Интервал между действиями сборщика мусора в секундах.

Тип: number

Значение по умолчанию: 0.5

Динамический: да

collect_lua_garbage

Устарело с: 0.1.20. Если задано значение true (правда), периодически вызывается Lua-функция collectgarbage().

Тип: boolean

Значение по умолчанию: no

Динамический: да

sync_timeout

Время ожидания синхронизации старого мастера с репликами перед сменой мастера. Используется при переключении мастера или при вызове функции sync() вручную.

Тип: number

Значение по умолчанию: 1

Динамический: да

rebalancer_disbalance_threshold

Максимальный порог дисбаланса сегментов в процентах. Дисбаланс вычисляется для каждого набора реплик по следующей формуле:

|эталонное_число_сегментов - фактическое_число_сегментов| / эталонное_число_сегментов * 100

Тип: number

Значение по умолчанию: 1

Динамический: да

rebalancer_max_receiving

Максимальное количество сегментов, которые может получить параллельно один набор реплик. Это число должно быть ограничено, так как при добавлении нового набора реплик в кластер балансировщик отправляет очень большое количество сегментов из существующих наборов реплик в новый набор реплик. Это создает большую нагрузку на новый набор реплик.

Пример:

Предположим, rebalancer_max_receiving = 100, число сегментов в bucket_count = 1000. Есть 3 набора реплик с 333, 333 и 334 сегментами соответственно. При добавлении нового набора реплик эталонное_число_сегментов становится равным 250. Вместо того, чтобы сразу получить все 250 сегментов, новый набор реплик получит последовательно 100, 100 и 50 сегментов.

Тип: number

Значение по умолчанию: 100

Динамический: да

rebalancer_max_sending

Степень параллельности для параллельной балансировки.

Используется только для хранилищ, для роутеров игнорируется.

Максимальное значение: 15.

Тип: number

Значение по умолчанию: 1

Динамический: да

discovery_mode

Режим работы файбера обнаружения сегментов: on/off/once. Подробнее.

Тип: string

Значение по умолчанию: 'on'

Динамический: да

sched_move_quota

Квота перемещений сегментов планировщика, используемая балансировщиком.

sched_move_quota определяет, сколько перемещений сегментов может быть выполнено подряд при наличии ожидающих ссылок на хранилище. После этого перемещения сегментов блокируются, и роутер продолжает выполнять запросы map-reduce.

См. также: sched_ref_quota.

Тип: number

Значение по умолчанию: 1

Динамический: да

sched_ref_quota

Квота ссылок на хранилище планировщика, используемая API map-reduce роутера. Например, функция vshard.router.map_callrw() реализует консистентный map-reduce по всему кластеру.

sched_ref_quota определяет, сколько ссылок на хранилище, а следовательно, и запросов map-reduce, может быть выполнено на хранилище подряд при наличии ожидающих перемещений сегментов. После этого ссылки на хранилище блокируются, и балансировщик продолжает перемещение сегментов.

См. также: sched_move_quota.

Тип: number

Значение по умолчанию: 300

Динамический: да

Параметры набора реплик

uuid

Уникальный идентификатор набора реплик.

Тип:

Значение по умолчанию:

Динамический:

weight

Вес набора реплик. Для получения подробной информации см. раздел Вес набора реплик.

Тип:

Значение по умолчанию: 1

Динамический:

master

Включает автоматическое обнаружение мастера в наборе реплик, если установлено значение 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

Динамический: да