Sobes.tech
Middle

Čo je to CAP veta?

sobes.tech AI

Odpoveď od AI

Veta CAP (tiež známa ako Brewerova veta) hovorí, že v distribuovanom výpočtovom systéme nie je možné súčasne zabezpečiť:

  • Konzistentnosť (Consistency): Všetky uzly vidia rovnaké údaje v rovnakom čase. Každá operácia čítania získa najnovšie zapísané údaje.
  • Dostupnosť (Availability): Každá požiadavka dostane ne-prázdnu odpoveď, bez ohľadu na stav ostatných uzlov. Systém je vždy dostupný na operácie čítania a zápisu.
  • Tolerancia rozdelenia siete (Partition Tolerance): Systém pokračuje v prevádzke aj pri strate spojenia medzi uzlami (sieťové rozdelenia).

Za podmienok sieťového rozdelenia ($P$) musí systém vybrať medzi konzistenciou ($C$) a dostupnosťou ($A$).

  • CA systém: Predpokladá, že nedochádza k sieťovým rozdeleniam. Pri ich výskyte sa systém stáva buď nedostupným, alebo nekonzistentným. Príklady: klasické relačné databázy s synchronnou replikáciou v rámci lokálnej siete.
  • CP systém: Obetuje dostupnosť v prospech konzistencie počas sieťového rozdelenia. Ak uzol nemôže komunikovať s väčšinou, prestane odpovedať na požiadavky, aby zabezpečil konzistenciu dát. Príklady: Zookeeper, etcd, distribuované systémy používajúce protokoly konsenzu ako Paxos alebo Raft.
  • AP systém: Obetuje konzistenciu v prospech dostupnosti počas sieťového rozdelenia. Systém pokračuje v odpovedaní na požiadavky, ale môže poskytovať zastarané alebo konfliktujúce údaje. Neskôr je dosiahnutá konečná konzistencia. Príklady: DynamoDB, Cassandra, MongoDB (štandardne v niektorých konfiguráciách).

Veta CAP sa vzťahuje na distribuované systémy ukladania dát. V reálnych systémoch je často potrebné robiť kompromisy a vybrať model, ktorý najlepšie vyhovuje špecifickým požiadavkám aplikácie.