[
https://issues.apache.org/jira/browse/PHOENIX-3667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15883416#comment-15883416
]
James Taylor commented on PHOENIX-3667:
---------------------------------------
A few minor nits on patch for EncodedCQIncrementalResultTuple:
- Can we name markTupleAsImmutable method as setImmutable to match the other
one?
- The refCount member variable goes from 0 to expectedCardinality directly. How
about adding a setCell method to EncodedCQIncrementalResultTuple and calling
that instead of making the filteredKeyValues.setCell call this directly? Then
you could increment refCount when that's called.
{code}
+ if (isQualifierForColumnInWhereExpression(qualifier)) {
+ filteredKeyValues.setCell(qualifier, cell);
{code}
- Can the getValue(int index) method call filteredKeyValues.get(index)? I know
it won't be efficient, but it's not currently called anyway.
> 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_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)