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

Sylvain Lebresne commented on CASSANDRA-2641:
---------------------------------------------

As far as I can tell, normalize() and getPositionsForRanges() are dealing 
correctly with overlapping ranges, albeit arguably inefficiently. It's true 
that overlapping ranges would result in streaming twice the overlapping 
sections, but that's an efficiency problem, so I don't think an assert is the 
solution.
We could add a pass to normalize() so that it merges intersecting ranges. But 
that being said, I don't think we ever generate a list of overlapping ranges 
and given what our ranges represents I see no reason why that would change. 

> AbstractBounds.normalize should deal with overlapping ranges
> ------------------------------------------------------------
>
>                 Key: CASSANDRA-2641
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2641
>             Project: Cassandra
>          Issue Type: Test
>          Components: Core
>            Reporter: Stu Hood
>            Assignee: Stu Hood
>            Priority: Minor
>             Fix For: 1.0
>
>
> Apparently no consumers have encountered it in production, but 
> AbstractBounds.normalize does not handle overlapping ranges. If given 
> overlapping ranges, the output will be sorted but still overlapping, for 
> which SSTableReader.getPositionsForRanges will choose ranges in an SSTable 
> that may overlap.
> We should either add an assert in normalize(), or in getPositionsForRanges() 
> to ensure that this never bites us in production.

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

Reply via email to