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 DD38A2B29F for ; Tue, 9 Apr 2019 14:12:15 -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 LZu1WOnw8GIW for ; Tue, 9 Apr 2019 14:12:15 -0400 (EDT) Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (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 84FD926E34 for ; Tue, 9 Apr 2019 14:12:15 -0400 (EDT) From: Vladislav Shpilevoy Subject: [tarantool-patches] [PATCH 0/5] swim member 'left' status Date: Tue, 9 Apr 2019 21:12:07 +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 introduces and uses a new member status 'left', MEMBER_LEFT. Originally the status appears in scope of swim_quit() API - a function gracefully removing the instance from the cluster. Quit is used when a SWIM instance does not want to be a part of the cluster anymore, and it is undesirable to just shut it down and drop from other members via failure detection - it would be much longer, at least. But appeared that 'left' status also can be applied to smooth UUID update. Before the patchset UUID update led to appearance of a 'ghost' of the old UUID for a relatively long time. Now on UUID update the old UUID is marked as left, and eventually dropped bypassing failure detection. Of course it is not guaranteed, but it works in most of cases. Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-3234-swim-member-left-status Issue: https://github.com/tarantool/tarantool/issues/3234 Vladislav Shpilevoy (5): test: allow to remove swim nodes from the cluster test: on close of swim fake fd send its packets, not drop test: process IO swim test events before protocol's ones swim: introduce quit message swim: make UUID update smoother and faster src/lib/swim/swim.c | 207 ++++++++++++++++++++------------ src/lib/swim/swim.h | 10 ++ src/lib/swim/swim_constants.h | 2 + src/lib/swim/swim_io.c | 8 +- src/lib/swim/swim_io.h | 4 + src/lib/swim/swim_proto.c | 11 ++ src/lib/swim/swim_proto.h | 30 +++++ test/unit/swim.c | 100 +++++++++++++-- test/unit/swim.result | 27 ++++- test/unit/swim_test_ev.c | 27 +---- test/unit/swim_test_ev.h | 2 +- test/unit/swim_test_transport.c | 47 ++++++-- test/unit/swim_test_transport.h | 9 +- test/unit/swim_test_utils.c | 152 +++++++++++++++++------ test/unit/swim_test_utils.h | 17 +++ 15 files changed, 486 insertions(+), 167 deletions(-) -- 2.17.2 (Apple Git-113)