hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zheng Hu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-18410) FilterList Improvement.
Date Wed, 27 Dec 2017 08:02:00 GMT

     [ https://issues.apache.org/jira/browse/HBASE-18410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Zheng Hu updated HBASE-18410:
-----------------------------
    Release Note: 
In this task, we fixed all existing bugs in FilterList, and did the code refactor which ensured
interface compatibility .  

The primary bug  fixes are : 
1. For sub-filter in FilterList with MUST_PASS_ONE, if previous filterKeyValue() of sub-filter
returns NEXT_COL, we cannot make sure that the next cell will be the first cell in next column,
because FilterList choose the minimal forward step among sub-filters, and it may return a
SKIP. so here we add an extra check to ensure that the next cell will match preivous return
code for sub-filters. 
2. Previous logic about transforming cell of FilterList is incorrect, we should set the previous
transform result (rather than the given cell in question) as the initial vaule of transform
cell before call filterKeyValue() of FilterList.
3. Handle the ReturnCodes which the previous code did not handle. 

About code refactor, we divided the FilterList into two separated sub-classes: FilterListWithOR
and FilterListWithAND,  The FilterListWithOR has been optimised to choose the next minimal
step to seek cell rather than SKIP cell one by one, and the FilterListWithAND  has been optimised
to choose the next maximal key to seek among sub-filters in filter list. All in all, The code
in FilterList is clean and easier to follow now.

Note that ReturnCode NEXT_ROW has been redefined as skipping to next row in current family,
  not to next row in all family. it’s more reasonable, because ReturnCode is a concept in
store level, not in region level.

Another bug that needs attention is: filterAllRemaining() in FilterList with MUST_PASS_ONE
 will now return false if the filter list is empty whereas earlier it used to return true
for Operator.MUST_PASS_ONE.  it's more reasonable now.

  was:
In this task, we fixed all existing bugs in FilterList, and did the code refactor which ensured
interface compatibility .  

The primary bug  fixes are : 
1. For sub-filter in FilterList with MUST_PASS_ONE, if previous filterKeyValue() of sub-filter
returns NEXT_COL, we cannot make sure that the next cell will be the first cell in next column,
because FilterList choose the minimal forward step among sub-filters, and it may return a
SKIP. so here we add an extra check to ensure that the next cell will match preivous return
code for sub-filters. 
2. Previous logic about transforming cell of FilterList is incorrect, we should set the previous
transform result (rather than the given cell in question) as the initial vaule of transform
cell before call filterKeyValue() of FilterList.
3. Handle the ReturnCodes which the previous code did not handle. 

About code refactor, we divided the FilterList into two separated sub-classes: FilterListWithOR
and FilterListWithAND,  The FilterListWithOR has been optimised to choose the next minimal
step to seek cell rather than SKIP cell one by one, and the FilterListWithAND  has been optimised
to choose the next maximal key to seek among sub-filters in filter list. All in all, The code
in FilterList is clean and easier to follow now.

Note that ReturnCode NEXT_ROW has been redefined as skipping to next row in current family,
  not to next row in all family. it’s more reasonable, because ReturnCode is a concept in
store level, not in region level.

Another bug that needs attention is: 


> FilterList  Improvement. 
> -------------------------
>
>                 Key: HBASE-18410
>                 URL: https://issues.apache.org/jira/browse/HBASE-18410
>             Project: HBase
>          Issue Type: Umbrella
>          Components: Filters
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>             Fix For: 2.0.0-alpha-4
>
>
> FilterList.java is complex now, and we have found some improvements for it.  So create
an issue to address it.    



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message