From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id F02C12AFAA for ; Tue, 9 Apr 2019 07:46:41 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LxDPLOjw-v8m for ; Tue, 9 Apr 2019 07:46:41 -0400 (EDT) Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 158F52AF57 for ; Tue, 9 Apr 2019 07:46:41 -0400 (EDT) From: Vladislav Shpilevoy Subject: [tarantool-patches] [PATCH v2 0/6] swim dissemination Date: Tue, 9 Apr 2019 14:46:31 +0300 Message-Id: Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: tarantool-patches@freelists.org Cc: kostja@tarantool.org The patchset consists of preparatory patches for dissemination to make the code more reusable and the tests faster, and of the dissemination component itself. I do not duplicate here the component description, it is quite comprehensive in the commit message and comments. The only remarkable thing is that the component alone does not care about changed uuid steady dissemination. Here UUID update looks just like any other update with some minor differencies. And it leads to a 'bug', that even with the stable network and the fullmesh a ghost of the old UUID will live in the cluster until it is dropped by failure detection component. It takes long time, since ack_timeout is 30 seconds by default, and it is necessary to unack 5 pings to drop a member - 2.5 minutes in total. Next patches will fix that problem for the most popular case. The patchset is a sent as a new version because Kostja explicitly asked for that despite extra minor review fixes, mostly (if not totally) focused on names and comments. Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-3234-swim-dissemination Issue: https://github.com/tarantool/tarantool/issues/3234 V1: https://www.freelists.org/post/tarantool-patches/PATCH-05-swim-dissemination-component Changes in v2: - renames and comments. Vladislav Shpilevoy (6): swim: encapsulate member bin info into a 'passport' swim: make members array decoder be a separate function test: rename some swim test methods and macros test: speed up swim big cluster failure detection test: set packet drop rate instead of flag in swim tests swim: introduce dissemination component src/lib/swim/swim.c | 202 ++++++++++++++++++++++++++++++-- src/lib/swim/swim.h | 4 + src/lib/swim/swim_proto.c | 72 +++++++++--- src/lib/swim/swim_proto.h | 82 ++++++++++++- test/unit/swim.c | 185 ++++++++++++++++++----------- test/unit/swim.result | 27 +++-- test/unit/swim_test_transport.c | 27 +++-- test/unit/swim_test_transport.h | 9 +- test/unit/swim_test_utils.c | 63 +++++++++- test/unit/swim_test_utils.h | 30 ++++- 10 files changed, 575 insertions(+), 126 deletions(-) -- 2.17.2 (Apple Git-113)