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

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

commit d072a2e694127476e19192bfe470902d0e418175
Author: Norbert Kalmar <nkal...@apache.org>
AuthorDate: Sat Dec 18 04:58:16 2021 +0100

    HBASE-26340 TableSplit returns false size under 1MB (#3872)
    
    Signed-off-by: Peter Somogyi <psomo...@apache.org
    Signed-off-by: Duo Zhang <zhang...@apache.org>
---
 .../java/org/apache/hadoop/hbase/regionserver/HRegionServer.java    | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
index 41d13b7..047345c 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
@@ -1748,6 +1748,7 @@ public class HRegionServer extends Thread implements
     int maxCompactedStoreFileRefCount = 0;
     int storeUncompressedSizeMB = 0;
     int storefileSizeMB = 0;
+    long storefileSizeByte = 0L;
     int memstoreSizeMB = (int) (r.getMemStoreDataSize() / 1024 / 1024);
     long storefileIndexSizeKB = 0;
     int rootLevelIndexSizeKB = 0;
@@ -1765,7 +1766,7 @@ public class HRegionServer extends Thread implements
       maxCompactedStoreFileRefCount = Math.max(maxCompactedStoreFileRefCount,
         currentMaxCompactedStoreFileRefCount);
       storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 
1024 / 1024);
-      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);
+      storefileSizeByte += store.getStorefilesSize();
       //TODO: storefileIndexSizeKB is same with rootLevelIndexSizeKB?
       storefileIndexSizeKB += store.getStorefilesRootLevelIndexSize() / 1024;
       CompactionProgress progress = store.getCompactionProgress();
@@ -1777,6 +1778,9 @@ public class HRegionServer extends Thread implements
       totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);
       totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);
     }
+    //HBASE-26340 Fix false "0" size under 1MB
+    storefileSizeMB = storefileSizeByte > 0 && storefileSizeByte <= 1024 * 1024
+       ? 1 : (int) storefileSizeByte / 1024 / 1024;
 
     HDFSBlocksDistribution hdfsBd = r.getHDFSBlocksDistribution();
     float dataLocality = 
hdfsBd.getBlockLocalityIndex(serverName.getHostname());

Reply via email to