First commit message is a comprehensive information about SWIM
which I will not duplicate here. This is only description of the
patchset.
SWIM consists of two main components - dissemination and failure
detection, and one additional component - anti-entropy. The
patchset introduces them one by one in separate commits.
Next to last commit introduces suspected status of a cluster
member, but without indirect pings, described in the origianl
SWIM. Just for simplicity, and to be honest, I just don't think
that indirect pings makes any sense but academical interest.
Last commit is just an optimization to save some TX thread CPU
time.
Note, these commits can contain bugs, typos, and have no tests.
The goal of this review is a highlevel approval.
http://github.com/tarantool/tarantool/tree/gerold103/gh-3234-swim
https://github.com/tarantool/tarantool/issues/3234
Vladislav Shpilevoy (5):
swim: introduce SWIM's anti-entropy component
swim: introduce failure detection component
swim: introduce a dissemination component
swim: introduce "suspected" status
swim: keep encoded round message cached
src/CMakeLists.txt | 3 +-
src/lib/CMakeLists.txt | 1 +
src/lib/swim/CMakeLists.txt | 6 +
src/lib/swim/swim.c | 1674 +++++++++++++++++++++++++++++++++++
src/lib/swim/swim.h | 83 ++
src/lua/init.c | 2 +
src/lua/swim.c | 151 ++++
src/lua/swim.h | 47 +
test/swim/app.lua | 15 +
test/swim/basic.result | 195 ++++
test/swim/basic.test.lua | 61 ++
test/swim/suite.ini | 6 +
test/swim/swim_utils.lua | 9 +
13 files changed, 2252 insertions(+), 1 deletion(-)
create mode 100644 src/lib/swim/CMakeLists.txt
create mode 100644 src/lib/swim/swim.c
create mode 100644 src/lib/swim/swim.h
create mode 100644 src/lua/swim.c
create mode 100644 src/lua/swim.h
create mode 100644 test/swim/app.lua
create mode 100644 test/swim/basic.result
create mode 100644 test/swim/basic.test.lua
create mode 100644 test/swim/suite.ini
create mode 100644 test/swim/swim_utils.lua
--
2.17.2 (Apple Git-113)