Sequential consistency
From Wikipedia, the free encyclopedia
Sequential consistency is one of the consistency models used in the domain of the concurrent programming (e.g in distributed shared memory, distributed transactions etc). It was first defined as the property that requires that "...the results 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."
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 "factual" order as defined by time of issuing the operations.
The sequential consistency is weaker than strict consistency (which would demand that operations are seen in order in which they were actually issued - which is essentially impossible to secure in distributed system, where deciding global time is virtually impossible) and is the easiest consistency model to understand, since a system preserving that model is behaving in a way expected by an average programmer.
The simplicity is achieved at cost of efficiency: distributed systems with sequential consistency model are, without further optimisation such as speculation, one magnitude slower than those providing weaker models.
[edit] References
- ↑ Leslie Lamport, "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs", IEEE Trans. Comput. C-28,9 (Sept. 1979), 690-691.