Sanjeet Malhotra created HBASE-29398: ----------------------------------------
Summary: Server side scan metrics for bytes read from FS vs Block cache vs memstore Key: HBASE-29398 URL: https://issues.apache.org/jira/browse/HBASE-29398 Project: HBase Issue Type: Improvement Reporter: Sanjeet Malhotra Assignee: Sanjeet Malhotra Currently, HBase doesn't have a metric on the server side which counts how many bytes were read from FS vs block cache vs memstore. Reading cells from in-memory like block cache or memstore vs from FS can make latencies vary drastically. Separate metrics for bytes scanned from block cache vs memstore are beneficial for use cases which immediately read (like within 5 sec) after writing the data. There the expectation would be that bytes scanned from FS or block cache should be zero unless a flush happened (which can be checked from logs). Currently, HBase has a server side scan metric `countOfBlockBytesScanned` which aims to capture the block bytes scanned by read request. But there are few gaps in the metric: * It doesn't account for block bytes scanned as part of KeyValueHeap#pollRealKV(). * It doesn't account for the bytes index block bytes scanned, bloom filter bytes scanned. * It doesn't differentiate between bytes scanned from block cache vs FS. The proposal is to add 3 new server side scan metrics, one each for: bytes scanned from FS, bytes scanned from block cache and bytes scanned from memstore. Currently, the aim is to just add these 3 new set of metrics and expose them via ServerSide scan metrics. Replacing `countOfBlockBytesScanned` by bytes scanned from FS and bytes scanned from block cache and integrating the new metrics with HBase Quotas code can be taken up separately. I intend to cherry-pick this change to HBase 3 and HBase 2 (till HBase 2.5). -- This message was sent by Atlassian Jira (v8.20.10#820010)