Skip to content

Switching from sync to async replication #3595

Open
@p7nov

Description

@p7nov

Product: Tarantool
Audience/target: developers/admins
Root document: https://www.tarantool.io/en/doc/latest/concepts/replication/repl_sync/
SME: @ sergepetrenko

Details

From a discussion in team chat:

Q: how to switch from sync replication to async?

A (in Russian):

  1. Убедиться, что на мастере больше не идут синхронные транзакции: ну, либо самим себе дать честное слово, что приложуха не обращается к синхронным спейсам, либо просто убрать все синхронные спейсы: box.space.sync_space_name:alter{is_sync=false}.
  2. Убедиться что все предыдущие синхронные транзакции завершены: box.info.synchro.queue.len == 0, box.info.synchro.queue.busy == false.
  3. На всех репликах поставить box.cfg{election_mode='off'}.
  4. На мастере поставить box.cfg{election_mode='off'}.
  5. На мастере вызвать box.ctl.demote()
  6. Дождаться, пока реплики догонят vclock мастера на этот момент
    После этого синхронная репликация будет выключена, и кластер будет в обычном для асинхры состоянии.

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

Настройки
replication_synchro_quorum
replication_synchro_timeout
election_timeout
можно не трогать, после "выключения синхры" они не будут ни на что влиять

Definition of done

  • The instruction on switching from sync to async replication is added to docs

Metadata

Metadata

Assignees

No one assigned

    Labels

    add details[nature] More details needed, some info missing. Documentation is incomplete.conceptsreplication[area] Related to Replication

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions