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