Transcript CAP
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 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