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

Benedict commented on CASSANDRA-8691:
-------------------------------------

We need to consider behaviour with getToken(last) for OpenEarly, as this will 
break our current approach. However we could simply lookup EQ to last, since we 
have an overlapping record with the source files. This might be the neatest 
solution to that particular problem.

> SSTableReader.getPosition() does not correctly filter out queries that exceed 
> its bounds
> ----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-8691
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8691
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Benedict
>             Fix For: 2.1.3
>
>
> This has been true for some time, but I worry about including it before 2.1 
> in case we depend on the brokenness somehow. In getPosition, we test:
> {code}
>         if (first.compareTo(key) > 0 || last.compareTo(key) < 0)
>         {
>             if (op == Operator.EQ && updateCacheAndStats)
>                 bloomFilterTracker.addFalsePositive();
>             if (op.apply(1) < 0)
>             {
>                 Tracing.trace("Check against min and max keys allows skipping 
> sstable {}", descriptor.generation);
>                 return null;
>             }
>         }
> {code}
> However, op.apply(1) always returns >= 0 unless op == Operation.EQ



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to