You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
thanks for the quick reply.I still have some question, I detail described:
for example there have two nodes: node_a, node_b; #1 if node_a Update some value(say gCounter_a) on time1, the value's digest is updated; #2 node_a generate a GossipTick on time2, then send 'Status' msg to node_b; #3 node_b corresponding value's(gCounter_a) digest is old, then node_b in the 'isOtherOutdated' function case 'Some(digest) if digest != otherDigest ⇒ true', and then send it's current "older" gCounter_a back to node_a in a 'Gossip' msg. #4 node_a recieve 'Gossip' msg and do something ... ...
maybe in this position node_b just send nothing to node_a, or get 'Gossip' msg from node_a?
if i lose something,please point out, thanks all!
Thanks for clarification. Your understanding is correct. When node_a receives the gossip msg in #4 it will merge with local value and the local value will win (as it is newer). Nothing is sent back to node_b at that point.
The new value will be spread when some other node (e.g. node_b) sends status to node_a.
It would be possible to send back when receiving gossip message. That would speed up dissemination, at the cost of sending more data. I will consider doing that.
I don't want to add causality information in the status message, because that means version vectors and that takes up a lot more space than a digest.
Caused confusion for someone reading the code.
The text was updated successfully, but these errors were encountered: