Consistency model
Encyclopedia
In computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

, consistency models are used in distributed systems
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

 like distributed shared memory
Distributed shared memory
Distributed Shared Memory , in Computer Architecture is a form of memory architecture where the memories can be addressed as one address space...

 systems or distributed data stores (such as a filesystems, database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

s, optimistic replication
Optimistic replication
Optimistic replication is a strategy for replication in which replicas are allowed to diverge.Traditional pessimistic replication systems try to guarantee from the beginning that all of the replicas are identical to each other, as if there was only a single copy of the data all along...

 systems or Web caching). 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 that preserves memory semantics. To hold to the contract, compilers may reorder some memory instructions, and library calls such as pthread_mutex_lock encapsulate required synchronization.

Verifying sequential consistency is undecidable
Undecidable problem
In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is impossible to construct a single algorithm that always leads to a correct yes-or-no answer....

 in general, even for finite-state cache-coherence protocols.

Consistency models define rules for the apparent order and visibility of updates, and it is a continuum
Continuum hypothesis
In mathematics, the continuum hypothesis is a hypothesis, advanced by Georg Cantor in 1874, about the possible sizes of infinite sets. It states:Establishing the truth or falsehood of the continuum hypothesis is the first of Hilbert's 23 problems presented in the year 1900...

 with tradeoffs.

Example

Assume that the following case occurs:
  • The row X is replicated on nodes M and N
  • The client A writes row X to node N
  • After a period of time t, client B reads row X from node M


The consistency model has to determine whether client B does see the write from client A or not.

Types

A non-exhaustive list of consistency models are
  • causal consistency
    Causal consistency
    Causal consistency is one of the consistency models used in the domain of the concurrent programming ....

  • delta consistency
    Delta consistency
    Delta consistency is one of the consistency models used in the domain of parallel programming, for example in distributed shared memory, distributed transactions, and Optimistic replication...

  • entry consistency
  • eventual consistency
    Eventual consistency
    Eventual consistency is one of the consistency models used in the domain of parallel programming, for example in distributed shared memory, distributed transactions, and optimistic replication, it means that given a sufficiently long period of time over which no changes are sent, all updates can be...

  • fork consistency
  • linearizability
    Linearizability
    In concurrent programming, an operation is atomic, linearizable, indivisible or uninterruptible if it appears to the rest of the system to occur instantaneously. Atomicity is a guarantee of isolation from concurrent processes...

     (also known as strict or atomic consistency)
  • one-copy serializability
  • PRAM consistency
    PRAM consistency
    PRAM consistency also known as FIFO consistency, or Processor consistency.All processes see memory writes from one process in the order they were issued from the process....

     (also known as FIFO consistency)
  • release consistency
    Release consistency
    Release consistency is one of the consistency models used in the domain of the concurrent programming ....

  • sequential consistency
    Sequential consistency
    Sequential consistency is one of the consistency models used in the domain of concurrent programming . It was first defined as the property that requires that ".....

  • serializability
    Serializability
    In concurrency control of databases, transaction processing , and various transactional applications , both centralized and distributed, a transaction schedule is serializable, has the serializability property, if its outcome In concurrency control of databases, transaction processing (transaction...

  • vector-field consistency
    Vector-field consistency
    Vector-Field ConsistencyDesignation coined by L. Veiga. is a consistency model for replicated data , initially described in a paper which was awarded the best-paper prize in the ACM/IFIP/Usenix Middleware Conference 2007...

  • weak consistency
    Weak consistency
    The name weak consistency may be used in two senses. In the first sense, strict and more popular, the weak consistency is one of the consistency models used in the domain of the concurrent programming The name weak consistency may be used in two senses. In the first sense, strict and more popular,...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK