We need a way to propagate information throughout the network since not all replicas are directly connected to each other. Our first implementation for data propagation is the rumor mongering or gossip protocol. Right now this is implemented as follows:
Node creates data adds version to version list.
Sends message with version to all connections.
On receipt of a message respond with an acknowledgment.
If the message is new (unseen) then add to log and for every node but the sender of the message, forward the message.
From what I can tell, this protocol does eventually converge; but it seems to send a lot of messages. More than I expected.
Ok, the issue with the messages was that I was sending a different version id for each message to the new replicas; so instead of sending 1 version I was sending 3, hence all the new messages.
We need a way to propagate information throughout the network since not all replicas are directly connected to each other. Our first implementation for data propagation is the rumor mongering or gossip protocol. Right now this is implemented as follows:
From what I can tell, this protocol does eventually converge; but it seems to send a lot of messages. More than I expected.