[
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