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

Anoop Sam John updated HBASE-5664:
----------------------------------

    Release Note: 
This adds a new CP hook in RegionObserver , postScannerFilterRow()
This will be called by the scan flow when the current scanned row is being 
filtered out by the filter.
The filter may be filtering out the row via any of the below scenarios
1. Filter's filterRowKey(byte [] buffer, int offset, int length) returning true 
so as to exclude this row
2. At the end of the row scan filter's filterRow() returning true
3. Filter's filterRow(List<KeyValue> kvs) removing all the kvs from the passed 
List making the full row to be filtered out

This hook can be used for doing a fast forward in such a case if the user wants 
to do so. One can use RegionScanner#reseek(byte[] row) for doing this fast 
forward

    
> CP hooks in Scan flow for fast forward when filter filters out a row
> --------------------------------------------------------------------
>
>                 Key: HBASE-5664
>                 URL: https://issues.apache.org/jira/browse/HBASE-5664
>             Project: HBase
>          Issue Type: Improvement
>          Components: Coprocessors, Filters
>    Affects Versions: 0.92.1
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 0.96.0, 0.94.5
>
>         Attachments: HBASE-5664_94.patch, HBASE-5664_94_V2.patch, 
> HBASE-5664_Trunk.patch, HBASE-5664_Trunk_V2.patch
>
>
> In HRegion.nextInternal(int limit, String metric)
>       We have while(true) loop so as to fetch a next result which satisfies 
> filter condition. When Filter filters out the current fetched row we call 
> nextRow(byte [] currentRow) before going with the next row.
> {code}        
> if (results.isEmpty() || filterRow()) {
>             // this seems like a redundant step - we already consumed the row
>             // there're no left overs.
>             // the reasons for calling this method are:
>             // 1. reset the filters.
>             // 2. provide a hook to fast forward the row (used by subclasses)
>             nextRow(currentRow);
> {code}
> // 2. provide a hook to fast forward the row (used by subclasses)
> We can provide same feature of fast forward support for the CP also.

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

Reply via email to