Vladimir Rodionov created HBASE-14383:
-----------------------------------------

             Summary: Compaction improvements
                 Key: HBASE-14383
                 URL: https://issues.apache.org/jira/browse/HBASE-14383
             Project: HBase
          Issue Type: Improvement
            Reporter: Vladimir Rodionov
            Assignee: Vladimir Rodionov
             Fix For: 2.0.0


Still major issue in many production environments. The general recommendation - 
disabling region splitting and major compactions to reduce unpredictable IO/CPU 
spikes, especially during peak times and running them manually during off peak 
times. Still do not resolve the issues completely.

h3. Flush storms

* rolling WAL events across cluster can be highly correlated, hence flushing 
memstores, hence triggering minor compactions, that can be promoted to major 
ones.
*  the same is true for memstore flushing due to periodic memstore flusher 
operation. These events are highly correlated in time if there is a balanced 
write-load on the regions in a table.

Both above may produce *flush storms* which are as bad as *compaction storms*. 

What can be done here. We can spread these events over time by randomizing 
(with jitter) several  config options:
# hbase.regionserver.optionalcacheflushinterval
# hbase.regionserver.flush.per.changes
# hbase.regionserver.maxlogs   

h3. ExploringCompactionPolicy max compaction size
One more optimization can be added to ExploringCompactionPolicy. To limit size 
of a compaction there is a config parameter one could use 
hbase.hstore.compaction.max.size. It would be nice to have two separate limits: 
for peak and off peak hours.

h3. ExploringCompactionPolicy selection evaluation algorithm

Just seems too simple: selection with more files always wins, selection of 
smaller size wins if number of files is the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to