Sequential consistency is one of the consistency models used in the domain of concurrent
computing (e.g. in distributed shared memory, distributed
transactions, etc.).
It was first defined as the property that requires that
-
- "... the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program."[1]
To understand this statement, it is necessary to consider a computer composed of several processors executing a concurrent system: some order of execution for the processors (seeing assequential
machines), and for each one of these processors, the execution order for the instructions must be the same specified by the concurrent program.
The system provides sequential consistency if every node of the system sees the (write) operations on the same memory part (page, virtual object, cell, etc.) in the same order, although the order may be different from the order as defined by real time (as observed
by a hypothetical external observer or global clock) of issuing the operations.
The sequential consistency is weaker than strict consistency, which requires a read
operation from a location to return the value of the last write operation to that location. Strict consistency would demand that operations are seen in order in which they were actually issued.