[ 
https://issues.apache.org/jira/browse/CALCITE-3785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stamatis Zampetakis updated CALCITE-3785:
-----------------------------------------
    Description: 
It turns out that the change in CALCITE-3713 added an extra overhead of 20~30% 
HepPlanner. The hash map lookup in belongsToDag becomes much slower due to 
expensive computation of the hashcode and equals for the list is not as 
efficient as the simple RelDataType.

To test whether or not a vertex belongs to DAG, we can simply do 
graph.vertexSet().contains(vertex); There's no need to look up in 
mapDigestToVertex map, which incurs overhead of creating the map key. This 
problem was amplified by CALCITE-3713.

  was:To test whether or not a vertex belongs to DAG, we can simply do 
graph.vertexSet().contains(vertex); There's no need to look up in 
mapDigestToVertex map, which incurs overhead of creating the map key. This 
problem was amplified by CALCITE-3713.


> Performance regression in HepPlanner#belongsToDag() due to expensive hashCode 
> computation
> -----------------------------------------------------------------------------------------
>
>                 Key: CALCITE-3785
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3785
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Xiening Dai
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> It turns out that the change in CALCITE-3713 added an extra overhead of 
> 20~30% HepPlanner. The hash map lookup in belongsToDag becomes much slower 
> due to expensive computation of the hashcode and equals for the list is not 
> as efficient as the simple RelDataType.
> To test whether or not a vertex belongs to DAG, we can simply do 
> graph.vertexSet().contains(vertex); There's no need to look up in 
> mapDigestToVertex map, which incurs overhead of creating the map key. This 
> problem was amplified by CALCITE-3713.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to