You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Igor <ig...@4friends.od.ua> on 2013/02/26 14:40:39 UTC

please explain read path when key not in database

Hello!

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

        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. (SeeReadCallback
        <http://wiki.apache.org/cassandra/ReadCallback>, instantiated
        byStorageProxy <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!

Re: please explain read path when key not in database

Posted by aaron morton <aa...@thelastpickle.com>.
> This is my understanding from using cassandra for probably around 2 years
Sounds about right. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Developer
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 26/02/2013, at 7:43 AM, "Hiller, Dean" <De...@nrel.gov> wrote:

> 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!


Re: please explain read path when key not in database

Posted by "Hiller, Dean" <De...@nrel.gov>.
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!