hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11219) HRegionServer#createRegionLoad() should reuse RegionLoad.Builder instance when called in a loop
Date Wed, 21 May 2014 17:38:38 GMT

    [ https://issues.apache.org/jira/browse/HBASE-11219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14004966#comment-14004966
] 

Ted Yu commented on HBASE-11219:
--------------------------------

Here is what I did:
1. on region server running unpatched 0.98, issue 'jmap -histo' several times. I got:
{code}
num       #instances    #bytes  Class description
--------------------------------------------------------------------------
21:             1994    239280  org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos$RegionLoad$Builder
22:             1994    239280  org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos$RegionLoad
{code}
2. stop region server
3. deploy patched 0.98
4. start region server
5. issue 'jmap -histo' several times. I got:
{code}
31:             1344    64512   java.util.HashMap
32:             529     63480   org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos$RegionLoad
33:             918     58752   java.net.URL
{code}
ClusterStatusProtos$RegionLoad$Builder didn't even show up in the new report.

> HRegionServer#createRegionLoad() should reuse RegionLoad.Builder instance when called
in a loop
> -----------------------------------------------------------------------------------------------
>
>                 Key: HBASE-11219
>                 URL: https://issues.apache.org/jira/browse/HBASE-11219
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.99.0, 0.98.3
>
>         Attachments: 11219-v1.txt, 11219-v2.txt
>
>
> As Andrew showed in the attachment to HBASE-11165, ClusterStatusProtos$RegionLoad$Builder
took 25MB heap space.
> buildServerLoad() calls createRegionLoad() for each region on the region server.
> One instance of ClusterStatusProtos$RegionLoad$Builder can be created outside the loop
and passed to createRegionLoad().
> Thanks Andrew for the finding.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message