On Fri, Sep 19, 2014 at 4:53 PM, Jay Patel <pateljay3...@gmail.com> wrote:

>
> When coordinator fires indexed scan request to node 192.168.51.22, why
> don't it ask that node to check all of its (at least primary) ranges for
> the queried data, at once. Also, internally that node should be able to
> just do one scan through all of the ranges held by it, isn't it?
> (e.g. [min(-9223372036854775808), max(-9193352069377957523), and
> (max(-9136021049555745100), max(-8959555493872108621)], etc. ]
>
> Seems like it needs to query data in token order. So,
> min(-9223372036854775808), max(-*9193352069377957523*) on 192.168.51.22.
> But next range ((max(-*9193352069377957523*), max(-*9136021049555745100*)])
> is on 192.168.51.25 so fire query there. Then, next range  (max(-
> *9136021049555745100*), max(-8959555493872108621)] again on
> 192.168.51.22. Btw,, I'm not too sure regarding min/max or max/max in trace
> output.
>

The coordinator certainly could batch multiple range requests that are
going to the same replica.  It's an optimization that would primarily help
the empty table/high cardinality case, but you're welcome to open a
ticket.  3.0 is the earliest this would make it in.


>
> I found below comment in
> https://issues.apache.org/jira/browse/CASSANDRA-4858.
> "The problem is that we have to scan the nodes in token order so we dont
> break the existing API's, if we do so then we are sending a lot more
> requests and waiting for the response than the number of nodes. "
> Don't understand the restriction though - "don't break the existing API's".
>

I think he's just saying that we have to make sure we return results in
token order (and if there's a limit on the query, return the first N
results when listed in token order).


>
> With non-vnode, it only queries a particular node only one time..Btw, in
> the worst case, I understand secondary index query has to scan all the
> nodes in cluster sometime (empty table or high cardinality index?) but I
> don't understand why vnode makes it to scan the *same node *multiple
> times. If RF is 1, then also I see this behavior.
>
> >> Snippet from output1.txt attached earlier:
> Executing indexed scan for [min(-9223372036854775808),
> max(-9193352069377957523)] | 23:11:30,992 | 192.168.51.22 |
> Executing indexed scan for (max(-9193352069377957523),
> max(-9136021049555745100)] | 23:11:30,998 | 192.168.51.25 |
> Executing indexed scan for (max(-9136021049555745100),
> max(-8959555493872108621)] | 23:11:30,999 | 192.168.51.22 |
> Executing indexed scan for (max(-8959555493872108621),
> max(-8929774302283364912)] | 23:11:31,000 | 192.168.51.25 |
>

I'm not sure how your question here is different from the one above.




-- 
Tyler Hobbs
DataStax <http://datastax.com/>

Reply via email to