From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: tarantool-patches@freelists.org Cc: kostja@tarantool.org Subject: [tarantool-patches] [PATCH 0/5] swim member 'left' status Date: Tue, 9 Apr 2019 21:12:07 +0300 [thread overview] Message-ID: <cover.1554833062.git.v.shpilevoy@tarantool.org> (raw) 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)
next reply other threads:[~2019-04-09 18:12 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-09 18:12 Vladislav Shpilevoy [this message] 2019-04-09 18:12 ` [tarantool-patches] [PATCH 1/5] test: allow to remove swim nodes from the cluster Vladislav Shpilevoy 2019-04-10 7:15 ` [tarantool-patches] " Konstantin Osipov 2019-04-09 18:12 ` [tarantool-patches] [PATCH 2/5] test: on close of swim fake fd send its packets, not drop Vladislav Shpilevoy 2019-04-10 7:16 ` [tarantool-patches] " Konstantin Osipov 2019-04-09 18:12 ` [tarantool-patches] [PATCH 3/5] test: process IO swim test events before protocol's ones Vladislav Shpilevoy 2019-04-10 7:17 ` [tarantool-patches] " Konstantin Osipov 2019-04-09 18:12 ` [tarantool-patches] [PATCH 4/5] swim: introduce quit message Vladislav Shpilevoy 2019-04-10 7:21 ` [tarantool-patches] " Konstantin Osipov 2019-04-09 18:12 ` [tarantool-patches] [PATCH 5/5] swim: make UUID update smoother and faster Vladislav Shpilevoy 2019-04-10 7:22 ` [tarantool-patches] " Konstantin Osipov 2019-04-10 10:29 ` [tarantool-patches] Re: [PATCH 0/5] swim member 'left' status Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1554833062.git.v.shpilevoy@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=kostja@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] [PATCH 0/5] swim member '\''left'\'' status' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox