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

Anoop Sam John commented on HBASE-11934:
----------------------------------------

May be not needed really Ram. The change is within the Codec implementation. 
The bytes stream it writes to OutputStream remains the same. We can really 
avoid need for one more codec and again work to make that default. Sounds ok?


> Support KeyValueCodec to encode non KeyValue cells.
> ---------------------------------------------------
>
>                 Key: HBASE-11934
>                 URL: https://issues.apache.org/jira/browse/HBASE-11934
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Performance, regionserver, Scanners
>    Affects Versions: 0.99.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Critical
>             Fix For: 2.0.0, 0.99.1
>
>         Attachments: HBASE-11934.patch
>
>
> We have KeyValueCodec as the default RPC codec now. This can only encode 
> KeyValue types and need to convert any non KV cell to KeyValue format. This 
> is a expensive op. 
> {code}
>   // This is crass and will not work when KV changes. Also if passed a non-kv 
> Cell, it will
>   // make expensive copy.
>   // Do not write tags over RPC
>   KeyValue.oswrite((KeyValue) KeyValueUtil.ensureKeyValue(cell), this.out, 
> false);
> {code}
> Now we want Cell to be in entire read path and don't want any copy until we 
> write the cell to client. 
> The optimization done in the DBE of avoiding copying of value bytes was also 
> not getting real advantage bacause of this ensureKeyValue() call at the Codec.
> We can encode and write non KeyValue cells with KV serialization format and 
> avoid the recreate.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to