From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: tarantool-patches@dev.tarantool.org, sergepetrenko@tarantool.org Subject: [Tarantool-patches] [PATCH v3 00/10] Raft Date: Wed, 30 Sep 2020 00:11:21 +0200 [thread overview] Message-ID: <cover.1601417273.git.v.shpilevoy@tarantool.org> (raw) 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)
next reply other threads:[~2020-09-29 22:11 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-29 22:11 Vladislav Shpilevoy [this message] 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 01/10] applier: store instance_id in struct applier Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 10/10] raft: add tests Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 02/10] box: introduce summary RO flag Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 03/10] wal: don't touch box.cfg.wal_dir more than once Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 04/10] replication: track registered replica count Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 05/10] raft: introduce persistent raft state Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 06/10] raft: introduce box.cfg.election_* options Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 07/10] raft: relay status updates to followers Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 08/10] raft: introduce state machine Vladislav Shpilevoy 2020-09-29 22:11 ` [Tarantool-patches] [PATCH v3 09/10] raft: introduce box.info.election Vladislav Shpilevoy 2020-09-30 7:06 ` [Tarantool-patches] [PATCH v3 00/10] Raft Serge Petrenko 2020-09-30 11:04 ` Kirill Yukhin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1601417273.git.v.shpilevoy@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=sergepetrenko@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v3 00/10] Raft' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox