[ https://issues.apache.org/jira/browse/HBASE-14882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15686240#comment-15686240 ]
Xiang Li commented on HBASE-14882: ---------------------------------- Hi [~anoop.hbase] When implementing ExtendedCell interface for IndividualBytesFieldCell, to override the following function {code} /** * Write the given Cell into the given buf's offset. * @param buf The buffer where to write the Cell. * @param offset The offset within buffer, to write the Cell. */ void write(byte[] buf, int offset); {code} I found KeyValue#createByteArray() (as follow) can be re-used {code} static byte [] createByteArray(final byte [] row, final int roffset, final int rlength, final byte [] family, final int foffset, int flength, final byte [] qualifier, final int qoffset, int qlength, final long timestamp, final Type type, final byte [] value, final int voffset, int vlength, byte[] tags, int tagsOffset, int tagsLength) { {code} So I need to check with you 1. If ExtendedCell#write() (listed above) needs to write the Cell in KeyValue format, 2. If the answer for 1 is yes, then may I propose to make KeyValue#createByteArray() to package-private so that its logic can be used in other ExtendedCell implementations? > 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)