The name weak consistency can be used in two senses. In the first sense, strict and more popular, weak consistency is one of the
consistency model
In computer science, a consistency model specifies a contract between the programmer and a system, wherein the system guarantees that if the programmer follows the rules for operations on memory, memory will be consistent and the results of readi ...
s used in the domain of
concurrent programming
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), ...
(e.g. in
distributed shared memory
In computer science, distributed shared memory (DSM) is a form of memory architecture where physically separated memories can be addressed as a single shared address space. The term "shared" does not mean that there is a single centralized memor ...
,
distributed transactions A distributed transaction is a database transaction in which two or more network hosts are involved. Usually, hosts provide transactional resources, while the transaction manager is responsible for creating and managing a global transaction that enc ...
etc.).
A protocol is said to support weak consistency if:
#All accesses to synchronization variables are seen by all processes (or nodes, processors) in the same order (sequentially) - these are synchronization operations. Accesses to critical sections are seen sequentially.
#All other accesses may be seen in different order on different processes (or nodes, processors).
#The set of both read and write operations in between different synchronization operations is the same in each process.
Therefore, there can be no access to a synchronization variable if there are pending write operations. And there can not be any new read/write operation started if the system is performing any synchronization operation.
In the second, more general, sense weak consistency may be applied to any consistency model weaker than
sequential consistency
Sequential consistency is a consistency model used in the domain of concurrent computing (e.g. in distributed shared memory, distributed transactions, etc.).
It is the property that "... the result of any execution is the same as if the operatio ...
.
A stricter condition is
strong consistency
Strong consistency is one of the consistency models used in the domain of concurrent programming (e.g., in distributed shared memory, distributed transactions).
The protocol is said to support strong consistency if:
# All accesses are seen by all ...
, where parallel processes can observe only one consistent state.
References
* The original paper on weak ordering: M. Dubois, C. Scheurich and F. A. Briggs, ''Memory Access Buffering in Multiprocessors'', in Proceedings of 13th Annual
International Symposium on Computer Architecture
The International Symposium on Computer Architecture (ISCA) is an annual academic conference on computer architecture, generally viewed as the top-tier in the field. Association for Computing Machinery's Special Interest Group on Computer Archit ...
14, 2 (June 1986), 434-442.
*
Sarita V. Adve, Mark D. Hill,
Weak ordering - a new definition', in Proceedings of the 17th Annual
International Symposium on Computer Architecture
The International Symposium on Computer Architecture (ISCA) is an annual academic conference on computer architecture, generally viewed as the top-tier in the field. Association for Computing Machinery's Special Interest Group on Computer Archit ...
.
Consistency models
{{compu-eng-stub