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

Zheng Hu commented on HBASE-19252:
----------------------------------

Thank you [~stack] ,  Let me dig into the failed UT   :-) 

> Move the transform logic of FilterList into transformCell() method to avoid 
> extra ref to question cell 
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-19252
>                 URL: https://issues.apache.org/jira/browse/HBASE-19252
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>            Priority: Minor
>             Fix For: 2.0.0-beta-1
>
>         Attachments: HBASE-19252-branch-1.4.v1.patch, 
> HBASE-19252-branch-1.4.v1.patch, HBASE-19252-branch-1.4.v1.patch, 
> HBASE-19252.v1.patch, HBASE-19252.v2.patch, HBASE-19252.v3.patch, 
> HBASE-19252.v4.patch
>
>
> As [~anoop.hbase] and I discussed,  we can implement the filterKeyValue () 
> and transformCell() methods as following  to avoid saving transformedCell & 
> referenceCell state in FilterList, and we can avoid the costly cell clone. 
> {code}
> ReturnCode filterKeyValue(Cell c){
>       ReturnCode rc = null;
>       for(Filter filter: sub-filters){
>           // ...
>           rc = mergeReturnCode(rc, filter.filterKeyValue(c));
>           // ... 
>       }
>       return rc;
> }
> Cell transformCell(Cell c) throws IOException {
>       Cell transformed = c; 
>       for(Filter filter: sub-filters){
>               if(filter.filterKeyValue(c) is INCLUDE*) {     //  ----> line#1
>                       transformed = filter.transformCell(transformed);        
>         
>               }
>       }
>       return transformed; 
> }
> {code}
> For line #1,  we need to remember the return code of the sub-filter for its 
> filterKeyValue().  because only INCLUDE*  ReturnCode,   we need to 
> transformCell for sub-filter.  
> A new boolean array will be introduced in FilterList.  and the cost of 
> maintaining  the boolean array will be less than  the cost of maintaining the 
> two ref of question cell. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to