huaxiangsun commented on a change in pull request #1922:
URL: https://github.com/apache/hbase/pull/1922#discussion_r442371151



##########
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java
##########
@@ -369,7 +369,8 @@ private boolean skipForMerge(final RegionStates 
regionStates, final RegionInfo r
       }
       final long currentSizeMb = getRegionSizeMB(current);
       final long nextSizeMb = getRegionSizeMB(next);
-      if (currentSizeMb + nextSizeMb < avgRegionSizeMb) {
+      // always merge away empty regions when they present themselves.
+      if (currentSizeMb == 0 || nextSizeMb == 0 || currentSizeMb + nextSizeMb 
< avgRegionSizeMb) {

Review comment:
       There is a special case for size to be 0, wondering if the region size 
is very small but nonzero, and there is a large size neighbor region, can we do 
something about it? 
   100 1 100  (avg size is 20), in this case, 1 wont be merged as well.  What 
if some logic like
   
   '''currentSizeMb < 0.1 * avgRegionSizeMb and currentSizeMb/nextSizeMb < 0.1 
(switch currentSizeMb and nextSizeMb as well), then merge'''




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to