You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by re...@apache.org on 2019/08/27 03:36:20 UTC

[hbase] branch branch-2 updated: HBASE-22872 Don't try to create normalization plan unnecesarily when split and merge both are disabled

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

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


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

commit 1eac16e78f37102f2595fd0c36dbf85224109607
Author: Aman Poonia <ap...@salesforce.com>
AuthorDate: Mon Aug 26 17:45:01 2019 +0530

    HBASE-22872 Don't try to create normalization plan unnecesarily when split and merge both are disabled
    
    Signed-off-by: Reid Chan <re...@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 300c6a7..74b338b 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
@@ -120,7 +120,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);
@@ -178,19 +194,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);