Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.
The "HintedHandoff" page has been changed by JonathanEllis. http://wiki.apache.org/cassandra/HintedHandoff?action=diff&rev1=2&rev2=3 -------------------------------------------------- Hinted handoff means that if a node that should receive a write is down, Cassandra will send that write to another node with a "hint" saying that when the destination node becomes available again, the write should be forwarded there. Cassandra uses hinted handoff as a way to (1) reduce the time required for a temporarily failed node to become consistent again with live ones and (2) provide extreme write availability when consistency is not required. - A hinted write is NOT sufficient to satify !ConsistencyLevel requirements. Take the simple example of a cluster of two nodes, A and B, and a replication factor of 1 (each key is stored on one node). Suppose node A is down while we write key K to it with !ConsistencyLevel.ONE. Then we must fail the write: recall from the [[API]] page that "if `W` + `R` > `ReplicationFactor`, where W is the number of nodes to block for on write, and R the number to block for on reads, you will have strongly consistent behavior; that is, readers will always see the most recent write." + A hinted write is NOT sufficient to count towards !ConsistencyLevel requirements of ONE, QUORUM, or ALL. Take the simple example of a cluster of two nodes, A and B, and a replication factor of 1 (each key is stored on one node). Suppose node A is down while we write key K to it with !ConsistencyLevel.ONE. Then we must fail the write: recall from the [[API]] page that "if `W` + `R` > `ReplicationFactor`, where W is the number of nodes to block for on write, and R the number to block for on reads, you will have strongly consistent behavior; that is, readers will always see the most recent write." - Thus if we write a hint to B and call the write good because it is written "somewhere," there is no way to read the data at any !ConsistencyLevel until A comes back up and B forwards the data to him, and only the lowest !ConsistencyLevel of ZERO will accept writes in this situation. + Thus if we write a hint to B and call the write good because it is written "somewhere," there is no way to read the data at any !ConsistencyLevel until A comes back up and B forwards the data to him. Historically, only the lowest !ConsistencyLevel of ZERO would accept writes in this situation; for 0.6, we added !ConsistencyLevel.ANY, meaning, "wait for a write to succeed anywhere, even a hinted write that isn't immediately readable."
