From 0c2e64d4f51e47429cc4edaf945373df3f78f44e Mon Sep 17 00:00:00 2001 From: Victoria Dudin Date: Tue, 3 Feb 2015 09:47:46 -0800 Subject: [PATCH] Fix negative values in read and write region server metrics. --- .../src/main/java/org/apache/hadoop/hbase/ServerLoad.java | 8 ++++---- .../test/java/org/apache/hadoop/hbase/TestServerLoad.java | 12 ++++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java index 18e5d67..9141659 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java @@ -45,8 +45,8 @@ public class ServerLoad { private int storefileSizeMB = 0; private int memstoreSizeMB = 0; private int storefileIndexSizeMB = 0; - private int readRequestsCount = 0; - private int writeRequestsCount = 0; + private long readRequestsCount = 0; + private long writeRequestsCount = 0; private int rootIndexSizeKB = 0; private int totalStaticIndexSizeKB = 0; private int totalStaticBloomSizeKB = 0; @@ -138,11 +138,11 @@ public class ServerLoad { return storefileIndexSizeMB; } - public int getReadRequestsCount() { + public long getReadRequestsCount() { return readRequestsCount; } - public int getWriteRequestsCount() { + public long getWriteRequestsCount() { return writeRequestsCount; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerLoad.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerLoad.java index 97b518a..2eebc2b 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerLoad.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerLoad.java @@ -59,6 +59,14 @@ public class TestServerLoad { assertTrue(slToString.contains("coprocessors=[]")); } + @Test + public void testRegionLoadWrapAroundAggregation() { + ServerLoad sl = new ServerLoad(createServerLoadProto()); + long totalCount = ((long)Integer.MAX_VALUE)*2; + assertEquals(totalCount, sl.getReadRequestsCount()); + assertEquals(totalCount, sl.getWriteRequestsCount()); + } + private ClusterStatusProtos.ServerLoad createServerLoadProto() { HBaseProtos.RegionSpecifier rSpecOne = HBaseProtos.RegionSpecifier.newBuilder() @@ -72,11 +80,11 @@ public class TestServerLoad { ClusterStatusProtos.RegionLoad rlOne = ClusterStatusProtos.RegionLoad.newBuilder().setRegionSpecifier(rSpecOne).setStores(10) .setStorefiles(101).setStoreUncompressedSizeMB(106).setStorefileSizeMB(520) - .setStorefileIndexSizeMB(42).setRootIndexSizeKB(201).build(); + .setStorefileIndexSizeMB(42).setRootIndexSizeKB(201).setReadRequestsCount(Integer.MAX_VALUE).setWriteRequestsCount(Integer.MAX_VALUE).build(); ClusterStatusProtos.RegionLoad rlTwo = ClusterStatusProtos.RegionLoad.newBuilder().setRegionSpecifier(rSpecTwo).setStores(3) .setStorefiles(13).setStoreUncompressedSizeMB(23).setStorefileSizeMB(300) - .setStorefileIndexSizeMB(40).setRootIndexSizeKB(303).build(); + .setStorefileIndexSizeMB(40).setRootIndexSizeKB(303).setReadRequestsCount(Integer.MAX_VALUE).setWriteRequestsCount(Integer.MAX_VALUE).build(); ClusterStatusProtos.ServerLoad sl = ClusterStatusProtos.ServerLoad.newBuilder().addRegionLoads(rlOne). -- 2.2.2