[
https://issues.apache.org/jira/browse/PHOENIX-3667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15872959#comment-15872959
]
Samarth Jain commented on PHOENIX-3667:
---------------------------------------
bq. For encoded mutable tables, stop after we have encountered a column
qualifier that is >= max qualifier we expect.
[~jamestaylor], do filters need to return ReturnCode.NEXT_COL to make sure that
we don't move on to the next row since we may need to return columns that in
the select part of the sql too? If yes, then this would be more work as then I
would need to include the columns in the select part of the sql while
determining the max qualifier.
Or does adding a column into the scan via scan.addCol() is enough and
orthogonal to filters.
> Optimize BooleanExpressionFilter for tables with encoded columns
> ----------------------------------------------------------------
>
> Key: PHOENIX-3667
> URL: https://issues.apache.org/jira/browse/PHOENIX-3667
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: James Taylor
> Assignee: Samarth Jain
>
> The client side of Phoenix determines the subclass of BooleanExpressionFilter
> we use based on how many column families and column qualifiers are being
> referenced. The idea is to minimize the lookup cost during filter evaluation.
> For encoded columns, instead of using a Map or Set, we can create a few new
> subclasses of BooleanExpressionFilter that use an array instead. No need for
> any lookups or equality checks - just fill in the position based on the
> column qualifier value instead. Since filters are applied on every row
> between the start/stop key, this will improve performance quite a bit.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)