You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Liang Xie (JIRA)" <ji...@apache.org> on 2013/05/16 07:35:16 UTC

[jira] [Created] (HBASE-8555) FilterList correctness was dominated by sub-filter(list) ordering randomly

Liang Xie created HBASE-8555:
--------------------------------

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


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