[ 
https://issues.apache.org/jira/browse/HBASE-11876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118908#comment-14118908
 ] 

Andrew Purtell commented on HBASE-11876:
----------------------------------------

Attached patch removes metrics update from HRegion.RegionScannerImpl#nextRaw, 
keeps track of the equivalent metric in RSRpcServices#scan, and updates the 
metric once per batch. When limiting the result set by size we use 
KeyValue#heapSize, which also accounts for object heap overheads, but when 
calculating scan metrics we use KeyValue#getLength, which is the on wire size 
of the key value(s). I've maintained this distinction.

> RegionScanner.nextRaw(...) should not update metrics
> ----------------------------------------------------
>
>                 Key: HBASE-11876
>                 URL: https://issues.apache.org/jira/browse/HBASE-11876
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.6
>            Reporter: Lars Hofhansl
>            Assignee: Andrew Purtell
>             Fix For: 0.99.0, 2.0.0, 0.98.6
>
>         Attachments: HBASE-11876.patch
>
>
> I added the RegionScanner.nextRaw(...) to allow "smart" client to avoid some 
> of the default work that HBase is doing, such as {start|stop}RegionOperation 
> and synchronized(scanner) for each row.
> Metrics should follow the same approach. Collecting them per row is expensive 
> and a caller should have the option to collect those later or to avoid 
> collecting them completely.
> We can also save some cycles in RSRcpServices.scan(...) if we updated the 
> metric only once/batch instead of each row.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to