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

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

Thanks Stack.  Let us try writing it down.  Ram is working on the code path and 
once coding underway some or other reqs also may come up. So the doc in some 
time.

bq.Seems like the BR vs BB still hanging out there..
Yes. What we wanted is if the API is not java.nio.BB as return type we can use 
some other BB kind of implementation (like netty) which is faster. Some of 
Andy's experiments shown that the position/limit checks in nio BB impls makes 
the perf bad and not getting inlining also.  But when we have again one more 
indirection of accessing a Buffer via BR APIs, the Unsafe based optimization 
might be harder(?) If Unsafe is available we can get rid of these extra ops 
like DBB/HBB.  Or can we have our own impl like HBB/DBB? java.nio.ByteBuffer 
allow to extend.

Regarding new ByteBufferBackedCell which extends Cells
Can we do this way?  ByteBufferBackedCell (or some better name?) not extending 
Cell but it is having APIs like Cell (instead of array based it will be Buffer 
based) and read path deal with this Interface. SOme thing like a ReadCell.  The 
Filters and related CP hooks deal with new Cell type. So we ensure that all 
deal with Buffer APIs and avoid need for temp byte[] creation (if array based 
APIs are called)
We might have to change interface like KeyValueScanner, RegionScanner etc.
Till the RPCServer sendReponse we might need change. See HBASE-12289.  With 
changes we can avoid this copy in simple cases. But when RPC layer compression 
or sasl is enabled we might need to do this copy. Compression case am checking 
some way we can avoid. sasl beacuse of HDFS API am not sure whether this is 
possible at all.
All these can land in 2.0 only then

> Create ByteBuffer backed Cell
> -----------------------------
>
>                 Key: HBASE-12358
>                 URL: https://issues.apache.org/jira/browse/HBASE-12358
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver, Scanners
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 2.0.0, 0.99.2
>
>         Attachments: HBASE-12358.patch
>
>
> As part of HBASE-12224 we wanted a Cell that is backed by BB.  Changing the 
> core Cell impl would not be needed as it is used in server only.  So we will 
> create a BB backed Cell and use it in the Server side read path. This JIRA 
> just creates an interface that extends Cell and adds the needed API.
> The getTimeStamp and getTypebyte() can still refer to the original Cell API 
> only.  The getXXxOffset() and getXXXLength() can also refer to the original 
> Cell only.



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

Reply via email to