Jump to content

Sequential consistency

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by A5b (talk | contribs) at 13:35, 16 August 2010 (link to ru:~). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Sequential consistency is one of the consistency models used in the domain of concurrent programming (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]

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 hypothetical external observator or global clock) 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 as deciding global time is impossible) and is the easiest consistency model to understand, since a system preserving that model is behaving in a way expected by an instantaneous system.

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 such as causal consistency.[citation needed]

References

  1. ^ Leslie Lamport, "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs", IEEE Trans. Comput. C-28,9 (Sept. 1979), 690-691.