We recently had a production issue where our compactions fell behind because our compaction throttle was improperly tuned and accidentally upgraded all compactions to the large pool. The default from
HBASE-3877 makes 1 bad assumption: the default number of flushed files in a compaction. Currently the algorithm is:
throttleSize ~= flushSize * 2
This assumes that the basic compaction utilizes 3 files and that all 3 files are compressed. In this case, "hbase.hstore.compaction.min" == 6 && the values were not very compressible. Both conditions should be taken into consideration. As a default, it is less damaging for the large thread to be slightly higher than it needs to be versus having everything accidentally promoted.