Commit bc8230e
committed
[CALCITE-7422] Support large plan optimization mode for HepPlanner
Key optimizations of large plan mode:
1. Reusable graph, avoid reinit.
2. Efficient traversal, skip stable subtree.
3. Fine-grained GC.
Usage: see comments of HepPlanner()
Perf result of LargePlanBenchmark:
- 10K unions (~40K nodes): ~8.8s
- 100K unions (~400K nodes): ~60.6s
Without this mode, such plans will OOM and take very long time(cannot
finish).1 parent 8a87360 commit bc8230e
File tree
4 files changed
+393
-63
lines changed- core/src/main/java/org/apache/calcite/plan
- hep
- ubenchmark/src/jmh/java/org/apache/calcite/benchmarks
4 files changed
+393
-63
lines changedLines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
311 | | - | |
| 311 | + | |
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
| |||
0 commit comments