> 1. When a write request is received, it is written to the base CF and > secondary index to secondary (hidden) CF. If this right, will the secondary > index be written local the node or will it follow RP/OPP to write to nodes. it's local. If an index is to be updated the previous column values from be read from the primary CF so they can be deleted from the secondary index CF before inserting the new values.
> 2. When a coordinator receives a read request with say predicate x=y where > column x is the secondary index, how does the coordinator query relevant > node(s)? How does it avoid sending it to all nodes if it is locally indexed? When you ask for x=y the coordinator has no idea the rows for that query exist in the cluster. If you ask at CL ONE it only does a local read. If you ask at a higher CL it asks CL nodes for each TokenRange in the cluster. Or for a restricted token range if you have a key restriction in the query. > If there is any article/blog that can help understand this better, please let > me know. I think this is still mostly relevant http://www.datastax.com/docs/0.7/data_model/secondary_indexes Cheers ----------------- Aaron Morton Freelance Developer @aaronmorton http://www.thelastpickle.com On 6/09/2012, at 5:32 PM, Venkat Rama <venkata.s.r...@gmail.com> wrote: > Hi All, > > I am a new bee to Cassandra and trying to understand how secondary indexes > work. I have been going over the discussion on > https://issues.apache.org/jira/browse/CASSANDRA-749 about local secondary > indexes. And interesting question on > http://www.mail-archive.com/user@cassandra.apache.org/msg16966.html. The > discussion seems to assume that most common uses cases are ones with range > queries. Is this right? > > I am trying to understand the low cardinality reasoning and how the read gets > executed. I have following questions, hoping i can explain my question well > :) > > 1. When a write request is received, it is written to the base CF and > secondary index to secondary (hidden) CF. If this right, will the secondary > index be written local the node or will it follow RP/OPP to write to nodes. > 2. When a coordinator receives a read request with say predicate x=y where > column x is the secondary index, how does the coordinator query relevant > node(s)? How does it avoid sending it to all nodes if it is locally indexed? > > If there is any article/blog that can help understand this better, please let > me know. > > Thanks again in advance. > > VR >