[ 
https://issues.apache.org/jira/browse/CASSANDRA-1600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13011139#comment-13011139
 ] 

Sylvain Lebresne commented on CASSANDRA-1600:
---------------------------------------------

Remarks/questions:
    * In the thrift API, IndexClause should be deprecated too.
    * I believe CASSANDRA-1034 should avoid the start_key and end_key in 
RangeSliceCommand (since it preserves the keys in ranges) and thus in the 
indexed iterator.
    * I think there is a bug with the handling of end_key in getIndexedIterator 
with wrapped ranges. If the requested range is wrapped, and a node range r is 
before start_key but still in the [start_key, end_key] range (that is, r is 
before end_key too), then we will query the index with a slice from start_key 
to EMPTY_BB. But for that node that will never return anything, even though it 
can very well have rows in the requested range. I actually think that 
CASSANDRA-1034 would fix that too, since we'll use the range here instead of 
[start_key, end_key] and getRestrictedRange will have taken care of this 
problem for us.
    * We should put EMPTY_FILTER_CLAUSE in FBUtilities and use it for 
getRangeSliceUnfiltered too. And if we remove the {start|end}_key from 
RangeSliceCommand, we could use the empty filter clause there too instead of 
null and simplify the serializer.
    * In getIndexedIterator, why not use the iterator on the returned column 
family instead of allocating a new arrayQueue ?
    * In RangeSliceVerbHandler, rowFilter is tested again null, but can't be.

Nice refactoring otherwise.

> Merge get_indexed_slices with get_range_slices
> ----------------------------------------------
>
>                 Key: CASSANDRA-1600
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1600
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API
>            Reporter: Stu Hood
>            Assignee: Jonathan Ellis
>             Fix For: 0.8
>
>         Attachments: 
> 0001-Add-optional-FilterClause-to-KeyRange-and-support-doin.txt, 
> 0002-allow-get_range_slices-to-apply-filter-to-a-sequential.txt
>
>
> From a comment on 1157:
> {quote}
> IndexClause only has a start key for get_indexed_slices, but it would seem 
> that the reasoning behind using 'KeyRange' for get_range_slices applies there 
> as well, since if you know the range you care about in the primary index, you 
> don't want to continue scanning until you exhaust 'count' (or the cluster).
> Since it would appear that get_indexed_slices would benefit from a KeyRange, 
> why not smash get_(range|indexed)_slices together, and make IndexClause an 
> optional field on KeyRange?
> {quote}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to