You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Himanshu Vashishtha (JIRA)" <ji...@apache.org> on 2013/10/17 01:19:42 UTC

[jira] [Updated] (HBASE-9785) Fix heap size reporting in HRegion

     [ https://issues.apache.org/jira/browse/HBASE-9785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Himanshu Vashishtha updated HBASE-9785:
---------------------------------------

    Attachment: HBase-9785.patch

Patch to fix the issue. Tested TestHeapSize on both 32 bit and 64 bit machines.

> Fix heap size reporting in HRegion
> ----------------------------------
>
>                 Key: HBASE-9785
>                 URL: https://issues.apache.org/jira/browse/HBASE-9785
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.96.0
>            Reporter: Himanshu Vashishtha
>             Fix For: 0.98.0, 0.96.1
>
>         Attachments: HBase-9785.patch
>
>
> The size reported by Fixed_Overhead variable in HRegion misses out on a boolean variable. TestHeapSize doesn't report it because of the alignment we do to make it multiple of 8. 
> The equation for HRegion heap usage from Fixed_Overhead is: 
> Fixed_Overhead = align(100 + 42*ref + 1 arr) = align(284) = 288 on a 32 bit vm
> (On a 32 bit vm, 1 ref = 4bytes, 1 arr = 16 bytes)
> The equation formed using reflection (in Classsize) is:
> Expected_Overehead = align(101 + 42*ref + 1arr) = align(285) = 288.
> So, the testHeapSize doesn't fail currently.
> But if I add a reference (did in last patch in 8741), it starts failing because, now the equations are:
> Fixed_Overhead = align(100 + 43*ref + 1 arr) = align(288) = 288
> Expected_Overhead = align(101 + 43*ref + 1 arr) = align(289) = 296.



--
This message was sent by Atlassian JIRA
(v6.1#6144)