Consistency model

From Wikipedia, the free encyclopedia

In computer science, in a distributed system such as a distributed shared memory system or a distributed data store such as a database, filesystem, web caching or optimistic replication systems, there are a number of possible data consistency models. The system supports a given model if operations on memory follow specific rules. The data consistency model specifies a contract between programmer and system, wherein the system guarantees that if the programmer follows the rules, memory will be consistent and the results of memory operations will be predictable.

High level languages, such as C, C++, and Java, partially maintain the contract by translating memory operations into low-level operations in a way to preserves memory semantics. To hold the contract, compilers may reorder some memory instructions, and library calls such as pthread_mutex_lock(), encapsulate required synchronization (Hill).

Verifying sequential consistency is undecidable in general, even for finite-state cache-coherence protocols (Qadeer).

Examples include:

[edit] References

  • Mark D. Hill Multiprocessors Should Support Simple Memory Consistency Models.
  • Shaz Qadeer Verifying Sequential Consistency on Shared-Memory Multiprocessors by Model Checking.

[edit] Further reading

[edit] External links

Languages