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-17235) Minor improvement in creation of CIS for onheap buffer cases
Date Fri, 02 Dec 2016 07:46:59 GMT

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

Anoop Sam John commented on HBASE-17235:

That looks better. ya..  I was wondering why the new boolean based static creator is not exposed
as public. Ya all Unsafe way (unsafe if u r not sure whether ur backing data structure is
immutable) done via Unsafe*** is better.  Can do the fix in ByteInput via a new jira as that
has to patch PB.
On the patch u have to call cis.enableAliasing(true); also. Then only it will avoid copying.
Now if and else block both need this enableAliasing call and so put it outside.
Can fix that on commit. +1

> Minor improvement in creation of CIS for onheap buffer cases
> ------------------------------------------------------------
>                 Key: HBASE-17235
>                 URL: https://issues.apache.org/jira/browse/HBASE-17235
>             Project: HBase
>          Issue Type: Improvement
>          Components: rpc
>    Affects Versions: 2.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Minor
>             Fix For: 2.0.0
>         Attachments: HBASE-17235.patch
> {code}
>       if (buf.hasArray()) {
>         cis = CodedInputStream.newInstance(buf.array(), offset, buf.limit());
>       } else {
> {code}
> Currently we do this for onheap buffers incase there is no reservoir or the size is less
than the minSizeforReservoir. I could see that even if reservoir is there there are requests
which goes with the above way of creating CIS. This could be made efficient to avoid underlying
copies by just doing this
> {code}
> cis = UnsafeByteOperations.unsafeWrap(buf.array(), offset, buf.limit()).newCodedInput();
> {code}

This message was sent by Atlassian JIRA

View raw message