javascalaakkadistributed-systemgossip

Understanding cluster state update


I'm reading gossip akka cluster documentation and still have one little misunderstanding about gossip.

As said in this answer, two nodes are gossiping about the value and then who seen this value. But this comes with some issue about convergence. Here's how I see this:

S - is a seen set.

cluster topology

The issue is at some time, only node 4 knows that convergence happened. node 1, 2 and 3 still think it does not. I'm interesting about how should node 4 deal with convergence?

Should it initiate a new gossip round that convergence happened? Or how can other nodes know about it?


Solution

  • Nodes 1-3 will still be gossiping (well, 3 probably already knows about convergence because it knows 4 has the value.) As they continue gossiping they will be exchanging notes on who has seen the value.

    Node 4 (and 3 really), and all subsequent nodes knowing about convergence continue gossiping but without the random weighting mentioned in your other question. In the protocol section of your linked doc it says:

    While the cluster is in a converged state the gossiper only sends a small gossip status message containing the gossip version to the chosen node. As soon as there is a change to the cluster (meaning non-convergence) then it goes back to biased gossip again.