Sylvain Lebresne created CASSANDRA-4671:
-------------------------------------------

             Summary: Improve removal of gcable tomstones during minor 
compaction
                 Key: CASSANDRA-4671
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4671
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Sylvain Lebresne
            Priority: Minor


When we minor compact, we only purge a row if we know it's not present in any 
of the sstables that are not in the compaction set.

It is however possible to have scenario where this leads us to keep irrelevant 
tombstone for longer than necessary (and I suspect LCS make those scenario a 
little bit more likely).

We could however purge tombstone if we know that the non-compacted sstables 
doesn't have any info that is older than the tombstones we're about to purge 
(since then we know that the tombstones we'll consider can't delete data in non 
compacted sstables). 

In other words, we should force CompactionController.shouldPurge() to return 
true if min_timestamp(non-compacted-overlapping-sstables) > 
max_timestamp(compacted-sstables).

This does require us to record the min timestamp of an sstable first though (we 
only record the max timestamp so far).

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

Reply via email to