cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Podkowinski (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CASSANDRA-11886) Streaming will miss sections for early opened sstables during compaction
Date Tue, 24 May 2016 15:48:13 GMT
Stefan Podkowinski created CASSANDRA-11886:
----------------------------------------------

             Summary: 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
            Priority: Critical
         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 sstables as well, that are not necessarily
in canonical. 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. In this case
{{getSSTableSectionsForRanges}} will get a early instance from the view, but fails 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