Barry Oglesby created GEODE-2793:
------------------------------------
Summary: 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
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
(v6.3.15#6346)