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

Preston Koprivica commented on HBASE-15243:
-------------------------------------------

This might be tangential but I think seeking could be a bit more aggressive on 
the MUST_PASS_ALL case as well.  It appears that the filterKeyValue method 
simply assigns the internal seekHintFilter to the LAST filter that returned a 
SEEK_NEXT_USING_HINT [1].  It seems like a more aggressive approach would be to 
seek to the highest hint (Any previous/lower row won't be accepted by the 
filter returning that seek).  Since the seek filter is simply the last filter 
that was evaluated, there's no guarantee that we're actually seeking as far as 
we could.   Rather than use a single filter, we could collect all the filters 
that return that code and then return the maximum seek value of all the filters.

[1] 
https://github.com/apache/hbase/blob/682b8ab8a542a903e5807053282693e3a96bad2d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java#L271

> Utilize the lowest seek value when all Filters in MUST_PASS_ONE FilterList 
> return SEEK_NEXT_USING_HINT
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15243
>                 URL: https://issues.apache.org/jira/browse/HBASE-15243
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 2.0.0, 1.3.0
>
>         Attachments: HBASE-15243-v1.txt
>
>
> As Preston Koprivica pointed out at the tail of HBASE-4394, when all filters 
> in a MUST_PASS_ONE FilterList return a SEEK_USING_NEXT_HINT code, we should 
> return SEEK_NEXT_USING_HINT from the FilterList to utilize the lowest seek 
> value.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to