[
https://issues.apache.org/jira/browse/CASSANDRA-5248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13577586#comment-13577586
]
Jonathan Ellis commented on CASSANDRA-5248:
-------------------------------------------
+1
> Fix timestamp-based tomstone removal logic
> ------------------------------------------
>
> Key: CASSANDRA-5248
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5248
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.2.1
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Fix For: 1.2.2
>
> Attachments: 5248.txt
>
>
> Quoting the description of CASSANDRA-4671:
> {quote}
> In other words, we should force CompactionController.shouldPurge() to return
> true if min_timestamp(non-compacted-overlapping-sstables) >
> max_timestamp(compacted-sstables)
> {quote}
> but somehow this was translating in the code to:
> {noformat}
> if (sstable.getBloomFilter().isPresent(key.key) && sstable.getMinTimestamp()
> >= maxDeletionTimestamp)
> return false;
> {noformat}
> which, well, is reversed.
> Attaching the trivial patch to fix. I note that we already had a test that
> catched this (CompactionsTest.testDontPurgeAccidentaly), but that test was
> racy in that most of the time the compaction was done in the same second than
> the removal done prior to that and thus the compaction wasn't considering the
> tombstone gcable even though gcgrace was 0. I've already pushed the addition
> of a 1 second delay to make sure the patch reliably catch this bug.
--
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