CAP-teoremet (Consistency, Availability, Partition tolerance)
It A · STX · A-niveau · Databaser og datamodellering
💻 CAP-teoremet (Consistency, Availability, Partition tolerance)
CAP-teoremet (Eric Brewer 2000, formelt bevist 2002 af Gilbert & Lynch): et distribueret system kan kun garantere TO ud af tre egenskaber.
C — Consistency: alle noder ser samme data på samme tid. Læsning får altid den seneste skrivning.
A — Availability: hvert request får et svar (også selvom det er gammelt).
P — Partition tolerance: systemet fortsætter med at fungere selvom netværk-forbindelser mellem noder fejler.
Praktisk betydning: i den virkelige verden ER netværks-partitioner uundgåelige (P er givet) — så valget er reelt mellem CP (consistency + partition tolerance, taber availability) og AP (availability + partition tolerance, taber consistency).
CP-eksempler: MongoDB (ved standard-konfiguration), HBase, Redis, banktransaktioner. Stærk consistency, men kan blive utilgængelige ved netværksfejl.
AP-eksempler: Cassandra, DynamoDB, CouchDB. Eventual consistency — data kan være midlertidigt forkert, men systemet er altid tilgængeligt. CA (uden P) er kun teoretisk — kun ét-node-systemer har dette. PACELC-teoremet (Daniel Abadi 2010) udvider: hvis Partition (P) sker, vælg mellem A og C. ELSE (E) når systemet er normalt, vælg mellem Latency (L) og Consistency (C).
BASE vs. ACID: BASE = Basically Available, Soft state, Eventually consistent — NoSQL-tilgang. ACID = Atomicity, Consistency, Isolation, Durability — SQL-transaktion.
Anvendelse
vælg database baseret på applikationskrav. Bank → CP/ACID. Social media feed → AP/BASE.
Læringsmål
- Redegøre for CAP-teoremets tre egenskaber
- Forklare hvorfor en distribueret database kun kan garantere to af de tre
- Give eksempler på databaser der prioriterer forskellige dele af CAP
Sådan kan du arbejde med emnet
- Forklar CAP-teoremet og giv et eksempel på et system, der vælger AP frem for CP
- Beskriv, hvad der sker i et distribueret system, når et netværkspartition opstår
- Diskutér, om CAP-teoremet altid er relevant, eller om det kun gælder i bestemte systemtyper
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis