incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiller, Dean" <Dean.Hil...@nrel.gov>
Subject Re: please explain read path when key not in database
Date Tue, 26 Feb 2013 15:43:51 GMT
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!

Mime
View raw message