Eventual Consistency
Lamport Clocks:
Partially synchronized logical clock per replica. P’s current logical clock denoted LC[P]
Every event is timestamped with local LC. we want the following property to hold: If event B is causally dependent on A then B.t > A.t Timestamps strictly increase along a causal chain.
Implementation:
Every sync from P to Q carries LC[P]. It tells Q what P’s logical time at the time of sync was.
When Q receives a message from P, it sets LC[Q] = max(LC[Q], LC[P]).
If we totally order events while respecting lamport clocks, we wont violate causal consistency.
Design for Eventual Consistency:
Strawman Design:
Read: Bayou
