cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Cassandra Wiki] Update of "HintedHandoff" by JonathanEllis
Date Wed, 06 Jan 2010 21:32:00 GMT
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.


New page:
Cassandra provides hinted handoff as a way to (a) provide extreme write availability when
consistency is not required and (b) to reduce the time required for a temporarily failed node
to become consistent again with live ones.

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.

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

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.

View raw message