[Tarantool-patches] [PATCH v2 00/16] Raft module, part 2 - relocation to src/lib/raft
Serge Petrenko
sergepetrenko at tarantool.org
Fri Nov 20 12:14:47 MSK 2020
20.11.2020 02:45, Vladislav Shpilevoy пишет:
> The patchset is a second part of Raft relocation to a new module for the sake of
> unit testing. This part does the relocation itself.
>
> It entirely consists of removal of box dependencies from raft code.
>
> The third part will virtualize Raft event loop at compile-time, and will
> introduce customizable implementations for network, disk, event loop, and time
> to perform unit tests.
>
> Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-5303-p2-src-lib-raft
> Issue: https://github.com/tarantool/tarantool/issues/5303
>
> Changes in v2:
> - Renames and comment fixes;
> - Fixed the bug when a follower could be writable for some time. But don't know
> how to test it in a sane way. Should be easy to cover in a unit test though.
> The fix is done in the commits from "raft: make worker non-cancellable during
> WAL write" to "move RO summary update to box-Raft".
>
> Vladislav Shpilevoy (16):
> raft: move sources to raftlib.h/.c
> raft: move box_raft_* to src/box/raft.h and .c
> raft: stop using replication_disconnect_timeout()
> raft: stop using replication_synchro_quorum
> raft: stop using instance_id
> raft: make raft_request.vclock constant
> raft: stop using replicaset.vclock
> raft: introduce vtab for disk and network
> raft: introduce raft_msg, drop xrow dependency
> raft: make worker non-cancellable during WAL write
> raft: move worker fiber from Raft library to box
> raft: move synchro queue clear to the worker fiber
> raft: invoke update triggers within state machine
> raft: move RO summary update to box-Raft
> raft: introduce RaftError
> raft: move algorithm code to src/lib/raft
>
> src/box/CMakeLists.txt | 2 +-
> src/box/applier.cc | 2 +-
> src/box/box.cc | 44 +-
> src/box/memtx_engine.c | 4 +-
> src/box/raft.c | 1200 ++++++-----------------------------
> src/box/raft.h | 252 +-------
> src/box/replication.cc | 3 +
> src/box/xrow.c | 2 +-
> src/box/xrow.h | 6 +-
> src/lib/CMakeLists.txt | 1 +
> src/lib/core/diag.h | 2 +
> src/lib/core/exception.cc | 24 +
> src/lib/core/exception.h | 7 +
> src/lib/raft/CMakeLists.txt | 7 +
> src/lib/raft/raft.c | 997 +++++++++++++++++++++++++++++
> src/lib/raft/raft.h | 357 +++++++++++
> 16 files changed, 1652 insertions(+), 1258 deletions(-)
> create mode 100644 src/lib/raft/CMakeLists.txt
> create mode 100644 src/lib/raft/raft.c
> create mode 100644 src/lib/raft/raft.h
>
Hi! Thanks for the patchset & fixes!
Patches 1-9, 15, 16 LGTM as reviewed in previous patchset version.
--
Serge Petrenko
More information about the Tarantool-patches
mailing list