Skip to content

System Design and Architecture

Hellblazer edited this page Oct 25, 2012 · 15 revisions

Gossip Protocol

The gossip protocol is based on the paper Efficient Reconciliation and Flow Control for Anti-Entropy Protocols. This protocol replicates state and forms both a member discovery and failure detection service. Periodically, the protocol chooses a random member from the system view and initiates a round of gossip with it. A round of gossip is push/pull and involves 3 messages.

For example, if node A wants to initiate a round of gossip with node B it starts off by sending node B a gossip message containing a digest of the view number state of the local view of the replicated state. Node B on receipt of this message sends node A a reply containing a list of digests representing the updated state required, based on the received digests. In addition, the node also sends along a list of updated state that is more recent, based on the initial list of digests. On receipt of this message node A sends node B the requested state that completes a round of gossip.

When messages are received, the protocol updates the endpoint's failure detector with the liveness information. If the endpoint's failure detector predicts that the endpoint has failed, the endpoint is marked dead and its replicated state is abandoned.

Extensions

Clone this wiki locally