[
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.
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:
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.
> 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
> Attachments: after.png, before.png
>
> 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.
> 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)