From f92d640fe800af075c56f64fc2a10f6b7f89a865 Mon Sep 17 00:00:00 2001 From: Aman Poonia Date: Sat, 17 Aug 2019 15:17:42 +0530 Subject: [PATCH] HBASE-22872 - Don't try to create normalization plan unnecesarily when split and merge both are disabled --- .../normalizer/SimpleRegionNormalizer.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java index c18a49a228..67be69b96a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java @@ -107,6 +107,27 @@ 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 (ServiceException se) { + LOG.debug("Unable to determine whether split is enabled", se); + } + try { + mergeEnabled = masterRpcServices + .isSplitOrMergeEnabled(null, + RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.MERGE)) + .getEnabled(); + } catch (ServiceException se) { + LOG.debug("Unable to determine whether split is enabled", se); + } + if (!splitEnabled && !mergeEnabled) { + LOG.debug("Both split and merge are disabled for table: " + table); + return null; + } List plans = new ArrayList(); List tableRegions = masterServices.getAssignmentManager().getRegionStates(). @@ -141,19 +162,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 (ServiceException se) { - LOG.debug("Unable to determine whether split is enabled", se); - } - try { - mergeEnabled = masterRpcServices.isSplitOrMergeEnabled(null, - RequestConverter.buildIsSplitOrMergeEnabledRequest(MasterSwitchType.MERGE)).getEnabled(); - } catch (ServiceException se) { - LOG.debug("Unable to determine whether split is enabled", se); - } while (candidateIdx < tableRegions.size()) { HRegionInfo hri = tableRegions.get(candidateIdx); long regionSize = getRegionSize(hri); -- 2.23.0