Gossip protocol : Machines at water cooler

Close resemblance to how epidemics spread. But in our case it is a communication protocol.

– Involves pair wise inter process interaction
– After interaction, state of one of two interacting agent changes.
– It may so happen that the interaction fails between the processes.
– Cost of interaction is deemed negligible.
– Peers for inter process communication are selected randomly.
– There may be duplication in the message being gossiped, i.e. Both the agents were already aware of the messages being gossiped.

Gossip protocol











Type of Gossips
– Information dissemination
The piece of information needs to diseminated and the above protocol is used for the same. Gossips can either be periodic (no event based trigger) or on the basis of event based trigger.
– Anti-entropy Protocol :
The gossip happens and is used to make sure that there is no diff between the set of information two agents have.
– Aggregate computation –
The protocol can also be used to compute aggregates w.r.t to agent statistics. e.g. which agent have lowest health, best health, total of some resources. The nodes can be arranged in tree like structure for gossip.

The gossip protocol is widely used to check liveliness and heartbeat monitoring e.g. Cassandra, Dynamo db uses some variant of gossip protocol for the same.


Gossip protocol : Machines at water cooler

Some things distributed


I was having a conversation recently at work, it was some work related topic and during that conversation, I had a realization that, at work, there are many things that we take for granted which function as building blocks for distributed systems, but are not at all obvious to everyone. I have been working in space of distributed systems for last 4 and a half years and have been blessed to be working with some of the sharpest minds in the industry. I truly mean sharpest, because some times I get inferiority  complex while talking to them. But I also do believe that I have done okay and have learned a lot in past years. I have been thinking a lot to summarize some of the lessons that I learnt, either from literature or on the job, so that somebody like me, who is starting out can read these blogs before heading out to the faulty world of distributed systems.
I will be submitting some posts in foreseeable future, which hopefully readers (whatever teeny tiny set I have) will find useful.

Before you start pointing out, yes, this is obviously a light hearted reference to similar named blog by Werner Vogels.

Some things distributed