cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-11886) Streaming will miss sections for early opened sstables during compaction
Date Tue, 14 Jun 2016 16:51:57 GMT

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

Paulo Motta commented on CASSANDRA-11886:
-----------------------------------------

It seems testSSTableSectionsForRanges is [broken|http://cassci.datastax.com/view/cassandra-3.0/job/cassandra-3.0_testall/lastCompletedBuild/testReport/org.apache.cassandra.io.sstable/SSTableRewriterTest/testSSTableSectionsForRanges/]
on 3.0+. I suppose this is the CASSANDRA-11996 broken test you referred to [~krummas]? If
so, please disregard.

> Streaming will miss sections for early opened sstables during compaction
> ------------------------------------------------------------------------
>
>                 Key: CASSANDRA-11886
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11886
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stefan Podkowinski
>            Assignee: Marcus Eriksson
>            Priority: Critical
>              Labels: correctness, repair, streaming
>             Fix For: 2.1.15, 2.2.7, 3.8, 3.0.8
>
>         Attachments: 9700-test-2_1.patch
>
>
> Once validation compaction has been finished, all mismatching sstable sections for a
token range will be used for streaming as return by {{StreamSession.getSSTableSectionsForRanges}}.
Currently 2.1 will try to restrict the sstable candidates by checking if they can be found
in {{CANONICAL_SSTABLES}} and will ignore them otherwise. At the same time {{IntervalTree}}
in the {{DataTracker}} will be build based on replaced non-canonical sstables as well. In
case of early opened sstables this becomes a problem, as the tree will be update with {{OpenReason.EARLY}}
replacements that cannot be found in canonical. But whenever {{getSSTableSectionsForRanges}}
will get a early instance from the view, it will fail to retrieve the corresponding canonical
version from the map, as the different generation will cause a hashcode mismatch. Please find
a test attached.
> As a consequence not all sections for a range are streamed. In our case this has caused
deleted data to reappear, as sections holding tombstones were left out due to this behavior.



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

Mime
View raw message