Accessibility in the CAP theorem refers to nodes that are on both sides of a partition, and not to the system as a whole.
In the CAP theorem, you are “available” if all hosts on both sides of the network partition can continue to accept read and update transactions. Most of our clients do not care about whether all hosts remain accessible in front of the network partition. Keep in mind that the database as a whole remains available during the network partition. Therefore, if the cluster replicated or shared data so that there was enough data on both sides of the partition to continue to serve requests, and smart enough to know which part of the partition should remain available and which should gracefully bow, then the database could remain accessible in front of the network partition, even if all hosts do not. What MarkLogic does in a cluster.
Between clusters, MarkLogic has many options for how close you absolutely agree. We use asynchronous replication to move data between clusters; therefore, where there is a network partition between clusters, the data may be incompatible between these clusters. You can control how long this delay limit will be such that you can configure it, and if you need absolute consistency between the clusters, we have ways to achieve this.
The bottom line is this:
- Clients mainly care that their databases or data services remain accessible, and not that any particular host remains available, so we focus on system availability and can ensure this without violating the CAP theorem.
- MarkLogic multi-cluster deployments can be configured to provide the right balance of consistency and availability over a network partition.
Hope this helps.
source share