JEPSEN

Monotonic Reads

Monotonic reads ensures that if a process performs read r1, then r2, then r2 cannot observe a state prior to the writes which were reflected in r1; intuitively, reads cannot go backwards.

Monotonic reads does not apply to operations performed by different processes, only reads by the same process.

Monotonic reads can be totally available: even during a network partition, all nodes can make progress.

Formally

Viotti and Vukolić define monotonic reads in terms of a session order (the order of operations performed by the same process) and a visibility order (which writes are visible to which reads). For all operations a, b, and c, where b and c are reads, if a is visible to b, and b is executed prior to, and by the same process as c, then a must be visible to c.