hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18160) Fix incorrect logic in FilterList.filterKeyValue
Date Thu, 28 Sep 2017 17:01:02 GMT

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

Nick Dimiduk commented on HBASE-18160:

For a patch to hit 1.1, it must first pass muster on all subsequent release lines; FYI [~busbey],

Would you mind summarizing the changes made here for we release managers? Seems this change
will change the behavior of builtin filters. My concern with backporting to branch-1.1,1.2
is that someone's existing filters will become subtly broken via a patch update, not a desirable
outcome for any branch well into the maintenance cycle.

> Fix incorrect  logic in FilterList.filterKeyValue
> -------------------------------------------------
>                 Key: HBASE-18160
>                 URL: https://issues.apache.org/jira/browse/HBASE-18160
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>             Fix For: 1.4.0, 1.2.6, 1.3.2, 2.0.0-alpha-3
>         Attachments: filter-and-map.txt, filter-or-map.txt, HBASE-18160.branch-1.3.v1.patch,
HBASE-18160.branch-1.3.v1.patch, HBASE-18160.branch-1.4.v1.patch, HBASE-18160.branch-1.4.v1.patch,
HBASE-18160.v1.patch, HBASE-18160.v2.patch, HBASE-18160.v2.patch, HBASE-18160.v3.patch, HBASE-18160.v4.patch,
HBASE-18160.v5.patch, HBASE-18160.v6.patch, HBASE-18160.v6.patch, HBASE-18160.v7.patch, HBASE-18160.v8.patch
> As HBASE-17678 said, there are two problems in FilterList.filterKeyValue implementation:

> 1.  FilterList did not consider INCLUDE_AND_SEEK_NEXT_ROW case( seems like INCLUDE_AND_SEEK_NEXT_ROW
is a newly added case, and the dev forgot to consider FilterList), So if a user use INCLUDE_AND_SEEK_NEXT_ROW
in his own Filter and wrapped by a FilterList,  it'll  throw  an IllegalStateException("Received
code is not valid."). 
> 2.  For FilterList with MUST_PASS_ONE,   if filter-A in filter list return  INCLUDE and
filter-B in filter list return INCLUDE_AND_NEXT_COL,   the FilterList will return  INCLUDE_AND_NEXT_COL
finally.  According to the mininal step rule , It's incorrect.  (filter list with MUST_PASS_ONE
choose the mininal step among filters in filter list. Let's call it: The Mininal Step Rule).

This message was sent by Atlassian JIRA

View raw message