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.bound
andhbase.hstore.compaction.throughput.lower.bound
(which default to 20 MB/sec and 10 MB/sec respectively), using the following formula, wherecompactionPressure
is between 0.0 and 1.0. ThecompactionPressure
refers 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
.