[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