cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Petrov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-14910) Don't skip entire sstables when reading backwards with mixed clustering column order
Date Tue, 27 Nov 2018 10:51:00 GMT

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

Alex Petrov edited comment on CASSANDRA-14910 at 11/27/18 10:50 AM:
--------------------------------------------------------------------

The new version looks much better, the only thing is that current tests do not cover [this|https://github.com/apache/cassandra/compare/trunk...iamaleksey:14910-2.2#diff-82e58a7c5bec8818f2e88a982725690fR113]
part (e.g. {{compare}} is now not called on static bounds since we're returning {{true}} before
calling {{intersect}} which would invoke comparator), so while I'm not saying that the change
is wrong, I'm not 100% sure if we should keep it unless we have a test or at least an example
scenario where this one is required. Can you comment on where we need it?


was (Author: ifesdjeen):
The new version looks much better, the only thing is that current tests do not cover [this|https://github.com/apache/cassandra/compare/trunk...iamaleksey:14910-2.2#diff-82e58a7c5bec8818f2e88a982725690fR113]
part (e.g. {{compare}} is now not called on static bounds), so while I'm not saying that the
change is wrong, I'm not 100% sure if we should keep it unless we have a test or at least
an example scenario where this one is required. Can you comment on where we need it?

> 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
>            Priority: Major
>             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.
> Introduced by CASSANDRA-8502.



--
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


Mime
View raw message