[
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)