Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One thing that I've always wondered about: Is the CAP theorem really making a non-trivial claim?

If a distributed system is consistent and available, it must return the last written value, and successfully do this all the time. How can it do this if the system is partitioned, and the node receiving the last write was unable to propagate this to other nodes?

The proof described in this website appears to confirm this. Am I missing something?



You're not missing something. In the original paper the proof is half a page long (and still worth a read, very low investment, decent payoff). I think the value of the CAP theorem is not so much in its statement (CP or AP, choose one), but rather in its proof. It helps you cook up similar arguments/reasonings for more interesting situations and constraints.


I think it’s also very interesting to point out that very often people try to choose all three but end up choosing only one inadvertently.

We should also point out that it’s not a foregone conclusion that you will even be able to achieve two of three.

CAP theorem really is a best case scenario.


Long before the CAP theorem paper I remember learning the same thing in the context of routing protocols like BGP and it being an "aha moment". It really helped me understand that there is no single version of the state of distributed systems and that it is all local and a matter of perspective under a partition. When the paper came out I remember thinking how trivial and obvious the conclusion was, and it confused me that it was getting attention ... but in retrospect the reformulation and acronym helped bring understanding to a far broader audience, especially software people. That's really good impact and effectiveness and I wish more academic papers were focused on this.


> How can it do this if the system is partitioned, and the node receiving the last write was unable to propagate this to other nodes?

I think this is pretty spot on. You could suggest a workaround that a write must have reached a quorum of nodes before it can be considered 'written'. But then you can just make another hypothetical and find a new problem with that solution.

> Is the CAP theorem really making a non-trivial claim?

People still claim to beat it every now and then: https://news.ycombinator.com/item?id=39676493




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: