[
https://issues.apache.org/jira/browse/HBASE-3927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040346#comment-13040346
]
Ted Yu commented on HBASE-3927:
-------------------------------
I discussed this with Karthick.
In Store.java, we maintain storeSize:
{code}
this.storeSize += r.length();
{code}
The call to length() is delegated to HFile#Reader#length().
We can add a new method, HFile#Reader#getTotalUncompressedBytes e.g. which
exposes HFile#Reader#trailer.totalUncompressedBytes.
This way we can maintain both measures in Store.
@Matt:
Please elaborate the description in your first paragraph.
Thanks
> display total uncompressed byte size of a region in web UI
> ----------------------------------------------------------
>
> Key: HBASE-3927
> URL: https://issues.apache.org/jira/browse/HBASE-3927
> Project: HBase
> Issue Type: Improvement
> Components: metrics
> Reporter: Matt Corgan
> Priority: Minor
>
> The decision to split data blocks when flushing and compacting is made based
> on the uncompressed data size which can often lead to compressed disk blocks
> that are a fraction of the intended 64 KB (default). This often leads to a
> larger number of blocks and index entries than expected and can cause block
> indexes to take up GB of memory.
> There is already a "long totalUncompressedBytes" written to the HFileTrailer.
> It would be nice to expose this in the web UI to make it easier to calculate
> the compression ratio and then raise the block size appropriately (not
> necessarily to get it back to 64K).
> This should probably be added wherever the other HFile metrics are:
> RegionLoad.createRegions(..), and HServerLoad. HServerLoad is a Writable, so
> it may break serialization.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira