Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.
The "API" page has been changed by jeremyhanna. The comment on this change is: Updating the read/write consistency tables to be current for 0.7. http://wiki.apache.org/cassandra/API?action=diff&rev1=12&rev2=13 -------------------------------------------------- ==== Write ==== ||'''Level''' ||'''Behavior''' || - ||`ZERO` ||Ensure nothing. A write happens asynchronously in background || + ||`ZERO` ||Ensure nothing. A write happens asynchronously in background. Until [[https://issues.apache.org/jira/browse/CASSANDRA-685|CASSANDRA-685]] is fixed: If too many of these queue up, buffers will explode and bad things will happen. || - ||`ANY` ||Ensure that the write has been written to at least 1 node, including hinted recipients. || + ||`ANY` ||(Requires 0.6) Ensure that the write has been written to at least 1 node, including HintedHandoff recipients. || - ||`ONE` ||Ensure that the write has been written to at least 1 node's commit log and memory table before responding to the client. || + ||`ONE` ||Ensure that the write has been written to at least 1 replica's commit log and memory table before responding to the client. || - ||`QUORUM` ||Ensure that the write has been written to `<ReplicationFactor> / 2 + 1` nodes before responding to the client. || + ||`QUORUM` ||Ensure that the write has been written to `N / 2 + 1` replicas before responding to the client. || + ||`LOCAL_QUORUM` ||Ensure that the write has been written to <ReplicationFactor> / 2 + 1 nodes, within the local datacenter (requires NetworkTopologyStrategy) || + ||`EACH_QUORUM` ||Ensure that the write has been written to <ReplicationFactor> / 2 + 1 nodes in each datacenter (requires NetworkTopologyStrategy) || - ||`ALL` ||Ensure that the write is written to all `<ReplicationFactor>` nodes before responding to the client. Any unresponsive nodes will fail the operation. || + ||`ALL` ||Ensure that the write is written to all `N` replicas before responding to the client. Any unresponsive replicas will fail the operation. || ==== Read ==== ||'''Level''' ||'''Behavior''' || ||`ZERO` ||Not supported, because it doesn't make sense. || ||`ANY` ||Not supported. You probably want ONE instead. || - ||`ONE` ||Will return the record returned by the first node to respond. A consistency check is always done in a background thread to fix any consistency issues when `ConsistencyLevel.ONE` is used. This means subsequent calls will have correct data even if the initial read gets an older value. (This is called `read repair`.) || + ||`ONE` ||Will return the record returned by the first replica to respond. A consistency check is always done in a background thread to fix any consistency issues when `ConsistencyLevel.ONE` is used. This means subsequent calls will have correct data even if the initial read gets an older value. (This is called ReadRepair) || - ||`QUORUM` ||Will query all nodes and return the record with the most recent timestamp once it has at least a majority of replicas reported. Again, the remaining replicas will be checked in the background. || + ||`QUORUM` ||Will query all replicas and return the record with the most recent timestamp once it has at least a majority of replicas (`N / 2 + 1`) reported. Again, the remaining replicas will be checked in the background. || + ||`LOCAL_QUORUM` ||Returns the record with the most recent timestamp once a majority of replicas within the local datacenter have replied. || + ||`EACH_QUORUM` ||Returns the record with the most recent timestamp once a majority of replicas within each datacenter have replied. || - ||`ALL` ||Will query all nodes and return the record with the most recent timestamp once all nodes have replied. Any unresponsive nodes will fail the operation. || + ||`ALL` ||Will query all replicas and return the record with the most recent timestamp once all replicas have replied. Any unresponsive replicas will fail the operation. || - '''Note: '''Different language toolkits may have their own Consistency Level defaults as well. To ensure the desired Consistency Level, you should always explicitly set the Consistency Level.