[ https://issues.apache.org/jira/browse/PHOENIX-3667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Samarth Jain updated PHOENIX-3667: ---------------------------------- Attachment: WhereClause.jpg My first perf test was to track query performance as we increase the number of columns we filter by in the where clause. As the number of columns increased, the query performance kept getting worse with the older filter. Around 20 columns or so, the perf difference was close to 100%. > 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, > WhereClause.jpg > > > 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)