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

Matt Corgan commented on HBASE-10801:
-------------------------------------

I did some tinkering with this a while back, and the approach may be very 
outdated, but I'll quickly point it out here.  The DBE's maintain a 
BufferedDataBlockEncoder.SeekerState which is a snapshot of a single decoded 
KV/Cell that is ready to be sent up the read path.

In existing code, it gets deep-copied to a KeyValue: 
https://github.com/apache/hbase/blob/0.98/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java

But I think SeekerState could be made to implement Cell and therefore we could 
send a shallow-copied reference up the read path.  This code is very old and 
likely has parts that don't make sense or even compile, but hopefully it still 
illustrates how SeekerState can extend Cell: 
https://github.com/hotpads/hbase/blob/cell-seeker-state/hbase-server/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java

I also remember trying two approaches with different strategies regarding when 
to copy the primitive fields, and this one was slower, but I don't have the 
faster one.  Just throwing that out there in case there's merit to the overall 
approach.

> Ensure DBE interfaces can work with Cell
> ----------------------------------------
>
>                 Key: HBASE-10801
>                 URL: https://issues.apache.org/jira/browse/HBASE-10801
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: ramkrishna.s.vasudevan
>             Fix For: 0.99.0
>
>
> Some changes to the interfaces may be needed for DBEs or may be the way it 
> works currently may be need to be modified inorder to make DBEs work with 
> Cells. Suggestions and ideas welcome.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to