[ 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:37 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-1637.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, 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. > [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.