You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Jacob S. Barrett (Jira)" <ji...@apache.org> on 2019/08/30 22:59:00 UTC

[jira] [Assigned] (GEODE-2793) Look into reducing the amount of PDX deserializations in OQL query intermediate result sets for indexed OR queries containing PdxInstanceImpls

     [ 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)