4 ms·
Probably because there isn't much use to it, as with , such as an eventual consistency data store not being CA, CP, or AP. there is nothing to argue with. He ma
by stonemetal 12y ago
Probably because there isn't much use to it, as with , such as an eventual consistency data store not being CA, CP, or AP. there is nothing to argue with. He makes the assertion but offers no reasoning to support his claim.
For an existence proof of things he claims doesn't exist consider Cassandra. It is eventually consistent, and you can configure it to be each of those things he says can't happen by tuning the read, write consistency. For CA choose all, CP choose quorum, for AP choose one. QED.
- dsp1234 12y agoFor CA choose all My understanding is that you can't "choose" CA, because partitions can never be entirely eliminated. If CA was really an option, who wouldn't pick it? So if Cassandra is actually able to do that, then can you expand a little more on how it accomplishes that?
- henrikschroder 12y agoCA means you're not choosing P, which means your system does not have partition tolerance, and that's exactly what ALL does in Cassandra. If any replica is unavailable, the operation fails, and your application suffers.
- saurik 12y agoThis is CP: you have chosen to sacrifice availability by making operations fail when replicas cannot be contacted due to a partition. The concept of "partition tolerance" ends up heavily overlapping with the concept of "availability" to the point where trying to make tradeoffs between the two without sacrificing consistency is essentially nonsensical. As put by Coda Hale: "You Can't Sacrifice Partition Tolerence". http://codahale.com/you-cant-sacrifice-partition-tolerance/ http://codahale.com/you-cant-sacrifice-partition-tolerance/ (Sadly, Coda deferred to someone important after writing this article, someone whom I don't think bothered to think through how much more beautiful Coda's explanation of a "partition" is than the AFAICT impossible-to-discern one that supposedly was being used in the original paper :/. I frankly think the final "update" to the article should be ignored. FWIW, in the first "update", it is pointed out that Eric Brewer actually have a very positive shout-out to Coda's article.)
- henrikschroder 11y agoAh, I see, I misunderstood Availability, I assumed that returning an error would count.
- nkeywal 11y ago> I frankly think the final "update" to the article should be ignored. Coda updated his post just because he was wrong on his definition of partition. Stonebraker pointed out: "You simply failover to a replica in a transactionally consistent way. Notably, at least Tandem and Vertica have been doing exactly this for years. Therefore, considering a node failure as a partition results in an obviously inappropriate CAP theorem conclusion."
- stonemetal 11y agoI said we can build a setup that is not tolerant of network partitions and was CA when it was functioning. I didn't say we could build a system that had no network partitions. P is how well it tolerates network partitions, not whether or not it experiences them.
- nkeywal 11y agoThis post looks at the application as a whole, not only the datastore. But for an eventually consistent big data store, AP is not possible. See http://blog.thislongrun.com/2015/04/cap-availability-high-availability-and_16.html http://blog.thislongrun.com/2015/04/cap-availability-high-av...