Sobes.tech
Middle

Mi a CAP-tétel?

sobes.tech MI

Válasz az MI-től

A CAP-tétel (más néven Brewer-tétel) kimondja, hogy egy elosztott számítási rendszerben nem lehet egyszerre biztosítani:

  • Konzisztencia (Consistency): Minden csomópont ugyanazokat az adatokat látja ugyanabban a pillanatban. Minden olvasási művelet a legutóbb írt adatokat kapja.
  • Elérhetőség (Availability): Minden kérés nem üres választ kap, függetlenül más csomópontok állapotától. A rendszer mindig elérhető olvasási és írási műveletekre.
  • Partíciótűrés (Partition Tolerance): A rendszer működik tovább, még akkor is, ha a csomópontok közötti kommunikáció megszakad (hálózati partíciók).

Hálózati partíció ($P$) esetén a rendszernek választania kell a konzisztencia ($C$) és az elérhetőség ($A$) között.

  • CA rendszer: Feltételezi, hogy nincs hálózati partíció. Ennek bekövetkeztekor a rendszer vagy elérhetetlenné válik, vagy inkonzisztens lesz. Példák: klasszikus relációs adatbázisok szinkron replikációval egy helyi hálózaton.
  • CP rendszer: A konzisztenciát választja a rendelkezésre állás helyett hálózati partíció idején. Ha egy csomópont nem tud kapcsolatba lépni a többséggel, nem válaszol a kérésekre, hogy garantálja az adatok konzisztenciáját. Példák: Zookeeper, etcd, olyan elosztott rendszerek, amelyek konszenzus protokollokat, például Paxos vagy Raft használnak.
  • AP rendszer: A rendelkezésre állást választja a konzisztencia helyett hálózati partíció idején. A rendszer továbbra is válaszol a kérésekre, de elavult vagy konfliktusos adatokat szolgáltathat. A végső konzisztencia később elérhető. Példák: DynamoDB, Cassandra, MongoDB (alapértelmezés szerint néhány konfigurációban).

A CAP-tétel az elosztott adat tároló rendszerekre vonatkozik. Valós rendszerekben gyakran kompromisszumokat kell kötni, és a legmegfelelőbb modellt kell kiválasztani az alkalmazás konkrét követelményei szerint.