[tarantool-patches] [PATCH 0/5] SWIM loglog preparation

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Thu Jul 4 02:28:29 MSK 2019


The patchset prepares ground for a new SWIM's killer feature -
O(log(log(cluster_size))) full dissemination time.

Most of the commits are quite obvious, see their commit messages.

The last two ones could look strange. I've the final loglog commit on another
branch, and it slows down the SWIM tests in 2-3 times just spending much and
much more time on checking and decoding MessagePack in the padded out messages.
According to the profiler, most of the time is spent in mp_decode/check_uint,
when I use Debug build.

The last two commits compensate that problem, making the tests perhaps even
faster than before the whole 4253. Especially the last one. See their messages
for details.

Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-4253-loglog-preparation
Issue: https://github.com/tarantool/tarantool/issues/4253

Vladislav Shpilevoy (5):
  swim: fix flaky 'indirect pings' test
  swim: sadly remove cache
  test: redo some swim tests using error injections
  swim: speed-up tests
  swim: speed-up empty payloads cluster bootstrap

 src/lib/core/errinj.h        |   1 +
 src/lib/swim/swim.c          |  53 ++++------
 test/swim/errinj.result      | 102 ++++++++++++++++++
 test/swim/errinj.test.lua    |  41 ++++++++
 test/swim/suite.ini          |   1 +
 test/swim/swim.result        |  55 ----------
 test/swim/swim.test.lua      |  22 ----
 test/unit/CMakeLists.txt     |   5 +
 test/unit/suite.ini          |   1 +
 test/unit/swim.c             | 197 ++--------------------------------
 test/unit/swim.result        |  31 ++----
 test/unit/swim_errinj.c      | 199 +++++++++++++++++++++++++++++++++++
 test/unit/swim_errinj.result |  18 ++++
 test/unit/swim_test_utils.c  | 102 ++++++------------
 test/unit/swim_test_utils.h  |  24 +++--
 15 files changed, 456 insertions(+), 396 deletions(-)
 create mode 100644 test/swim/errinj.result
 create mode 100644 test/swim/errinj.test.lua
 create mode 100644 test/unit/swim_errinj.c
 create mode 100644 test/unit/swim_errinj.result

-- 
2.20.1 (Apple Git-117)





More information about the Tarantool-patches mailing list