I'm experimenting different algorithms for choosing the compaction candidates, for leveled compaction.
Instead of the round robin selection by default, one of our experiment is to choose the candidates with least overlapping sstable sizes. And I see significant drop of cpu usage, and reduce of compacted bytes count, in one of our write heavy system.
I think it's useful to make it configurable for how to choose the compaction candidates.
The idea is from rocksdb. (http://rocksdb.org/blog/2921/compaction_pri/).