This is my understanding from using cassandra for probably around 2 
years….(though I still make mistakes sometimes)….

For CL.ONE read

Depending on the client, the client may go through one of it's known 
nodes(co-ordinating node) which goes to real node(clients like astyanax/hector 
read in the ring information and usually go direct so for CL_ONE, no 
co-ordination really needed).  The node it finally gets to may not have the 
data yet and will return no row while the other 2 node might have data.

For CL.QUOROM read and RF=3
Client goes to the node with data(again depending on client) and that node 
sends off a request to one of the other 2.  Let's say A does not have row yet, 
but B has row, comparison results and latest wins and a repair for that row is 
kicked off to get all nodes in sync of that row.

If local node responsible for key replied that it have no data for this key - 
will coordinator send digest commands?

IT looks like CL_ONE does trigger a read repair according to this doc (found 
googling CL_ONE read repair cassandra)

http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/CL-ONE-reads-RR-badness-threshold-interaction-td6247418.html

http://wiki.apache.org/cassandra/ReadRepair

Later,
Dean

Explain please, how this work when I request for key which is not in database


 *   The closest node (as determined by proximity sorting as described above) 
will be sent a command to perform an actual data read (i.e., return data to the 
co-ordinating node).
 *   As required by consistency level, additional nodes may be sent digest 
commands, asking them to perform the read locally but send back the digest only.
    *   For example, at replication factor 3 a read at consistency level QUORUM 
would require one digest read in additional to the data read sent to the 
closest node. (See ReadCallback<http://wiki.apache.org/cassandra/ReadCallback>, 
instantiated by StorageProxy<http://wiki.apache.org/cassandra/StorageProxy>)

I have multi-DC with NetworkTopologyStrategy and RF:1 per datacenter, and reads 
are at consitency level ONE. If local node responsible for key replied that it 
have no data for this key - will coordinator send digest commands?

Thanks!

Reply via email to