Sobes.tech
Middle

Co je to věta CAP?

sobes.tech AI

Odpověď od AI

Věta CAP (také známá jako Brewerova věta) říká, že v distribuovaném výpočetním systému není možné současně zajistit:

  • Konzistenci (Consistency): Všechny uzly vidí stejné údaje ve stejnou dobu. Jakákoli operace čtení získá nejnovější zapsaná data.
  • Dostupnost (Availability): Každý požadavek obdrží ne-prázdnou odpověď, bez ohledu na stav ostatních uzlů. Systém je vždy dostupný pro operace čtení a zápisu.
  • Toleranci vůči rozdělení sítě (Partition Tolerance): Systém pokračuje v provozu i při ztrátě spojení mezi uzly (síťové rozdělení).

Za podmínek síťového rozdělení ($P$) musí systém vybírat mezi konzistencí ($C$) a dostupností ($A$).

  • CA systém: Předpokládá, že nedochází k síťovým rozdělením. Pokud k nim dojde, systém se stává nedostupným nebo nekonzistentním. Příklady: klasické relační databáze s synchronní replikací v rámci lokální sítě.
  • CP systém: Obětuje dostupnost ve prospěch konzistence během síťového rozdělení. Pokud uzel nemůže komunikovat s většinou, přestane odpovídat na požadavky, aby zajistil konzistenci dat. Příklady: Zookeeper, etcd, distribuované systémy používající protokoly konsensu jako Paxos nebo Raft.
  • AP systém: Obětuje konzistenci ve prospěch dostupnosti během síťového rozdělení. Systém pokračuje v odpovídání na požadavky, ale může poskytovat zastaralá nebo konfliktní data. Později je dosažena konečná konzistence. Příklady: DynamoDB, Cassandra, MongoDB (výchozí v některých konfiguracích).

Věta CAP se vztahuje na distribuované systémy ukládání dat. V reálných systémech je často nutné dělat kompromisy a vybírat model, který nejlépe vyhovuje konkrétním požadavkům aplikace.