Linearizability
Linearizability requires concurrent operations on an object to behave as a legal sequential execution that preserves the real-time order of non-overlapping operations.
Each operation can be placed at a point between invocation and response. An overlapping write may finish before a read responds without having to precede that read in the legal order. Separate linearizable reads and writes do not make a client's read-modify-write sequence atomic. Persistence across failures needs an explicit recovery contract.
Relations
- related
- serializability, read-your-writes, monotonic-reads, compare-and-swap
Citations
- Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A Correctness Condition for Concurrent Objects. ACM TOPLAS 12(3), 1990, sections 2.2 and 3.3.
- etcd v3.6 API guarantees: durability, strict serializability and operation completion.
- Storage consistency: ordering is not a transaction or a durability promise