I am implementing a gossip based membership detection mechanism. Lets say we have a ring topology, i.e. node1 only knows about the 2 nodes (node4 and node2) around it.
node1 - - - - node4 node2 - - - - node3
Now, gossiping says: Pick a node at random from the membership list. But, if we strictly follow the ring topology, then node1 should only try to gossip with node2 or node4. Other wise, only for communication the topology will become a clique rather than being a ring.
Background: According to the Amazon dyanmo paper:
Each node contacts a peer chosen at random every second and the two nodes efficiently reconcile their persisted membership change histories.
If, that is the case, then is dynamo's implementation not following a "true" ring topology and only using ring for consistent hashing (replication) and using a clique for membership detection?