Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4671

Improve removal of gcable tomstones during minor compaction

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.2.1
    • 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

        Issue Links

          Activity

            People

              vijay2win@yahoo.com Vijay
              slebresne Sylvain Lebresne
              Vijay
              Yuki Morishita
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: