From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [94.100.177.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 0F8AA469719 for ; Wed, 30 Sep 2020 10:06:31 +0300 (MSK) References: From: Serge Petrenko Message-ID: <3fd8cf76-9a6e-75dc-c64b-daccf38c1118@tarantool.org> Date: Wed, 30 Sep 2020 10:06:30 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Content-Language: en-GB Subject: Re: [Tarantool-patches] [PATCH v3 00/10] Raft List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy , tarantool-patches@dev.tarantool.org, Kirill Yukhin 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