[PATCH 0/2] Replication configuration improvements

Vladimir Davydov vdavydov.dev at gmail.com
Wed Feb 14 20:29:13 MSK 2018


This patch set fixes a couple of issues of box.cfg{replication} that
have been discovered recently, after people started using the quorum and
sync stuff (see #2958). The first one is the inability to revert to the
old behavior, when box.cfg() would never return until it connected to
all replicas (closes #3151). The second issue was raised by @kostja
verbally. He pointed out that box.cfg() should stop syncing to replicas
and return leaving the instance in the 'orphan' mode in case a quorum
can't be formed, because some of the replicas have disconnected.

https://github.com/tarantool/tarantool/issues/2958
https://github.com/tarantool/tarantool/issues/3151
https://github.com/tarantool/tarantool/tree/gh-3151-replication-cfg-improvements

Vladimir Davydov (2):
  Introduce replication_connect_timeout configuration option
  replication: stop syncing if quorum cannot be formed

 src/box/box.cc                   | 23 +++++++++-
 src/box/lua/load_cfg.lua         |  2 +
 src/box/replication.cc           | 93 ++++++++++++++++++++++++++--------------
 src/box/replication.h            | 48 ++++++++++++---------
 test/app-tap/init_script.result  | 45 +++++++++----------
 test/box-tap/cfg.test.lua        |  7 ++-
 test/box/admin.result            |  2 +
 test/box/cfg.result              |  4 ++
 test/replication/errinj.result   | 12 ++----
 test/replication/errinj.test.lua |  9 ++--
 test/replication/quorum.lua      |  1 +
 test/replication/replica_ack.lua | 11 -----
 12 files changed, 157 insertions(+), 100 deletions(-)
 delete mode 100644 test/replication/replica_ack.lua

-- 
2.11.0




More information about the Tarantool-patches mailing list