@InterfaceAudience.LimitedPrivate(value="Configuration") class SimpleRegionNormalizer extends Object implements RegionNormalizer, ConfigurationObserver
| Modifier and Type | Class and Description | 
|---|---|
| private class  | SimpleRegionNormalizer.NormalizeContextInner class caries the state necessary to perform a single invocation of
  computePlansForTable(TableName). | 
| private static class  | SimpleRegionNormalizer.NormalizerConfigurationHolds the configuration values read from  Configuration. | 
| Modifier and Type | Field and Description | 
|---|---|
| (package private) static boolean | DEFAULT_MERGE_ENABLED | 
| (package private) static int | DEFAULT_MERGE_MIN_REGION_AGE_DAYS | 
| (package private) static int | DEFAULT_MERGE_MIN_REGION_SIZE_MB | 
| (package private) static int | DEFAULT_MIN_REGION_COUNT | 
| (package private) static boolean | DEFAULT_SPLIT_ENABLED | 
| private static org.slf4j.Logger | LOG | 
| private MasterServices | masterServices | 
| (package private) static String | MERGE_ENABLED_KEY | 
| (package private) static String | MERGE_MIN_REGION_AGE_DAYS_KEY | 
| (package private) static String | MERGE_MIN_REGION_SIZE_MB_KEY | 
| (package private) static String | MIN_REGION_COUNT_KEY | 
| private SimpleRegionNormalizer.NormalizerConfiguration | normalizerConfiguration | 
| (package private) static String | SPLIT_ENABLED_KEY | 
| Constructor and Description | 
|---|
| SimpleRegionNormalizer() | 
| Modifier and Type | Method and Description | 
|---|---|
| private List<NormalizationPlan> | computeMergeNormalizationPlans(SimpleRegionNormalizer.NormalizeContext ctx)Computes the merge plans that should be executed for this table to converge average region
 towards target average or target region count. | 
| List<NormalizationPlan> | computePlansForTable(TableName table)Computes a list of normalizer actions to perform on the target table. | 
| private List<NormalizationPlan> | computeSplitNormalizationPlans(SimpleRegionNormalizer.NormalizeContext ctx)Computes the split plans that should be executed for this table to converge average region size
 towards target average or target region count. | 
| private double | getAverageRegionSizeMb(List<RegionInfo> tableRegions) | 
| org.apache.hadoop.conf.Configuration | getConf() | 
| Period | getMergeMinRegionAge()Return this instance's configured value for "hbase.normalizer.merge.min_region_age.days". | 
| long | getMergeMinRegionSizeMb()Return this instance's configured value for "hbase.normalizer.merge.min_region_size.mb". | 
| int | getMinRegionCount()Return this instance's configured value for "hbase.normalizer.min.region.count". | 
| private long | getRegionSizeMB(RegionInfo hri) | 
| private boolean | isLargeEnoughForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration,
                     RegionInfo regionInfo)Return  truewhenregionInfohas a size that is sufficient
 to be considered for a merge operation,falseotherwise. | 
| private boolean | isMasterSwitchEnabled(MasterSwitchType masterSwitchType) | 
| boolean | isMergeEnabled()Return this instance's configured value for "hbase.normalizer.merge.enabled". | 
| private static boolean | isOldEnoughForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration,
                   RegionInfo regionInfo)Return  truewhenregionInfohas a creation date that is old
 enough to be considered for a merge operation,falseotherwise. | 
| boolean | isSplitEnabled()Return this instance's configured value for "hbase.normalizer.split.enabled". | 
| private static <T> void | logConfigurationUpdated(String key,
                       T oldValue,
                       T newValue) | 
| private static boolean | logTraceReason(BooleanSupplier predicate,
              String fmtWhenTrue,
              Object... args) | 
| void | onConfigurationChange(org.apache.hadoop.conf.Configuration conf)This method would be called by the  ConfigurationManagerobject when theConfigurationobject is reloaded from disk. | 
| private static Period | parseMergeMinRegionAge(org.apache.hadoop.conf.Configuration conf) | 
| private static long | parseMergeMinRegionSizeMb(org.apache.hadoop.conf.Configuration conf) | 
| private static int | parseMinRegionCount(org.apache.hadoop.conf.Configuration conf) | 
| private boolean | proceedWithMergePlanning() | 
| private boolean | proceedWithSplitPlanning() | 
| void | setConf(org.apache.hadoop.conf.Configuration conf) | 
| void | setMasterServices(MasterServices masterServices)Set the master service. | 
| private boolean | skipForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration,
            RegionStates regionStates,
            RegionInfo regionInfo)Determine if a  RegionInfoshould be considered for a merge operation. | 
