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

Nick Dimiduk commented on HBASE-7320:
-------------------------------------

[~lhofhansl] if I follow your intentions, this means:
# KeyValue#getBuffer goes away entirely -- there's API assumption that a 
KeyValue is backed by a single "buffer object" of any type (byte[], ByteBuffer, 
&c.). A KeyValue instance /could/ be backed by a single "buffer object", at the 
option of its creator, but this is an implementation detail.
# KeyValue objects by API design is now backed by 5 "buffer objects" -- one for 
each rowkey, cf, qualifier, ts, and value.
# previous point does not restrict some producer of KeyValue instances from 
using it's on encoding of multiple instances, but it does require that producer 
to generate instances that conform to this API. For example, say I wanted to 
store KeyValues in batches of 100 where all rowkeys are stored together, then 
all cf, then quals, then ts, then values and make optimizations therein. The 
requirement is I can produce a KeyValue instance from the block that implement 
getXXXArray methods AND I no longer must materialize a "buffer object" for 
support of getBuffer.

Did I get that right?

Do we have any thought on what an appropriate "buffer object" should be? Is 
that for another ticket?

> Replace calls to KeyValue.getBuffer with appropropriate calls to getRowArray, 
> getFamilyArray(), getQualifierArray, and getValueArray
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-7320
>                 URL: https://issues.apache.org/jira/browse/HBASE-7320
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: stack
>             Fix For: 0.98.0
>
>
> In many places this is simple task of just replacing the method name.
> There, however, quite a few places where we assume that:
> # the entire KV is backed by a single byte array
> # the KVs key portion is backed by a single byte array
> Some of those can easily be fixed, others will need their own jiras.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to