[
https://issues.apache.org/jira/browse/PHOENIX-3667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Samarth Jain updated PHOENIX-3667:
----------------------------------
Attachment: PHOENIX-3667.patch
Updated patch with review comments. I also added a new filter -
EncodedQualifiersProjectionFilter which removes the need to using a TreeMap for
tracking the column qualifiers. I have instead used a BitSet where the index
into the bit set is the decoded column qualifier. Will list perf test results
in the next comment.
> 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
> Attachments: PHOENIX-3667.patch, PHOENIX-3667_wip.patch
>
>
> 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)