Release consistency

From Wikipedia, the free encyclopedia

Release consistency is one of the consistency models used in the domain of the concurrent programming (e.g in distributed shared memory, distributed transactions etc).

Systems of this kind are characterised by the existence of two special synchronisation operations, release and acquire. Before issuing a write to a memory object a node must acquire the object via a special operation, and later release it. Therefore the application that runs within the operation acquire and release constitutes the critical region. The system is said to provide release consistency, if all write operations by a certain node are seen by the other nodes after the former releases the object and before the latter acquire it.

There are two kinds of coherence protocols that implement release consistency:

  • eager, where all coherence actions are performed on release operations, and
  • lazy, where all coherence actions are delayed until after a subsequent acquire