3 ms·
> This leads to three kinds of systems: CA, CP and AP, What is a distributed system that is CA? Can you build a distributed system which will never have a part
by rdtsc 10y ago
> This leads to three kinds of systems: CA, CP and AP,
What is a distributed system that is CA? Can you build a distributed system which will never have a partition.
- halflings 10y agoThey answer your question just two lines under the one you are quoting: > For distributed systems over a “wide area,” it's generally viewed that partitions are inevitable, although not necessarily common. If you believe that partitions are inevitable, any distributed system must be prepared to forfeit either consistency (AP) or availability (CP), which is not a choice anyone wants to make. In fact, the original point of the CAP theorem was to get designers to take this tradeoff seriously. But there are two important caveats: First, you only need to forfeit consistency or availability during an actual partition, and even then there are many mitigations. Second, the actual theorem is about 100% availability; a more interesting discussion is about the tradeoffs involved to achieve realistic high availability.
- rdtsc 10y ago> If you believe that partitions are inevitable, any distributed system How does that answer it? Are they implying that partitions will not happen if you don't believe in them?
- robryk 10y agoA CA system is not a system that doesn't have partitions, it's a system that works under the condition that there are no partitions (ie. it is a non-partition-resistant system).
- sudhirj 10y agoA memcache cluster might qualify. If there's a partition, just forget about the missing nodes. It's just a cache anyway.
- krenoten 10y agoThe system you describe would typically be referred to as AP, because it maintains availability in the presence of partitions.
- rdtsc 10y ago> , it's a system that works under the condition that there are no partitions But that is not a choice with distributed systems, unless as soon as a partition happens the system shuts down immediately. That is it effectively disappears and never re-appears again. But that's not a CA system then? Or saying that it is not partition resistant is also difficult because the system in case of a partition will do _something_. The typical choices is that it either responds to clients (trying to be AP) or it doesn't (trying to be CP). That is why I understand CA systems as equivalent to the belief that "partitions can't happen". Which I think is unrealistic.
- robryk 10y agoThis is a system which is guaranteed to be consistent and available as long as there are no partitions. If there are partitions, the system isn't guaranteed to be either. Yes, it's a pretty much useless system.
- tupshin 10y agoTrivially, by never allowing either half of a partition to make progress while the partition is in place. Since the CAP theorem, by itself, doesn't put a cap(oof) on latency, it is valid to consider a system CA, if it if always available to listen to requests while partitioned, but never able to fulfill them. This, of course, is effectively useless in practice, and is dependent on an infinite buffer of pending operations, etc. https://brooker.co.za/blog/2014/07/16/pacelc.html https://brooker.co.za/blog/2014/07/16/pacelc.html
- rdtsc 10y ago> Trivially, by never allowing either half of a partition to make progress while the partition is in place. Doesn't availability mean getting a response on success or failure. If during a partition there is no response on success of failure how is the system available? It seems re-writing a term like "x will happen" to "x will happen after an infinite timeout" should not be valid
- tupshin 10y agoIt does, but within what bounds? The CAP theorem doesn't specify. One could assume that it means before the partition is restored, but that is only one possible valid interpretation. The PACELC theorem, which is by no means the last word on the story, clarifies this well: https://en.wikipedia.org/wiki/PACELC_theorem https://en.wikipedia.org/wiki/PACELC_theorem "PACELC builds on the CAP theorem. Both theorems describe how distributed databases have limitations and tradeoffs regarding consistency, availability, and partition tolerance. PACELC however goes further and states that a trade-off also exists, this time between latency and consistency, even in absence of partitions, thus providing a more complete portrayal of the potential consistency tradeoffs for distributed systems." And I would take that argument one step further and say that latency and partitioning are effectively identical, and from the point of view of any given operation, it is impossible to say whether the system is in partitioned state until max lateny (timeout) has elapsed, because failure to make progress within timeout is the only meaningful definition of partion-induced unavailability.
- krenoten 10y ago