Multinode Cassandra HA Guarantees
A multinode Cassandra cluster can generally be in one of three states:
All nodes are up.
Some nodes are down, but there is a quorum of up nodes, i.e., the number of nodes that are down is fewer than half the replication factor (RF).
Less than a quorum of the nodes are up.
In the case where all nodes are up, the entire Cassandra Key Value Service (KVS) API can be used. In the latter two cases, in order to guarantee consistency and correctness, usage of the KVS API is restricted as documented below.
A minority of nodes are down
The following behaviour is guaranteed when interacting with a Cassandra cluster with three nodes, RF three, and one node down. More generally, the following is the expected behaviour for a cluster that has nodes down, but can still always satisfy QUORUM requests (i.e. fewer than RF/2 nodes are down).
Cassandra KVS API Method |
Behaviour |
---|---|
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Throws |
|
Throws |
|
Throws |
|
Throws |
|
Throws |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Throws |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Throws |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Throws |
|
Throws |
|
Same as when all nodes are up. |
|
Same as when all nodes are up. |
|
Throws |
|
Throws |
Less than a quorum of nodes are up
All of the above operations should fail.
Warning
This behaviour has not been fully tested yet!