[ 
https://issues.apache.org/jira/browse/HADOOP-1606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513153
 ] 

stack commented on HADOOP-1606:
-------------------------------

Looks great Izaak.  A unit test that verified a scanner using a filter would 
build confidence in filters. FYI, convention adds curly-brackets to if-blocks, 
even if one-line only.

> [hbase] Updated Implementation of RowFilterSet, RowFilterInterface
> ------------------------------------------------------------------
>
>                 Key: HADOOP-1606
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1606
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: contrib/hbase
>            Reporter: Izaak Rubin
>            Priority: Minor
>         Attachments: HADOOP-1606-v2.patch, HADOOP-1606.patch
>
>
> Unit tests on RowFilterSet revealed a problem with it's handling of nested 
> state-maintaining filters.  RowFilterSet returned as soon as possible for its 
> implementations of filter and filterNotNull.  This came at the cost of it not 
> always calling every one of it's filters.  Skipping these filters was 
> problematic, particularly when a filter changes it's state when called to 
> filter.  As a result, later calls to filterAllRemaining() were 
> non-deterministic (with an unordered set) or dependent on set ordering at 
> best.  
> With much input from Michael Stack and James Kennedy, the problem has been 
> resolved as follows: the RowFilterInterface has been updated to contain a 
> boolean processAlways() method that states whether or not this filter MUST be 
> called in any call to the filter hierarchy.  Filters that require their state 
> to be updated immediately upon every filter call (via a call to their filter 
> methods), such as WhileMatchRowFilter (see HADOOP-1579), will return true for 
> processAlways().  RowFilterSet will ensure that these filters always have 
> their filtering methods called, whether or not they affect the final decision.
> The patch proposed by this issue will make the necessary changes to 
> RowFilterSet and RowFilterInterface, in addition to adding the tests for 
> RowFilterSet.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to