You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Izaak Rubin (JIRA)" <ji...@apache.org> on 2007/07/19 23:33:06 UTC

[jira] Issue Comment Edited: (HADOOP-1606) [hbase] Updated Implementation of RowFilterSet, RowFilterInterface

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

Izaak Rubin edited comment on HADOOP-1606 at 7/19/07 2:32 PM:
--------------------------------------------------------------

This patch is a near-clone of HADOOP-1606-v2.patch, primarily differing by one line that makes RowFilterSet.Operator public and static.  The public qualifier will allow classes outside the package to pass a RowFilterSet.Operator as an argument to the RowFilterSet constructor.  

Another change in this patch is a fix to if-statement formatting: if-statements predicating one line are now surrounded by braces, as per HBase standards.  

Note that this patch must be committed before HADOOP-1579-v5.patch and HADOOP-1636.patch.  Both of these depend on changes in this patch.  

All HBase tests have passed successfully.  At present the test: 

org.apache.hadoop.streaming.TestSymLink

is not functioning.  Nonetheless all preceding HADOOP tests are passing, and this particular test in no way reflects on the functionality and compatibility of HBase within HADOOP.


 was:
This patch is a near-clone of HADOOP-1606-v2.patch, only differing by one line that makes RowFilterSet.Operator public and static.  The public qualifier will allow classes outside the package to pass a RowFilterSet.Operator as an argument to the RowFilterSet constructor.  

Note that this patch must be committed before HADOOP-1579-v5.patch and HADOOP-1636.patch.  Both of these depend on changes in this patch.  

All HBase tests have passed successfully.  At present the test: 

org.apache.hadoop.streaming.TestSymLink

is not functioning.  Nonetheless all preceding HADOOP tests are passing, and this particular test in no way reflects on the functionality and compatibility of HBase within HADOOP.

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