Repository: hbase Updated Branches: refs/heads/0.98 95444356e -> 3257b6456
HBASE-11219 HRegionServer#createRegionLoad() should reuse RegionLoad.Builder instance when called in a loop Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3257b645 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3257b645 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3257b645 Branch: refs/heads/0.98 Commit: 3257b645637469ce9f4e56d1f4b4514df46405fd Parents: 9544435 Author: tedyu <[email protected]> Authored: Thu May 22 04:41:52 2014 +0000 Committer: tedyu <[email protected]> Committed: Thu May 22 04:41:52 2014 +0000 ---------------------------------------------------------------------- .../hbase/regionserver/HRegionServer.java | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/3257b645/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java ---------------------------------------------------------------------- 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 16bc420..8c9f3c1 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 @@ -1099,8 +1099,10 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa serverLoad.addCoprocessors( Coprocessor.newBuilder().setName(coprocessor).build()); } + RegionLoad.Builder regionLoadBldr = RegionLoad.newBuilder(); + RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder(); for (HRegion region : regions) { - serverLoad.addRegionLoads(createRegionLoad(region)); + serverLoad.addRegionLoads(createRegionLoad(region, regionLoadBldr, regionSpecifier)); } serverLoad.setReportStartTime(reportStartTime); serverLoad.setReportEndTime(reportEndTime); @@ -1302,12 +1304,14 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa /* * @param r Region to get RegionLoad for. - * + * @param regionLoadBldr the RegionLoad.Builder, can be null + * @param regionSpecifier the RegionSpecifier.Builder, can be null * @return RegionLoad instance. * * @throws IOException */ - private RegionLoad createRegionLoad(final HRegion r) { + private RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr, + RegionSpecifier.Builder regionSpecifier) { byte[] name = r.getRegionName(); int stores = 0; int storefiles = 0; @@ -1344,11 +1348,15 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa (int) (store.getTotalStaticBloomSize() / 1024); } } - RegionLoad.Builder regionLoad = RegionLoad.newBuilder(); - RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder(); + if (regionLoadBldr == null) { + regionLoadBldr = RegionLoad.newBuilder(); + } + if (regionSpecifier == null) { + regionSpecifier = RegionSpecifier.newBuilder(); + } regionSpecifier.setType(RegionSpecifierType.REGION_NAME); regionSpecifier.setValue(HBaseZeroCopyByteString.wrap(name)); - regionLoad.setRegionSpecifier(regionSpecifier.build()) + regionLoadBldr.setRegionSpecifier(regionSpecifier.build()) .setStores(stores) .setStorefiles(storefiles) .setStoreUncompressedSizeMB(storeUncompressedSizeMB) @@ -1364,7 +1372,7 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa .setCurrentCompactedKVs(currentCompactedKVs) .setCompleteSequenceId(r.completeSequenceId); - return regionLoad.build(); + return regionLoadBldr.build(); } /** @@ -1374,7 +1382,7 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa public RegionLoad createRegionLoad(final String encodedRegionName) { HRegion r = null; r = this.onlineRegions.get(encodedRegionName); - return r != null ? createRegionLoad(r) : null; + return r != null ? createRegionLoad(r, null, null) : null; } /*
