Consistencia y aislamiento

Lecturas linealizables, instantáneas entre rangos y la ventana de incertidumbre del reloj.

Un documento

Una escritura y una lectura de un documento son linealizables: una lectura que empieza después de que una escritura se confirmó la ve, aunque haya caídas, particiones o relojes desviados.

Varios rangos

Las transacciones y las lecturas snapshot leen una instantánea a una marca del reloj híbrido (HLC), que da a cada versión 8 bytes de milisegundos físicos y 4 de contador lógico.

La ventana de incertidumbre

Los relojes de dos nodos pueden diferir hasta 250 ms (cada uno a 125 ms o menos de la mediana). Si una lectura encuentra una versión dentro de esa ventana por delante de su marca, no sabe si ocurrió antes que ella, así que se reinicia a una marca posterior para verla. Nunca devuelve un resultado que podría contradecir el orden real.

Read concerns

local y available devuelven siempre datos confirmados por la mayoría; majority y snapshot también. Dentro de una transacción los tres leen la misma instantánea. Las sesiones causales garantizan que una sesión ve lo que ya escribió o leyó.