[Tarantool-patches] [PATCH v2 00/16] Raft module, part 2 - relocation to src/lib/raft
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Fri Nov 20 02:45:56 MSK 2020
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
--
2.24.3 (Apple Git-128)
More information about the Tarantool-patches
mailing list