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

Having never seen this theorem before, it seems so trivial that it's completely useless. If you have no guarantee of having connected systems, then of course you can't always have consistency between them if they're required to answer all requests. Am I missing something here? What are the applications of this idea, beyond assigning a name to a triviality?


The immediate application of it is that when you choose a DB, you should be able to tell if it's either CP or AP. The field is full of subtleties (eg Network is not 100% reliable so no system should be CA - it's way subtler but that is the gist of it. I'm no expert btw).

Lots of DB vendors have tried to circumvent the therorem by introducing their own concepts or stretching the definitions. "We can beat the CAP theorem"


is CA even possible in a distributed system though? I mean, it’s not like “the network never fails” is a design decision you’re allowed to make (short of removing the network altogether and therefore not being a distributed system at all)


That's what Google spanner is claiming, that Spanner is Consistent and highly-Available (nine fives, or 99.99999% of the time available), which "in practice" they say is "CA".


From the perspective of the CAP theorem, Spanner is unquestionably a CP system, as the original paper [1] makes clear. (It relies on Paxos to elect leaders, and Paxos chooses consistency over availability.)

The "CA in practice" claims are purely marketing.

[1]: https://storage.googleapis.com/pub-tools-public-publication-...


It would be nice to have an overview of existing/possible workarounds.


The point is that eventually it's found out that there aren't any. They're all snake oil.

Usually companies find this out the hard way, with catastrophic loss of business data.


What about partial partitions, let's say you have 7 nodes, and 4 of them can't see the other 3, while the client can see all of them?

There are systems tolerant to these partitions (see PAXOS)


Your definition of tolerant is incompatible with availability from CAP. The Paxos 3/7 minority in your example can't make progress when partitioned from the other 4 machines.




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

Search: