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

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

bq.On commit add comment to each instance where you are doing this 
pass-through. Otherwise I see folks looking at it and just being stumped why. 
Add release note. I added note to our 1.0 issue that we need to call this one 
out in release notes: "If you have written your own filter..."
Sure.
Thanks for the review Stack & Enis.
Yes PHOENIX-1282 is the issue in Phoenix side for the followup there.  In 
Phoenix master will have to do. 4.0 is based on 0.98 and there all are 
KeyValues any way.

> [Branch-1] Avoid need to always do KeyValueUtil#ensureKeyValue for Filter 
> transformCell
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-12068
>                 URL: https://issues.apache.org/jira/browse/HBASE-12068
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Filters
>    Affects Versions: 0.99.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 0.99.1
>
>         Attachments: HBASE-12068.patch
>
>
> During read with Filters added to Scan/Get, the core code calls 
> transformCell(Cell) on the Filter. Most of the filters do not implement 
> transform API so the method from FilterBase will get executed
> {code}
>   @Override
>   public Cell transformCell(Cell v) throws IOException {
>     // Old filters based off of this class will override KeyValue 
> transform(KeyValue).
>     // Thus to maintain compatibility we need to call the old version.
>     return transform(KeyValueUtil.ensureKeyValue(v));
>   }
> {code}
> Here always it do KeyValueUtil.ensureKeyValue.  When a non KV cell comes in, 
> we need recreate KV and do deep copy of key and value!
> We have to stick with this model in branch-1 for BC.
> So as a workaround to avoid possible KV convert, we can implement 
> transformCell(Cell) method in all of our individual Filter classes which just 
> return the incoming cell (So that method from FilterBase wont get executed)



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

Reply via email to