HBASE-22872 Don't try to create normalization plan unnecesarily when split and merge both are disabled

Signed-off-by: Reid Chan <reidchan@apache.org>
This commit is contained in:
Aman Poonia 2019-08-27 21:35:57 +05:30 committed by Reid Chan
parent f2425c74a9
commit 64f88906f7
1 changed files with 17 additions and 14 deletions

View File

@ -131,7 +131,23 @@ public class SimpleRegionNormalizer implements RegionNormalizer {
LOG.debug("Normalization of system table " + table + " isn't allowed");
return null;
}
boolean splitEnabled = true, mergeEnabled = true;
try {
splitEnabled = masterRpcServices.isSplitOrMergeEnabled(null,
RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.SPLIT)).getEnabled();
} catch (org.apache.hbase.thirdparty.com.google.protobuf.ServiceException e) {
LOG.debug("Unable to determine whether split is enabled", e);
}
try {
mergeEnabled = masterRpcServices.isSplitOrMergeEnabled(null,
RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.MERGE)).getEnabled();
} catch (org.apache.hbase.thirdparty.com.google.protobuf.ServiceException e) {
LOG.debug("Unable to determine whether split is enabled", e);
}
if (!mergeEnabled && !splitEnabled) {
LOG.debug("Both split and merge are disabled for table: " + table);
return null;
}
List<NormalizationPlan> plans = new ArrayList<>();
List<RegionInfo> tableRegions = masterServices.getAssignmentManager().getRegionStates().
getRegionsOfTable(table);
@ -189,19 +205,6 @@ public class SimpleRegionNormalizer implements RegionNormalizer {
LOG.debug("Table " + table + ", average region size: " + avgRegionSize);
int candidateIdx = 0;
boolean splitEnabled = true, mergeEnabled = true;
try {
splitEnabled = masterRpcServices.isSplitOrMergeEnabled(null,
RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.SPLIT)).getEnabled();
} catch (org.apache.hbase.thirdparty.com.google.protobuf.ServiceException e) {
LOG.debug("Unable to determine whether split is enabled", e);
}
try {
mergeEnabled = masterRpcServices.isSplitOrMergeEnabled(null,
RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.MERGE)).getEnabled();
} catch (org.apache.hbase.thirdparty.com.google.protobuf.ServiceException e) {
LOG.debug("Unable to determine whether split is enabled", e);
}
while (candidateIdx < tableRegions.size()) {
RegionInfo hri = tableRegions.get(candidateIdx);
long regionSize = getRegionSize(hri);