hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19252) Move the transform logic of FilterList into transformCell() method to avoid extra ref to question cell
Date Mon, 04 Dec 2017 05:11:00 GMT

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

Hudson commented on HBASE-19252:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-1.4 #1046 (See [https://builds.apache.org/job/HBase-1.4/1046/])
HBASE-19252 Move the transform logic of FilterList into transformCell() (openinx: rev 2cb3633e645392ef43935b62b5148539dec5570e)
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListBase.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java


> 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)

Mime
View raw message