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-14882) Provide a Put API that adds the provided family, qualifier, value without copying
Date Fri, 11 Nov 2016 08:02:58 GMT

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

Anoop Sam John commented on HBASE-14882:

So now we clearly know, why this API is not client end alone.  The code paths within server
also uses this API. eg: When adding to meta table, we make a put and add cells using this
API.  This happens within server end and the cell as such reaches region.  We have assumptions
abt the cell there. That it is having SettableSeqId implemented etc.  So we can not just avoid
that.   Normal APIs in Put u can see create KeyValue and there u can see impl ExtendedCell
instead of Cell.  Ya this is because KV is used server end.  We need cells flowing in server
to be of this new type.   As this new Cell impl also used in server side also, we can not
avoid that also impl ExtendedCell !!
May be need to add fat comment lines in the new class like above that why at client end, we
have a Cell with ExtendedCell being used.  Any way we have it in hbase-common. That is good.
 w dyt?

> Provide a Put API that adds the provided family, qualifier, value without copying
> ---------------------------------------------------------------------------------
>                 Key: HBASE-14882
>                 URL: https://issues.apache.org/jira/browse/HBASE-14882
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 1.2.0
>            Reporter: Jerry He
>            Assignee: Xiang Li
>             Fix For: 2.0.0
>         Attachments: HBASE-14882.master.000.patch, HBASE-14882.master.001.patch, HBASE-14882.master.002.patch,
> In the Put API, we have addImmutable()
> {code}
>  /**
>    * See {@link #addColumn(byte[], byte[], byte[])}. This version expects
>    * that the underlying arrays won't change. It's intended
>    * for usage internal HBase to and for advanced client applications.
>    */
>   public Put addImmutable(byte [] family, byte [] qualifier, byte [] value)
> {code}
> But in the implementation, the family, qualifier and value are still being copied locally
to create kv.
> Hopefully we should provide an API that truly uses immutable family, qualifier and value.

This message was sent by Atlassian JIRA

View raw message