Consistency and isolation

Linearizable reads, snapshots across ranges and the clock uncertainty window.

One document

A write and a read of one document are linearizable: a read that starts after a write was confirmed sees it, even with crashes, partitions or drifting clocks.

Several ranges

Transactions and snapshot reads read a snapshot at a timestamp of the hybrid logical clock (HLC), which gives each version 8 bytes of physical milliseconds and 4 of logical counter.

The uncertainty window

The clocks of two nodes can differ by up to 250 ms (each within 125 ms of the median). If a read finds a version inside that window ahead of its timestamp, it cannot know whether it happened before it, so it restarts at a later timestamp to see it. It never returns a result that could contradict the real order.

Read concerns

local and available always return data confirmed by a majority; so do majority and snapshot. Inside a transaction all three read the same snapshot. Causal sessions guarantee that a session sees what it already wrote or read.