Feb. 16th, 2016

109: (animated-1)
For the last 8 years I have been telling people: "CAP is misleading", "don't use CAP terms and definitions", "just forget about it, it's useless". Suddenly, today I stumble on relatively new article on the topic. I don't agree with author on all points he makes (like, why is that he thinks mvcc is not linearizable?), but most points are right on.

The CAP theorem is too simplistic and too widely misunderstood to be of much use for characterizing systems. Therefore I ask that we retire all references to the CAP theorem, stop talking about the CAP theorem, and put the poor thing to rest. Instead, we should use more precise terminology to reason about our trade-offs. (Yes, I realize the irony of writing a blog post about the very topic that I am asking people to stop writing about).

Many systems are neither consistent nor available under the CAP theorem’s definitions. However, I’ve never heard anyone call their system just “P”, presumably because it looks bad. But it’s not bad – it may be a perfectly reasonable design, it just doesn’t fit one of the two CP/AP buckets.

Even though most software doesn’t neatly fit one of those two buckets, people try to shoehorn software into one of the two buckets anyway, thereby inevitably changing the meaning of “consistency” or “availability” to whatever definition suits them. Unfortunately, if the meaning of the words is changed, the CAP theorem no longer applies, and thus the CP/AP distinction is rendered completely meaningless.

Whatever you do, please stop talking about CP and AP, because they just don’t make any sense.



109: (Default)

December 2016

    1 23

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags