[ 
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, 
> HBASE-14882.master.003.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
(v6.3.4#6332)

Reply via email to