You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2018/11/23 12:55:00 UTC

[jira] [Created] (CASSANDRA-14910) Don't skip entire sstables when reading backwards with mixed clustering column order

Aleksey Yeschenko created CASSANDRA-14910:
---------------------------------------------

             Summary: Don't skip entire sstables when reading backwards with mixed clustering column order
                 Key: CASSANDRA-14910
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14910
             Project: Cassandra
          Issue Type: Bug
          Components: Local Write-Read Paths
            Reporter: Aleksey Yeschenko
            Assignee: Aleksey Yeschenko
             Fix For: 2.2.x


In 2.x, if a table has clustering columns in {{DESC}} order, any SSTable that doesn’t have any static rows in it will be skipped altogether when iterated in reverse.

This occurs due to the logic in {{ColumnSlice.compare()}} errorneusly sorting any empty {{ByteBuffer}} after non-empty values due to the way {{ReversedType}} operates. In case that empty {{ByteBuffer}} is coming from a static {{Composite}}, however, the logic breaks down. Static {{Composite}} components must *always* sort before any non-empty value, no matter the table’s comparator.

2.0, 2.1, and 2.2 are all affected. 3.0 isn’t, but only because we skip slice intersection logic entirely if static rows are present in the filter.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org