hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zheng Hu (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-19252) Move the transform logic of FilterList into transformCell() method to avoid extra ref to question cell
Date Tue, 14 Nov 2017 02:42:00 GMT
Zheng Hu created HBASE-19252:
--------------------------------

             Summary: 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: Bug
            Reporter: Zheng Hu
            Assignee: Zheng Hu


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