Class AdaptiveMemStoreCompactionStrategy

java.lang.Object
org.apache.hadoop.hbase.regionserver.MemStoreCompactionStrategy
org.apache.hadoop.hbase.regionserver.AdaptiveMemStoreCompactionStrategy

Adaptive is a heuristic that chooses whether to apply data compaction or not based on the level of redundancy in the data. Adaptive triggers redundancy elimination only for those stores where positive impact is expected. Adaptive uses two parameters to determine whether to perform redundancy elimination. The first parameter, u, estimates the ratio of unique keys in the memory store based on the fraction of unique keys encountered during the previous merge of segment indices. The second is the perceived probability (compactionProbability) that the store can benefit from redundancy elimination. Initially, compactionProbability=0.5; it then grows exponentially by 2% whenever a compaction is successful and decreased by 2% whenever a compaction did not meet the expectation. It is reset back to the default value (namely 0.5) upon disk flush. Adaptive triggers redundancy elimination with probability compactionProbability if the fraction of redundant keys 1-u exceeds a parameter threshold compactionThreshold.