[Tarantool-patches] [PATCH v3 00/10] Raft
Serge Petrenko
sergepetrenko at tarantool.org
Wed Sep 30 10:06:30 MSK 2020
30.09.2020 01:11, Vladislav Shpilevoy пишет:
> The patchset is a first approach to implementing Raft leader election.
> Synchronous replication is already implemented, and the leader election is
> supposed to complement it. Although this is still far being from production
> ready. Main purpose of the patch is to get Raft in 2.6.1 so as we could work on
> its stabilization and testing in 2.6.x releases, not making the users wait for
> 2.7.
Hi! Thanks for the patchset!
LGTM.
> Branch: http://github.com/tarantool/tarantool/tree/gh-1146-raft
> Issue: https://github.com/tarantool/tarantool/issues/1146
>
> @ChangeLog
> * Automated leader election via Raft algorithm (gh-1146).
>
> Changed from v2:
> - Lots of minor bugs fixed;
> - New naming in the public API - 'election' instead of 'raft'.
>
> Vladislav Shpilevoy (9):
> applier: store instance_id in struct applier
> box: introduce summary RO flag
> wal: don't touch box.cfg.wal_dir more than once
> replication: track registered replica count
> raft: introduce persistent raft state
> raft: introduce box.cfg.election_* options
> raft: introduce state machine
> raft: introduce box.info.election
> raft: add tests
>
> sergepetrenko (1):
> raft: relay status updates to followers
>
> src/box/CMakeLists.txt | 1 +
> src/box/applier.cc | 50 +-
> src/box/applier.h | 2 +
> src/box/box.cc | 185 +++-
> src/box/box.h | 9 +
> src/box/iproto_constants.h | 15 +
> src/box/lua/cfg.cc | 27 +
> src/box/lua/info.c | 17 +
> src/box/lua/load_cfg.lua | 15 +
> src/box/lua/misc.cc | 1 +
> src/box/memtx_engine.c | 36 +
> src/box/raft.c | 1009 ++++++++++++++++++++++
> src/box/raft.h | 260 ++++++
> src/box/relay.cc | 181 +++-
> src/box/relay.h | 7 +
> src/box/replication.cc | 4 +-
> src/box/replication.h | 7 +
> src/box/wal.c | 6 +
> src/box/wal.h | 7 +
> src/box/xrow.c | 115 +++
> src/box/xrow.h | 15 +
> test/app-tap/init_script.result | 3 +
> test/box/admin.result | 6 +
> test/box/cfg.result | 12 +
> test/box/info.result | 1 +
> test/replication/election_basic.result | 278 ++++++
> test/replication/election_basic.test.lua | 117 +++
> test/replication/election_replica.lua | 30 +
> test/replication/election_replica1.lua | 1 +
> test/replication/election_replica2.lua | 1 +
> test/replication/election_replica3.lua | 1 +
> 31 files changed, 2383 insertions(+), 36 deletions(-)
> create mode 100644 src/box/raft.c
> create mode 100644 src/box/raft.h
> create mode 100644 test/replication/election_basic.result
> create mode 100644 test/replication/election_basic.test.lua
> create mode 100644 test/replication/election_replica.lua
> create mode 120000 test/replication/election_replica1.lua
> create mode 120000 test/replication/election_replica2.lua
> create mode 120000 test/replication/election_replica3.lua
>
--
Serge Petrenko
More information about the Tarantool-patches
mailing list