Posts

Showing posts from June, 2018

The CAP Theorem

Image
The first explanation I heard about the CAP Theorem reduced it to " c onsistency, a vailability, network p artition tolerance: pick two out of three ". However, as catchy as this statement was, I discovered that it wasn't accurate. In fact, the CAP Theorem has been widely misunderstood and misused since it was named in 2000  and formalized in 2002 . In this blog post, I'll compile and clarify what I have learned from papers, blogs, books, and my distributed systems engineering class. C, A, and P  Let's define each of the letters before talking about the CAP theorem. Consistency Gilbert's and Lynch's 2002 paper considers only the linearizability consistency model . Linearizability is a guarantee on individual reads and writes of a single object. A total order on all operations must exist such that each operation appears to have executed instantly and atomically at some point between when it was called and when it sent back a response. Time constra