[ 
https://issues.apache.org/jira/browse/HBASE-27570?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bryan Beaudreault updated HBASE-27570:
--------------------------------------
    Summary: Unify tracking of block IO across all read request types  (was: 
Unify tracking of block IO across all request types)

> Unify tracking of block IO across all read request types
> --------------------------------------------------------
>
>                 Key: HBASE-27570
>                 URL: https://issues.apache.org/jira/browse/HBASE-27570
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Bryan Beaudreault
>            Priority: Major
>
> Currently Get and Multiget call a method in RSRpcServices 
> [addSize|https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java#L1303-L1335],
>  which attempts to estimate block IO by pulling the capacity of the 
> underlying cell buffer when that buffer changes. This is just an estimate and 
> can be inaccurate in certain circumstances, such as when the ordering of gets 
> in a multiget causes the same buffer to be counted twice.
> As of HBASE-27558, ScannerContext now tracks the block IO for each read 
> request. Gets and Multigets make use of a default scanner context which only 
> enforces batch size and isn't exposed to RSRpcServices. We can make a small 
> change to create a ScannerContext with LimitScope.ROW, and use the 
> ScannerContext.getBlockSize() to get the exact block IO consumed by a query.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to