TDB Documentation portal logo
Помощь
Обновлена 30 июля 2026 г. в 16:49

Использование синхронной репликации

По умолчанию репликация в Tarantool асинхронная: локальный коммит транзакции на master-узле не означает, что эта транзакция будет сразу же выполнена на экземплярах хранилищ. Если master-узел сообщит клиенту об успешном выполнении операции, а потом прекратит работу до передачи этой транзакции соседним узлам и не восстановит свою работу, транзакция клиента пропадет. Если такой узел восстановил работу, а на другом экземпляре уже есть транзакция с тем же ключом, произойдёт конфликт репликации. При разрешении такого конфликта нужно будет оставить одну из этих двух транзакций.

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

Узнать больше о синхронной репликации можно в документации Tarantool.

Включение синхронной репликации

Чтобы включить синхронную репликацию для спейса в кластере, задайте опцию space_opts.is_sync при создании или изменении этого спейса:

local space = box.schema.space.create('writers', { is_sync = true })space:format({    {name = 'id', type = 'number'},    {name = 'bucket_id', type = 'number'},    {name = 'name', type = 'string'},    {name = 'age', type = 'number'},})space:create_index('primary', {parts = {'id'}})space:create_index('bucket_id', {parts = {'bucket_id'}})