[tarantool-patches] Re: [PATCH 0/5] swim member 'left' status

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Wed Apr 10 13:29:01 MSK 2019


The whole patchset is pushed to the master.

On 09/04/2019 21:12, Vladislav Shpilevoy wrote:
> 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)
> 
> 




More information about the Tarantool-patches mailing list