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."
  

Reply via email to