hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12358) Create ByteBuffer backed Cell
Date Wed, 29 Oct 2014 04:20:34 GMT

    [ 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

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

View raw message