jzhao.xyz

Search

Search IconIcon to open search

Linearizability

Last updated Apr 3, 2023 Edit Source

Defined as consistency in the face of concurrent reads/writes.

Informally: every operation takes effect atomically sometime after it started and before it finished. All operations behave as if executed on a single copy of the data

Not to be confused with serializability: transactions having the same effect as if they were run in some serial order. Also contrasting with causal relationships, linearizability is defined in terms of real-time whereas causal is defined in terms of message sending and receiving.

The consequence/desired property of linearizability is that every operation returns an “up-to-date” value, sometimes called “strong consistency”

We can guarantee linearizability of get (quorum read + read repair) and set (blind write to quorum). If events overlap, either order could happen and is ok.

Not without downsides