Scuttlebutt Reconciliation from "Efficient Reconciliation and Flow Control for Anti-Entropy Protocols"
- by Maus
This question might be more suited to math.stackexchange.com, but here goes:
Their Version
Reconciliation takes two parts-- first the exchange of digests, and then an exchange of updates. I'll first paraphrase the paper's description of each step.
To exchange digests, two peers send one another a set of pairs-- (peer, max_version) for each peer in the network, and then each one responds with a set of deltas.
The deltas look like: (peer, key, value, version), for all tuples for which peer's state maps the key to the given value and version, and the version number is greater than the maximum version number peer has seen. This seems to require that each node remember the state of each other node, and the highest version number and ID each node has seen.
Question
Why must we iterate through all peers to exchange information between p and q?