[ https://issues.apache.org/jira/browse/HBASE-6757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453138#comment-13453138 ]
Lars Hofhansl commented on HBASE-6757: -------------------------------------- As long as FilterList does the right thing it should be transparent, right? Now, if somebody wrote their own filter that wraps a FilterList, then the behavior might be changed slightly. Then again, there FilterList.filterKeyValue can already return other codes (NEXT_COL, SEEK_NEXT_USING_HINT, etc), which the wrapper would have to deal with. So I think the change is fine. I'll let some of my fellow committers comment on this too. > Very inefficient behaviour of scan using FilterList > --------------------------------------------------- > > Key: HBASE-6757 > URL: https://issues.apache.org/jira/browse/HBASE-6757 > Project: HBase > Issue Type: Improvement > Components: filters > Affects Versions: 0.90.6 > Reporter: Jerry Lam > Attachments: 6757.txt, CopyOfTestColumnPrefixFilter.java, > DisplayFilter.java > > > The behaviour of scan is very inefficient when using with FilterList. > The FilterList rewrites the return code from NEXT_ROW to SKIP from a filter > if Operator.MUST_PASS_ALL is used. > This happens when using ColumnPrefixFilter. Even though the > ColumnPrefixFilter indicates to jump to NEXT_ROW because no further match can > be found, the scan continues to scan all versions of a column in that row and > all columns of that row because the ReturnCode from ColumnPrefixFilter has > been rewritten by the FilterList from NEXT_ROW to SKIP. > This is particularly inefficient when there are many versions in a column > because the check is performed on all versions of the column instead of just > by checking the qualifier of the column name. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira