You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nd...@apache.org on 2021/04/12 22:21:05 UTC

[hbase] branch branch-2.3 updated: HBASE-25482 Improve SimpleRegionNormalizer#getAverageRegionSizeMb (#2858)

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

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


The following commit(s) were added to refs/heads/branch-2.3 by this push:
     new 0f9b944  HBASE-25482 Improve SimpleRegionNormalizer#getAverageRegionSizeMb (#2858)
0f9b944 is described below

commit 0f9b944e9053bdd1b12542ea60f4172aaa7f0772
Author: Baiqiang Zhao <zb...@gmail.com>
AuthorDate: Wed Jan 20 03:09:50 2021 +0800

    HBASE-25482 Improve SimpleRegionNormalizer#getAverageRegionSizeMb (#2858)
    
    Signed-off-by: Nick Dimiduk <nd...@apache.org>
---
 .../master/normalizer/SimpleRegionNormalizer.java  | 25 +++++++++++-----------
 1 file changed, 13 insertions(+), 12 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 563e4c9..f4e4889 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
@@ -304,16 +304,13 @@ public class SimpleRegionNormalizer implements RegionNormalizer {
       throw new IllegalStateException(
         "Cannot calculate average size of a table without any regions.");
     }
-    final int regionCount = tableRegions.size();
-    final long totalSizeMb = tableRegions.stream()
-      .mapToLong(this::getRegionSizeMB)
-      .sum();
     TableName table = tableRegions.get(0).getTable();
     int targetRegionCount = -1;
     long targetRegionSize = -1;
+    double avgRegionSize;
     try {
       TableDescriptor tableDescriptor = masterServices.getTableDescriptors().get(table);
-      if (tableDescriptor != null && LOG.isDebugEnabled()) {
+      if (tableDescriptor != null) {
         targetRegionCount = tableDescriptor.getNormalizerTargetRegionCount();
         targetRegionSize = tableDescriptor.getNormalizerTargetRegionSize();
         LOG.debug("Table {} configured with target region count {}, target region size {}", table,
@@ -323,18 +320,22 @@ public class SimpleRegionNormalizer implements RegionNormalizer {
       LOG.warn("TableDescriptor for {} unavailable, table-level target region count and size"
         + " configurations cannot be considered.", table, e);
     }
-
-    double avgRegionSize;
     if (targetRegionSize > 0) {
       avgRegionSize = targetRegionSize;
-    } else if (targetRegionCount > 0) {
-      avgRegionSize = totalSizeMb / (double) targetRegionCount;
     } else {
-      avgRegionSize = totalSizeMb / (double) regionCount;
+      final int regionCount = tableRegions.size();
+      final long totalSizeMb = tableRegions.stream()
+        .mapToLong(this::getRegionSizeMB)
+        .sum();
+      if (targetRegionCount > 0) {
+        avgRegionSize = totalSizeMb / (double) targetRegionCount;
+      } else {
+        avgRegionSize = totalSizeMb / (double) regionCount;
+      }
+      LOG.debug("Table {}, total aggregated regions size: {} and average region size {}", table,
+        totalSizeMb, avgRegionSize);
     }
 
-    LOG.debug("Table {}, total aggregated regions size: {} and average region size {}", table,
-      totalSizeMb, avgRegionSize);
     return avgRegionSize;
   }