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

Anoop Sam John commented on HBASE-13448:
----------------------------------------

Thanks Ram..  He explained it mostly.
Yes we are not adding keylength stufff back.  This is only within a specific 
Cell impl, ie. KeyValue where key length make sense.   You can see above how 
many times we call each of the methods in read of a cell.  As per that it is 
clear that keylength calc is happening more often, as this is needed by some 
other offset/length.

Yes 2-3% gain only what I also saw in a small single node run.  But Stack ran 
the test on V1 patch where I tried to cache many other items. Per KeyValue 
object we were adding some 24+ bytes extra cost. The latest version of patch 
just adds 6 bytes extra.  Yet to take a GC reading. Will do that.  Any chance 
of giving a try in ur cluster Stack?

As Stack explained, we are trying to get rid of caching the offset/length and 
passing it around in the read path. We used to pass byte[] , offset, length .  
This is part of the offheap read work where we better pass the Cell.   As the 
subtasks of that gets done, we will tend to call these getters more and caching 
makes more sense then.

> New Cell implementation with cached component offsets/lengths
> -------------------------------------------------------------
>
>                 Key: HBASE-13448
>                 URL: https://issues.apache.org/jira/browse/HBASE-13448
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Scanners
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0
>
>         Attachments: HBASE-13448.patch, HBASE-13448_V2.patch, 
> HBASE-13448_V3.patch, gc.png, hits.png
>
>
> This can be extension to KeyValue and can be instantiated and used in read 
> path.



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

Reply via email to