Skip to content

Commit 0f9b944

Browse files
ZhaoBQndimiduk
authored andcommitted
HBASE-25482 Improve SimpleRegionNormalizer#getAverageRegionSizeMb (#2858)
Signed-off-by: Nick Dimiduk <[email protected]>
1 parent e4d2d9d commit 0f9b944

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -304,16 +304,13 @@ private double getAverageRegionSizeMb(final List<RegionInfo> tableRegions) {
304304
throw new IllegalStateException(
305305
"Cannot calculate average size of a table without any regions.");
306306
}
307-
final int regionCount = tableRegions.size();
308-
final long totalSizeMb = tableRegions.stream()
309-
.mapToLong(this::getRegionSizeMB)
310-
.sum();
311307
TableName table = tableRegions.get(0).getTable();
312308
int targetRegionCount = -1;
313309
long targetRegionSize = -1;
310+
double avgRegionSize;
314311
try {
315312
TableDescriptor tableDescriptor = masterServices.getTableDescriptors().get(table);
316-
if (tableDescriptor != null && LOG.isDebugEnabled()) {
313+
if (tableDescriptor != null) {
317314
targetRegionCount = tableDescriptor.getNormalizerTargetRegionCount();
318315
targetRegionSize = tableDescriptor.getNormalizerTargetRegionSize();
319316
LOG.debug("Table {} configured with target region count {}, target region size {}", table,
@@ -323,18 +320,22 @@ private double getAverageRegionSizeMb(final List<RegionInfo> tableRegions) {
323320
LOG.warn("TableDescriptor for {} unavailable, table-level target region count and size"
324321
+ " configurations cannot be considered.", table, e);
325322
}
326-
327-
double avgRegionSize;
328323
if (targetRegionSize > 0) {
329324
avgRegionSize = targetRegionSize;
330-
} else if (targetRegionCount > 0) {
331-
avgRegionSize = totalSizeMb / (double) targetRegionCount;
332325
} else {
333-
avgRegionSize = totalSizeMb / (double) regionCount;
326+
final int regionCount = tableRegions.size();
327+
final long totalSizeMb = tableRegions.stream()
328+
.mapToLong(this::getRegionSizeMB)
329+
.sum();
330+
if (targetRegionCount > 0) {
331+
avgRegionSize = totalSizeMb / (double) targetRegionCount;
332+
} else {
333+
avgRegionSize = totalSizeMb / (double) regionCount;
334+
}
335+
LOG.debug("Table {}, total aggregated regions size: {} and average region size {}", table,
336+
totalSizeMb, avgRegionSize);
334337
}
335338

336-
LOG.debug("Table {}, total aggregated regions size: {} and average region size {}", table,
337-
totalSizeMb, avgRegionSize);
338339
return avgRegionSize;
339340
}
340341

0 commit comments

Comments
 (0)