Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
Description
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).
Attachments
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-5183 Improve cases where we purge tombstone on (minor) compaction
- Resolved