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

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

Izaak, your match is missing a change to HRegion.  HRegion still has old 
acceptedRow method:

{code}
     [echo] contrib: hbase
    [javac] Compiling 98 source files to 
/Users/stack/Documents/checkouts/hadoop-commit/build/contrib/hbase/classes
    [javac] 
/Users/stack/Documents/checkouts/hadoop-commit/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java:1489:
 cannot find symbol
    [javac] symbol  : method acceptedRow(org.apache.hadoop.io.Text)
    [javac] location: interface 
org.apache.hadoop.hbase.filter.RowFilterInterface
    [javac]             dataFilter.acceptedRow(chosenRow);
    [javac]                       ^
    [javac] Note: 
/Users/stack/Documents/checkouts/hadoop-commit/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/generated/Parser.java
 uses unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 error
{code}

Otherwise, looks good.

> [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-v3.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