hbase code: --------------------------------------------------------- private ByteBuffer decompress(final long offset, final int compressedSize, final int decompressedSize, final boolean pread) throws IOException { Decompressor decompressor = null; ByteBuffer buf = null; try { decompressor = this.compressAlgo.getDecompressor(); InputStream is = this.compressAlgo.createDecompressionStream( new BufferedInputStream( new BoundedRangeFileInputStream(this.istream, offset, compressedSize, pread), Math.min(DEFAULT_BLOCKSIZE, compressedSize)), decompressor, 0); buf = ByteBuffer.allocate(decompressedSize); IOUtils.readFully(is, buf.array(), 0, buf.capacity()); is.close(); } finally { if (null != decompressor) { this.compressAlgo.returnDecompressor(decompressor); } } return buf; } --------------------------------------------------------- btrace code: --------------------------------------------------------- import static com.sun.btrace.BTraceUtils.*; import com.sun.btrace.annotations.*; import java.nio.ByteBuffer; import org.apache.hadoop.hbase.io.hfile.*; @BTrace public class TestRegion1{ @OnMethod( clazz="org.apache.hadoop.hbase.io.hfile.HFile$Reader", method="decompress" ) public static void traceCacheBlock(final long offset, final int compressedSize, final int decompressedSize, final boolean pread){ println(strcat("decompressedSize: ",str(decompressedSize))); } } --------------------------------------------------------- If I set hfile.block.cache.size=0.1, the result is: ....... decompress: 6020488 decompress: 6022536 decompress: 5991304 decompress: 6283272 decompress: 5957896 decompress: 6246280 decompress: 6041096 decompress: 6541448 decompress: 6039560 ....... If I set hfile.block.cache.size=0.12, the result is: ...... decompress: 65775 decompress: 65556 decompress: 65552 decompress: 9914120 decompress: 6026888 decompress: 65615 decompress: 65627 decompress: 6247944 decompress: 5880840 decompress: 65646 ...... If I set hfile.block.cache.size=0.15 or more, the result is: ...... decompress: 65646 decompress: 65615 decompress: 65627 decompress: 65775 decompress: 65556 decompress: 65552 decompress: 65775 decompress: 65556 decompress: 65552 ...... All of above tests run more than 10 minutes in high level read speed. So it is very strange phenomenon.