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.