Consistency model

Consistency model

In computer science, consistency models are used in distributed systems like distributed shared memory systems or distributed data stores (such as a filesystems, databases, optimistic replication 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.[1]

Verifying sequential consistency is undecidable in general, even for finite-state cache-coherence protocols.[2]

Consistency models define rules for the apparent order and visibility of updates, and it is a continuum with tradeoffs.[3]

Contents

Example

Assume that the following case occurs:[3]

  • 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

See also

References

  1. ^ Mark D. Hill (August 1998). "Multiprocessors Should Support Simple Memory Consistency Models". IEEE Computer 31 (8): pp.28–34. doi:10.1109/2.707614. 
  2. ^ Shaz Qadeer (August 2003). "Verifying Sequential Consistency on Shared-Memory Multiprocessors by Model Checking". IEEE Transactions on Parallel and Distributed Systems 14 (8): pp.730–741. doi:10.1109/TPDS.2003.1225053. 
  3. ^ a b Todd Lipcon (2009-06-11). "Design Patterns for Distributed Non-Relational Databases". http://static.last.fm/: last.fm. http://static.last.fm/johan/nosql-20090611/intro_nosql.pdf. Retrieved 2011-03-24. "A consistency model determines rules for visibility and apparent order of updates. Example: * Row X is replicated on nodes M and N * Client A writes row X to node N * Some period of time t elapses. * Client B reads row X from node M * Does client B see the write from client A? Consistency is a continuum with tradeoffs" 

Further reading

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Consistency (disambiguation) — Consistency can refer to: Consistency (negotiation), the psychological need to be consistent with prior acts and statements Consistency , an 1887 speech by Mark Twain The consistency criterion, a measure of a voting system requiring that where… …   Wikipedia

  • Consistency — For other uses, see Consistency (disambiguation). In logic, a consistent theory is one that does not contain a contradiction.[1] The lack of contradiction can be defined in either semantic or syntactic terms. The semantic definition states that a …   Wikipedia

  • Model transformation — A model transformation, in model driven engineering, is an automatable way of ensuring that a family of models is consistent, in a precise sense which the software engineer can define. The aim of using a model transformation is to save effort and …   Wikipedia

  • Model theory — This article is about the mathematical discipline. For the informal notion in other parts of mathematics and science, see Mathematical model. In mathematics, model theory is the study of (classes of) mathematical structures (e.g. groups, fields,… …   Wikipedia

  • Model audit — A model audit is the colloquial term for the tasks performed when conducting due diligence on a financial model, in order to eliminate spreadsheet error. (Also known as Model Review in some areas). A study in 1998 concluded that even MBA students …   Wikipedia

  • Model sheet — Not to be confused with ModelSheet Software LLC. In animation, a model sheet, also known as a character board, character sheet, character study or simply a study, is a document used to help standardize the appearance, poses, and gestures of an… …   Wikipedia

  • Model of Hierarchical Complexity — The model of hierarchical complexity is a framework for scoring how complex a behavior is. It quantifies the order of hierarchical complexity of a task based on mathematical principles of how the information is organized and of information… …   Wikipedia

  • Model transformation language — A model transformation language in systems and software engineering is a language for model transformation. Contents 1 Overview 2 Available transformation languages 3 See also 4 …   Wikipedia

  • Model (macroeconomics) — A model in macroeconomics is a logical, mathematical, and/or computational framework designed to describe the operation of a national or regional economy, and especially the dynamics of aggregate quantities such as the total amount of goods and… …   Wikipedia

  • model theory — The use of a model to test for the consistency of an axiomatized system is older than modern logic. Descartes s algebraic interpretation of Euclidean geometry provides a way of showing that if the theory of real numbers is consistent, so is the… …   Philosophy dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”