hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8555) FilterList correctness was dominated by sub-filter(list) ordering randomly
Date Thu, 16 May 2013 21:19:16 GMT

    [ https://issues.apache.org/jira/browse/HBASE-8555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13660016#comment-13660016
] 

Ted Yu commented on HBASE-8555:
-------------------------------

{code}
+    Boolean flag = (this.operator == Operator.MUST_PASS_ONE) ? true : false;
{code}
There is no need to use Boolean type - boolean should suffice.
{code}
-    assertTrue(Filter.ReturnCode.INCLUDE == filterMPONE.filterKeyValue(kv));
+    assertFalse(Filter.ReturnCode.INCLUDE == filterMPONE.filterKeyValue(kv));
+    assertTrue(filterMPONE.filterRow());
{code}
I couldn't get the last assertion pass - neither 0.94 nor trunk.
                
> FilterList correctness was dominated by sub-filter(list) ordering randomly
> --------------------------------------------------------------------------
>
>                 Key: HBASE-8555
>                 URL: https://issues.apache.org/jira/browse/HBASE-8555
>             Project: HBase
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 0.94.3
>            Reporter: Liang Xie
>            Assignee: Liang Xie
>            Priority: Critical
>         Attachments: 8555-trunk-v1.txt, HBASE-8555-0.94.txt
>
>
> say, ther're 10 rows, column value is i%2:
> row0 0
> row1 1
> row2 0
> row3 1
> row4 0
> row5 1
> row6 0
> row7 1
> row8 0
> row9 1
> 1: filter : row filter > row4   ===> row5 row6 row7 row8 row9
> 2: subFilterList:  row filter <= row4 && column==0    ===> row0 row2 row4
> 3.1 filterlist[expected]   filter || subFilterList  ===> row0 row2 row4 row5 row6
row7 row8 row9
> 3.2 filterlist[BUGON!]  subFilterList || filter ===> row0 row1 row2 row3 row4 row5
row6 row7 row8 row9
> (Please refer to the new testNestedFilterListWithSCVF case)
> It was found when i managed to transform the following SQL into HBase scan statement:

> select xxx from xxx where (pk <= xxx and column1 = xxx) or pk > xxx
> My finding is that we had an assumption for filter methods call sequence:
> e.g. filterRowKey() should be called before filterKeyValue().
> and the orignial filterList.filterRowKey impl broke it due to fast short-circuit returning.

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

Mime
View raw message