Konzistence popisuje jak moc mají různé uzly stejný (nebo kompatibilní) pohled na data a stav systému.

Problém zajištění konzistence vzniká jako přímý a nevyhnutelný důsledek replikace.


Konzistence není binární (ano/ne), ale je to spektrum. Můžeme mít stav, který je:

  1. Silně konzistentní: Všechny uzly vidí přesně totéž ve stejný okamžik (chová se to jako jeden počítač).
  2. Slabě konzistentní: Uzly se mohou dočasně lišit, ale nakonec se shodnou.

Výběr toho, “jak moc” konzistentní stav potřebujeme, definují modely konzistence distribuovaného systému.


Silná konzistence (strong consistency)

Model, který se snaží nekonzistenci zcela eliminovat (nebo ji skrýt před uživatelem). Systém garantuje, že všechny uzly vidí ve stejný okamžik stejná data.

Nekonzistence

Nekonzistence je stav, kdy se data v různých replikách téhož systému liší. Není to nutně chyba, ale přirozená vlastnost distribuovaného systému v čase mezi zápisem a synchronizací.

[!warning] Riziko Pokud nekonzistence trvá příliš dlouho nebo není řízena, může vést k logickým chybám (např. výběr peněz z účtu, kde už nejsou, protože bankomat A nevěděl o výběru z bankomatu B).

Příčiny nekonzistence stavu

1. Neexistuje globální stav

[!note] Důsledek

Stav distribuovaného systému

[! note] Důsledek

Závěr

V distribuovaných systémech se tedy nevyhneme s nekonzistencí stavu systému. Perfektní konzistence je nemožná nebo extrémně drahá. Řešením jsou #Modely konzistence.