Limiting the speed of compactions
You can limit the speed at which HBase compactions run, by configuring
hbase.regionserver.throughput.controller and its related
settings.
The default controller is
org.apache.hadoop.hbase.regionserver.throttle.PressureAwareCompactionThroughputController,
which uses the following algorithm:- If compaction pressure is greater than 1.0, there is no speed limitation.
- In off-peak hours, use a fixed throughput limitation, configured using
hbase.hstore.compaction.throughput.offpeak,hbase.offpeak.start.hour, andhbase.offpeak.end.hour. - In normal hours, the max throughput is tuned between
hbase.hstore.compaction.throughput.higher.boundandhbase.hstore.compaction.throughput.lower.bound(which default to 100 MB/sec and 50 MB/sec respectively), using the following formula, wherecompactionPressureis between 0.0 and 1.0. ThecompactionPressurerefers to the number of store files that require compaction.lower + (higher - lower) * compactionPressure
To disable compaction speed limits, set
hbase.regionserver.throughput.controller to
org.apache.hadoop.hbase.regionserver.throttle.NoLimitThroughputController.
