3 ms·
> slapping a fancy name on this concept is a justification for giving up consistency (even when the network and all servers are fully functional) to retain avai
by zzzcpan 8y ago
> slapping a fancy name on this concept is a justification for giving up consistency (even when the network and all servers are fully functional) to retain availability
This is a misconception. AP databases are not supposed to give up consistency, just not wait for all nodes to see updates. That's it. Consistency is still there, nodes resync, users always see their own updates and all that.
- he0001 8y agoSo then its CAP not AP? CAP was about you can’t have them all?
- zzzcpan 8y agoNo, it's still AP, it's just CAP consistency is very specific thing and you can't generalize it into "giving up consistency". AP systems don't give up consistency, they just don't explicitly wait for it.
- he0001 8y agoThen you are saying that all the trouble Spanner goes through to actually be consistent is not needed? And by saying a AP system can be “consistent” there’s no need for a product as Spanner. Consistency is obviously a timing problem. Something that is not consistent at some time will not be consistent since it will be inconsistent at that time.
- almostdeadguy 8y agoCAP consistency is linearizability, so if what you mean is there are other models of consistency available to "AP systems" (kind of hate the framing that these are binary features of a distributed system rather than a huge space of design choices, but anyways), then yes that's true. But AP systems don't always guarantee things like read-your-own-write consistency models, and not all conflicts that occur during a partition can be resolved in many of these databases.
- zzzcpan 8y agoSure. But it's kind of is a huge space of design choices (https://jepsen.io/consistency https://jepsen.io/consistency), so it's not ok to claim you give up consistency with any of them.
- glic3rinu 8y agoThe C in there is for "Strong Consistency"; CAP allows for lessers forms of consistency, like "Eventual Consistency", without giving up on Availability.
- he0001 8y agoWell yes but that’s not what we are talking about here. And “eventual consistency” is not “consistency”. And I would argue that “eventual consistency” is not consistent since it can result in fake states since it’s not consistent.
- jules 8y agoConsistency in the CAP sense has a precise meaning: all reads see all completed writes. That is, if the database has told some client that their write succeeded, then it is not allowed to still serve other clients the old data. Inconsistency in the CAP sense may also cause inconsistency in the sense that you mean, for instance if two transactions are simultaneously accepted, but each transaction violates the precondition of the other. In a consistent database one of the transactions will see the result of the other transaction and fail, whereas a DB without consistency may accept both transactions and end up in a semantically incorrect state.