Tarantool development patches archive
 help / color / mirror / Atom feed
* [tarantool-patches] [PATCH 0/5] swim member 'left' status
@ 2019-04-09 18:12 Vladislav Shpilevoy
  2019-04-09 18:12 ` [tarantool-patches] [PATCH 1/5] test: allow to remove swim nodes from the cluster Vladislav Shpilevoy
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Vladislav Shpilevoy @ 2019-04-09 18:12 UTC (permalink / raw)
  To: tarantool-patches; +Cc: kostja

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)

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2019-04-10 10:29 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-09 18:12 [tarantool-patches] [PATCH 0/5] swim member 'left' status Vladislav Shpilevoy
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox