[
https://issues.apache.org/jira/browse/GEODE-2793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jacob S. Barrett reassigned GEODE-2793:
---------------------------------------
Assignee: Jacob S. Barrett
> Look into reducing the amount of PDX deserializations in OQL query
> intermediate result sets for indexed OR queries containing PdxInstanceImpls
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GEODE-2793
> URL: https://issues.apache.org/jira/browse/GEODE-2793
> Project: Geode
> Issue Type: Bug
> Components: querying
> Reporter: Barry Oglesby
> Assignee: Jacob S. Barrett
> Priority: Major
>
> Intermediate result sets for each of the indexed OR clauses are represented
> by ResultsBags. Each index is sorted and iterated in
> AbstractGroupOrRangeJunction auxFilterEvaluate. When entry in the index is
> added to a ResultsBag, hashCode is invoked. In the case of a PdxInstanceImpl,
> this causes all of its identity fields to be deserialized so that hashCode
> can be invoked on them.
> Then, when each ResultsBag is sorted during QueryUtils union and
> sizeSortedUnion by invoking occurrences on each entry, equals is invoked each
> entry. In the case of a PdxInstanceImpl, this causes all of its identity
> fields to be deserialized so that equals can be invoked on them.
> Here is an example query that shows the PDX deserializations:
> {noformat}
> select * from /region this where ((map['entry1']='value1' OR
> map['entry2']='value2' OR map['entry3']='value3' OR map['entry4']='value4' OR
> map['entry5']='value5' OR map['entry6']='value6' OR map['entry7']='value7' OR
> map['entry8']='value8' OR map['entry9']='value9' OR
> map['entry10']='value10')) ...
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.2#803003)