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

PartitionedCompactionStrategy

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Normal
    • Resolution: Duplicate
    • None
    • None
    • None

    Description

      PartitionedCompactionStrategy is a new compaction strategy with the following goals in mind:

      • Column tombstone removal effectiveness
      • Read performance

      As the name suggests, PartitionedCompactionStrategy actively splits un-partitioned sstables(newly flushed, imported, compaction strategy switch) into partitions by IPartitioner. The number of nodes will be configurable.

      Then, PartitionedCompactionStrategy finds an interesting partition at compaction based on the followings:

      • the number of sstables
      • the ratio of droppable tombstones
      • read hotness

      You may think this design looks similar to SizeTieredCompactionStrategy and LeveledCompactionStrategy, but the big difference is that a compaction by PartitionedCompactionStrategy is based on rows(a partitions). And this allows more effective column tombstone removal, and better read performance.

      Also note that this will not require any changes to the other components. So this is expected to be a purely pluggable compaction strategy.

      A possible implementation of PertitionedCompactionStrategy#getNextBackgroundTask() is as follows:

      1. find un-partitioned sstables
      2. split un-partitioned sstables into partitiones
      3. group all the sstables into partitions
      4. find an interesting partition
        • the number of sstables
        • the number of droppable tombstones
        • hotness
      5. create a compaction task for the interesting bucket if found

      Attachments

        1. cassandra-2.0-8866.txt
          20 kB
          Tadayoshi Sato

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tsato Tadayoshi Sato
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: