[
https://issues.apache.org/jira/browse/HBASE-12282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14188288#comment-14188288
]
ramkrishna.s.vasudevan commented on HBASE-12282:
------------------------------------------------
{code}
+ if (left.getQualifierArray() != null && right.getQualifierArray() != null)
{
+ return Bytes.compareTo(left.getQualifierArray(),
left.getQualifierOffset(),
+ left.getQualifierLength(), right.getQualifierArray(),
right.getQualifierOffset(),
+ right.getQualifierLength());
+ } else if (((left.getQualifierArray() != null && left.getQualifierBuffer()
== null) && right
+ .getQualifierBuffer() != null)) {
+ return ByteBufferUtils.compareTo(left.getQualifierArray(),
left.getQualifierOffset(),
+ left.getQualifierLength(), right.getQualifierBuffer(),
right.getQualifierOffset(),
+ right.getQualifierLength());
+ } else if (left.getQualifierBuffer() != null
+ && (right.getQualifierBuffer() == null && right.getQualifierArray() !=
null)) {
+ return ByteBufferUtils.compareTo(left.getQualifierBuffer(),
left.getQualifierOffset(),
+ left.getQualifierLength(), right.getQualifierArray(),
right.getQualifierOffset(),
+ right.getQualifierLength());
+ } else {
+ return ByteBufferUtils.compareTo(left.getQualifierBuffer(),
left.getQualifierOffset(),
+ left.getQualifierLength(), right.getQualifierBuffer(),
right.getQualifierOffset(),
+ right.getQualifierLength());
+ }
{code}
So as done here we may have to use hasArray on both the left Cell and rightCell
and do the comparison.
> Ensure Cells and its implementations work with Buffers also
> -----------------------------------------------------------
>
> Key: HBASE-12282
> URL: https://issues.apache.org/jira/browse/HBASE-12282
> Project: HBase
> Issue Type: Sub-task
> Components: regionserver, Scanners
> Affects Versions: 0.99.1
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0, 0.99.2
>
> Attachments: HBASE-12224_2.patch
>
>
> This issue can be used to brainstorm and then do the necessary changes for
> the offheap work. All impl of cells deal with byte[] but when we change the
> Hfileblocks/Readers to work purely with Buffers then the byte[] usage would
> mean that always the data is copied to the onheap. Cell may need some
> interface change to implement this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)