430 likes | 988 Views
CAP Theorem. Justin DeBrabant. Properties of Distributed Systems. Consistency all nodes have up-to-date view of data Availability every request receives a response Partition Tolerance system will continue to function if partitions are isolated from each other
E N D
CAP Theorem Justin DeBrabant CIS 570 - Advanced Systems - Fall 2013
Properties of Distributed Systems • Consistency • all nodes have up-to-date view of data • Availability • every request receives a response • Partition Tolerance • system will continue to function if partitions are isolated from each other • Question: Is there a tradeoff here? CIS 570 - Advanced Systems - Fall 2013
ACID • Atomicity • all or nothing • Consistency • data is always in a valid state • Isolation • concurrently executing transactions are isolated • Durability • once committed, changes made by transaction are permanent CIS 570 - Advanced Systems - Fall 2013
BASE • Basically Available Soft-state Eventual Consistency • Forfeits the “C” and “I” of ACID in return for availability • most NoSQL systems provide BASE instead of ACID guarantees CIS 570 - Advanced Systems - Fall 2013
ACID vs. BASE • ACID • Focuses on consistency and isolation • BASE • weak consistency • data can be stale • availability first • simpler implementation • faster • is this always true? CIS 570 - Advanced Systems - Fall 2013
CAP Theorem • “At most two.” • you can have at most two of the CAP properties for any shared data system • Disclaimer: • some question the assumptions used to prove the “theorem” • thoughts? CIS 570 - Advanced Systems - Fall 2013
Consistency + Availability • Give up partitions • Characteristics • two-phase commit • cache validation protocols • Example • single-site databases CIS 570 - Advanced Systems - Fall 2013
Consistency + Partitions • Give up availability • Characteristics • pessimistic locking • Example • distributed databases CIS 570 - Advanced Systems - Fall 2013
Availability + Partitions • Give up consistency • Characteristics • optimistic concurrency control • conflict resolution protocols • Example • web caching • DNS • NoSQL systems CIS 570 - Advanced Systems - Fall 2013
Take-Homes • In real-world systems, there are (probably) tradeoffs • Which do you tradeoff? • depends on… • workload • data • users • requires a deep understanding of the choices available • In reality, systems all along this spectrum are useful in different ways CIS 570 - Advanced Systems - Fall 2013
Questions? CIS 570 - Advanced Systems - Fall 2013