DEV Community

Discussion on: Consistency models

Collapse
 
qeesung profile image
秦世成

Can Sequential consistency see out of date data?

Collapse
 
napicella profile image
Nicola Apicella

No, under sequential consistency each processor(or node) observes the same history of operations. This means that each node is gonna read fresh state. (Fresh here means that the read operations read the last write. Note that the info might become outdated right after)

Collapse
 
qeesung profile image
秦世成

Thank you very much for your quick reply. Each processor(or node) observes the same history of operations, maybe the client read the stale data from different processor, for example, a client writes a variable x=0 through process 1, and then writes a variable y=0, and process 1 propagate these events to the process 2, If the client initiates a read operation before the event reaches process 2, will it read the outdated data?

Thread Thread
 
napicella profile image
Nicola Apicella • Edited

U re welcome :)
what you described in your example cannot happen under sequential consistency.
The model is an abstract contract of the behaviour the system must respect at any point in time.
Coming back to your example you, just to make it a bit more concrete, we could:

  • use sessions for clients, so that reads and writes for the same client end up to the same processor
  • or use a leader processor which serializes reads and writes to other nodes. The idea is similar to what Raft and Paxos do.

Both these approaches will cause the clients to observe a system which behaves as sequential consistent.

Thread Thread
 
qeesung profile image
秦世成

Thank you very much. Your answer has solved my doubts. : -)

Thread Thread
 
napicella profile image
Nicola Apicella

Glad it helped :)