[Tarantool-patches] [PATCH v3 00/10] Raft
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Wed Sep 30 01:11:21 MSK 2020
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.
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
--
2.21.1 (Apple Git-122.3)
More information about the Tarantool-patches
mailing list