| private static boolean | skipForSplit(RegionState state,
            RegionInfo regionInfo)Determine if a region in  RegionStateshould be considered for a split operation. | 
| private static <T> void | warnInvalidValue(String key,
                T parsedValue,
                T settledValue) | 
private static final org.slf4j.Logger LOG
static final String SPLIT_ENABLED_KEY
static final boolean DEFAULT_SPLIT_ENABLED
static final String MERGE_ENABLED_KEY
static final boolean DEFAULT_MERGE_ENABLED
static final String MIN_REGION_COUNT_KEY
static final int DEFAULT_MIN_REGION_COUNT
static final String MERGE_MIN_REGION_AGE_DAYS_KEY
static final int DEFAULT_MERGE_MIN_REGION_AGE_DAYS
static final String MERGE_MIN_REGION_SIZE_MB_KEY
static final int DEFAULT_MERGE_MIN_REGION_SIZE_MB
private MasterServices masterServices
private SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration
public SimpleRegionNormalizer()
public org.apache.hadoop.conf.Configuration getConf()
getConf in interface org.apache.hadoop.conf.Configurablepublic void setConf(org.apache.hadoop.conf.Configuration conf)
setConf in interface org.apache.hadoop.conf.Configurablepublic void onConfigurationChange(org.apache.hadoop.conf.Configuration conf)
ConfigurationObserverConfigurationManager
 object when the Configuration object is reloaded from disk.onConfigurationChange in interface ConfigurationObserverprivate static int parseMinRegionCount(org.apache.hadoop.conf.Configuration conf)
private static Period parseMergeMinRegionAge(org.apache.hadoop.conf.Configuration conf)
private static long parseMergeMinRegionSizeMb(org.apache.hadoop.conf.Configuration conf)
private static <T> void warnInvalidValue(String key, T parsedValue, T settledValue)
private static <T> void logConfigurationUpdated(String key, T oldValue, T newValue)
public boolean isSplitEnabled()
public boolean isMergeEnabled()
public int getMinRegionCount()
public Period getMergeMinRegionAge()
public long getMergeMinRegionSizeMb()
public void setMasterServices(MasterServices masterServices)
RegionNormalizerRegionNormalizer.computePlansForTable(TableName).setMasterServices in interface RegionNormalizermasterServices - master services to usepublic List<NormalizationPlan> computePlansForTable(TableName table)
RegionNormalizercomputePlansForTable in interface RegionNormalizertable - table to normalizeprivate long getRegionSizeMB(RegionInfo hri)
private boolean isMasterSwitchEnabled(MasterSwitchType masterSwitchType)
private boolean proceedWithSplitPlanning()
private boolean proceedWithMergePlanning()
private double getAverageRegionSizeMb(List<RegionInfo> tableRegions)
tableRegions - regions of table to normalizeAlso make sure tableRegions contains regions of the same tableprivate boolean skipForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration, RegionStates regionStates, RegionInfo regionInfo)
RegionInfo should be considered for a merge operation.
 
 Callers beware: for safe concurrency, be sure to pass in the local instance of
 SimpleRegionNormalizer.NormalizerConfiguration, don't use this's instance.private List<NormalizationPlan> computeMergeNormalizationPlans(SimpleRegionNormalizer.NormalizeContext ctx)
private static boolean skipForSplit(RegionState state, RegionInfo regionInfo)
RegionState should be considered for a split operation.private List<NormalizationPlan> computeSplitNormalizationPlans(SimpleRegionNormalizer.NormalizeContext ctx)
private static boolean isOldEnoughForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration, RegionInfo regionInfo)
true when regionInfo has a creation date that is old
 enough to be considered for a merge operation, false otherwise.private boolean isLargeEnoughForMerge(SimpleRegionNormalizer.NormalizerConfiguration normalizerConfiguration, RegionInfo regionInfo)
true when regionInfo has a size that is sufficient
 to be considered for a merge operation, false otherwise.
 
 Callers beware: for safe concurrency, be sure to pass in the local instance of
 SimpleRegionNormalizer.NormalizerConfiguration, don't use this's instance.private static boolean logTraceReason(BooleanSupplier predicate, String fmtWhenTrue, Object... args)
Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.