2 min to complete
The number of nodes that must acknowledge a read or write operation before it is considered successful.
For data to be successfully written or read back to the client, a sufficient number of nodes need to agree on the data’s correct state. Note that while you can set consistency levels for all operations (on the client-side), ScyllaDB allows each operation (each read or write) to have its own consistency level, a feature known as tunable consistency.
- CL of 1: Wait for a response from one replica node
- CL of ALL: Wait for a response from all replica nodes
- CL LOCAL_QUORUM: Wait for floor((#dc_replicas/2)+1), meaning that if a DC has 3 nodes replica in the cluster, the application will wait for a response from 2 replica nodes
- CL EACH_QUORUM: For multi DC, each DC must have a LOCAL_QUORUM. This is unsupported for reads.
- CL ALL: All replica nodes must respond. Provides the highest consistency but lowest availability.
Because data may have changed on a coordinator node, but it may not have yet been recorded and stored on all the required replicas, a ScyllaDB cluster offers eventual consistency. With eventual consistency, all of the replica nodes will eventually arrive at the same data state; operations may continue updating the database in the meantime.
More information about high availability, replication, and consistency can be found in this lesson.