You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2013/06/28 15:50:19 UTC

[jira] [Updated] (CASSANDRA-5712) Reverse slice queries can skip range tombstones

     [ https://issues.apache.org/jira/browse/CASSANDRA-5712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-5712:
----------------------------------------

    Attachment: 5712.txt

Attaching patch with a unit test to demonstrate the bug as well as a fix. The fix simply make sure that for an index block we always return all the range tombstone first before returning any column. In theory this means we might sometimes return a few range tombstones the caller won't really need, but it's harmless and probably not worth bothering with.
                
> Reverse slice queries can skip range tombstones
> -----------------------------------------------
>
>                 Key: CASSANDRA-5712
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5712
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>             Fix For: 1.2.7
>
>         Attachments: 5712.txt
>
>
> On disk, we represent range tombstones by a marker at the beginning of the range covered. Since we repeat such markers when they overlap an index block and since an index block is always read in forward order (even in reverse queries), we are guaranteed to see a range tombstone before any column it covers. However, IndexedSliceReader returns the columns of an index block in reverse order and thus can return a range tombstone *after* columns it covers.
> It follows that some range tombstone can be skipped during a reversed range slice. We need to fix IndexedSliceReader to always return range tombstone first (or at least before the first column covered by each range tombstone).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira