This is an automated email from the ASF dual-hosted git repository.

reidchan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 64f8890  HBASE-22872 Don't try to create normalization plan 
unnecesarily when split and merge both are disabled
64f8890 is described below

commit 64f88906f7cc7265fe0c42a4c42530dbd660c70b
Author: Aman Poonia <aman.poonia...@gmail.com>
AuthorDate: Tue Aug 27 21:35:57 2019 +0530

    HBASE-22872 Don't try to create normalization plan unnecesarily when split 
and merge both are disabled
    
    Signed-off-by: Reid Chan <reidc...@apache.org>
---
 .../master/normalizer/SimpleRegionNormalizer.java  | 31 ++++++++++++----------
 1 file changed, 17 insertions(+), 14 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 a30a13b..b55d2b6 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
@@ -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);

Reply via email to