Jaideep M. More

software engineer


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