Modely konzistence jsou formální dohody (smlouvy) o tom, jaká nekonzistence je povolená a jak se smí projevit.

Neříká jak to systém dělá, ale co musí být pravda.

Bez modelu konzistence nelze říct, zda je pozorované chování správné nebo chybné.


Princip

Definuje smlouvu (kontrakt) mezi distribuovaným datovým úložištěm (DS) a klientem.


Vztah mezi komunikačními modely a konzistencí v distribuovaných systémech

Model konzistence je cílový stav, komunikační model je prostředek, jak ho dosáhnout. Fyzikální vlastnosti komunikace limitují maximální dosažitelnou konzistenci.


Dělení modelů (Data-centric)

Modely seřazené od nejsilnějších (nejdražších) po nejslabší (nejrychlejší).

Silné modely (Strong consistency)

Snaží se simulovat chování jednoho počítače. Vyžadují synchronizaci (blokování).

Strict Consistency (striktní)

Sequential Consistency (Sekvenční)

[!NOTE] Rozdíl Linearizability vs. Sequential Linearizability řeší reálný čas (když já zavolám mobilem, ty to hned slyšíš). Sequential řeší jen shodu (je jedno, že zpráva přišla pozdě, hlavně že jsme ji všichni přečetli jako druhou v pořadí).


Slabé modely (weak consistency)

Obětují konzistenci pro rychlost a dostupnost (CAP theorem).

Causal Consistency (Kauzální)


Klientské záruky (Client-Centric Consistency)

Někdy server nedokáže garantovat globální konzistenci, ale může dát záruku konkrétnímu klientovi (Session guarantees). Hodí se pro mobilní uživatele, kteří se přepojují mezi replikami.