Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: tarantool-patches@freelists.org
Cc: kostja@tarantool.org
Subject: [tarantool-patches] Re: [PATCH 1/1] swim: introduce SWIM's anti-entropy component
Date: Thu, 7 Mar 2019 00:24:11 +0300	[thread overview]
Message-ID: <ca4dcf39-2060-8477-fc2d-6eb554b3c51a@tarantool.org> (raw)
In-Reply-To: <5deb15eab37345ba1abc8772a4c78308d8e8f9c1.1551884926.git.v.shpilevoy@tarantool.org>

Sorry again - ignore the whole email. I've found a bug
which required drastic changes in the event loop
implementation.

I've sent a new version as v2.

On 06/03/2019 18:13, Vladislav Shpilevoy wrote:
> SWIM - Scalable Weakly-consistent Infection-style Process Group
> Membership Protocol. It consists of 2 components: events
> dissemination and failure detection, and stores in memory a
> table of known remote hosts - members. Also some SWIM
> implementations have an additional component: anti-entropy -
> periodical broadcast of a random subset of members table.
> 
> Dissemination component spreads over the cluster changes occurred
> with members. Failure detection constantly searches for failed
> dead members. Anti-entropy just sends all known information at
> once about a member so as to synchronize it among all other
> members in case some events were not disseminated (UDP problems).
> 
> Anti-entropy is the most vital component, since it can work
> without dissemination and failure detection. But they can not
> work properly with out the former. Consider the example: two SWIM
> nodes, both are alive. Nothing happens, so the events list is
> empty, only pings are being sent periodically. Then a third
> node appears. It knows about one of existing nodes. How should
> it learn about another one? Sure, its known counterpart can try
> to notify another one, but it is UDP, so this event can get lost.
> Anti-entropy is an extra simple component, it just piggybacks
> random part of members table with each regular round message.
> In the example above the new node will learn about the third
> one via anti-entropy messages of the second one soon or late.
> 
> This is why anti-entropy is the first implemented component.
> 
> Part of #3234
> ---
> Branch: https://github.com/tarantool/tarantool/tree/gerold103/gh-3234-swim-anti-entropy
> 

  parent reply	other threads:[~2019-03-06 21:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-06 15:13 [tarantool-patches] " Vladislav Shpilevoy
2019-03-06 15:16 ` [tarantool-patches] " Vladislav Shpilevoy
2019-03-06 21:24 ` Vladislav Shpilevoy [this message]
2019-03-07 10:27   ` Konstantin Osipov
2019-03-07 12:33     ` Vladislav Shpilevoy
2019-03-07 13:20       ` Konstantin Osipov
2019-03-07 13:54         ` Vladislav Shpilevoy
2019-03-07 10:22 ` Konstantin Osipov
2019-03-07 12:33   ` 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=ca4dcf39-2060-8477-fc2d-6eb554b3c51a@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=kostja@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH 1/1] swim: introduce SWIM'\''s anti-entropy component' \
    /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