Sobes.tech
Middle+

V čom spočíva zmysel teoremu CAP?

sobes.tech AI

Odpoveď od AI

Veta CAP (Konzistencia, Dostupnosť, Odolnosť voči rozdeleniu siete) tvrdí, že v distribuovanom systéme je možné súčasne zabezpečiť iba dve zo štyroch vlastností:

  • Konzistencia (Consistency): Všetky uzly vidia rovnaké údaje v rovnakom čase. Ak sú údaje na jednom uzle zmenené, táto zmena sa okamžite prejaví na všetkých ostatných.
  • Dostupnosť (Availability): Systém garantuje, že každý požiadavok dostane odpoveď (bez chýb). Akýkoľvek funkčný uzol môže spracovávať požiadavky.
  • Odolnosť voči rozdeleniu siete (Partition Tolerance): Systém pokračuje v prevádzke, aj keď kvôli sieťovým problémom dôjde k rozdeleniu na niekoľko izolovaných klastrov, a uzly nemôžu medzi sebou komunikovať.

Pri sieťovom rozdelení (Partition Tolerance) musí systém vybrať medzi konzistenciou a dostupnosťou:

  • CP systém: Uprednostňuje Konzistenciu (Consistency) pred Dostupnosťou (Availability). Počas rozdelenia môže systém byť nedostupný, aby zabezpečil, že všetky dostupné uzly vidia konzistentné údaje. Žiadosti o zápis môžu byť zamietnuté.
  • AP systém: Uprednostňuje Dostupnosť (Availability) pred Konzistenciou (Consistency). Počas rozdelenia systém zostáva dostupný, ale údaje môžu byť nekonzistentné medzi časťami. Po vyriešení rozdelenia je potrebné údaje synchronizovať.
  • CA systém: Teoreticky existuje, ale nemôže existovať za reálnych sieťových podmienok, kde sú rozdelenia nevyhnutné. V distribuovanom systéme je potrebné vždy brať do úvahy Odolnosť voči rozdeleniu.

Veta CAP nehovorí, že systém nemôže byť súčasne konzistentný a dostupný bez rozdelení. Platí najmä v čase sieťového rozdelenia.

Voľba medzi Konzistenciou a Dostupnosťou za podmienok Odolnosti voči rozdeleniu závisí od požiadaviek systému:

  • Bankové systémy, kde je dôležitá presnosť údajov, často volia CP.
  • Sociálne siete alebo online obchody, kde je dôležitá nepretržitá dostupnosť, aj s určitým oneskorením synchronizácie údajov, často volia AP.