When we read HFileBlocks, we read the asked-for block AND the next block's header which we add to a cache (see
HBASE-17072). We do this extra read to get the next block's length purportedly. This seek of the next block's header complicates the HFileBlock construction (not to mind other consequences – again see HBASE-17072).
Study done in
HBASE-17072 shows that we normally do not need this extra read of the next block's header. In the usual case, the length of the block is gotten from the hfile index.
A simplification of block reading can be done purging this extra header read. We can also save some space in cache.
- is related to
HBASE-17072 CPU usage starts to climb up to 90-100% when using G1GC; purge ThreadLocal usage
- links to