[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