[ https://issues.apache.org/jira/browse/HBASE-10771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13951095#comment-13951095 ]
stack commented on HBASE-10771: ------------------------------- Why again is it that we don't just do ByteBuffer? ByteRange doc says: {code} * This interface differs from ByteBuffer: * <li>On-heap bytes only</li> * <li>Raw {@code byte} access only; does not encode other primitives.</li> * <li>Implements {@code equals(Object)}, {@code #hashCode()}, and * {@code #compareTo(ByteRange)} so that it can be used in standard java * Collections. Comparison operations are lexicographic, which is native to * HBase.</li> * <li>Allows the addition of simple core methods like the deep and shallow * copy methods.</li> * <li>Can be reused in tight loops like a major compaction which can save * significant amounts of garbage. (Without reuse, we throw off garbage like * <a href="http://www.youtube.com/watch?v=lkmBH-MjZF4">this thing</a>.)</li> * </p> * <p> * Mutable, and always evaluates {@code #equals(Object)}, {@code #hashCode()}, * and {@code #compareTo(ByteRange)} based on the current contents. * </p> * <p> * Can contain convenience methods for comparing, printing, cloning, spawning * new arrays, copying to other arrays, etc. Please place non-core methods into * {@link ByteRangeUtils}. {code} So, we are violating at least the first two items in the Interface with these changes, right? Will we want to evolve to this http://netty.io/4.0/api/io/netty/buffer/ByteBuf.html eventually? Or pull in some of this functionality too? (If we did ByteBuf, then we'd have other facility available to us from netty) Have we written up an end-to-end for ByteRange any place going in and out? Pardon me if we have and I've just not kept up. > Primitive type put/get APIs in ByteRange > ----------------------------------------- > > Key: HBASE-10771 > URL: https://issues.apache.org/jira/browse/HBASE-10771 > Project: HBase > Issue Type: Improvement > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Fix For: 0.99.0 > > Attachments: HBASE-10771.patch, HBASE-10771_V2.patch > > > While doing HBASE-10713 I came across the need to write int/long (and read > also) from a ByteRange. CellBlocks are backed by ByteRange. So we can add > such APIs. > Also as per HBASE-10750 we return a ByteRange from MSLAB and also discussion > under HBASE-10191 suggest we can have BR backed HFileBlocks etc. -- This message was sent by Atlassian JIRA (v6.2#6252)