Description
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.