When querying a Parquet file, the following query shows a ~1.5x performance drop at commit 5bf0db0 compared to the commit just prior. On my Intel-based laptop, the drop is from ~6.7 seconds to ~10.5 seconds.
$ aws s3 cp --quiet s3://brim-sampledata/mgbench/bench3.parquet . &&
super -version &&
hyperfine "super -c \"
from 'bench3.parquet' | head 3000000
| join (from 'bench3.parquet' | head 3000000) on left.log_time=right.log_time
| count()\""
Version: v0.3.0-13-g5bf0db0d1
Benchmark 1: super -c "
from 'bench3.parquet' | head 3000000
| join (from 'bench3.parquet' | head 3000000) on left.log_time=right.log_time
| count()"
Time (mean ± σ): 10.456 s ± 0.571 s [User: 19.904 s, System: 0.624 s]
Range (min … max): 9.558 s … 10.919 s 10 runs
$ super -version &&
hyperfine "super -c \"
from 'bench3.parquet' | head 3000000
| join (from 'bench3.parquet' | head 3000000) on left.log_time=right.log_time
| count()\""
Version: v0.3.0-12-g2afddff09
Benchmark 1: super -c "
from 'bench3.parquet' | head 3000000
| join (from 'bench3.parquet' | head 3000000) on left.log_time=right.log_time
| count()"
Time (mean ± σ): 6.726 s ± 0.537 s [User: 11.685 s, System: 0.517 s]
Range (min … max): 6.143 s … 7.273 s 10 runs
Details
Repro is with super commit 5bf0db0, which is associated with the merge of #6776. The query above is a simplification of the mgbench bench3/q2 query where the symptom was first noticed.
After performing the binary search to spot where the perf changed, I used Claude to help create the simplified repro query above and offer its take on the root cause and ideas for addressing it, which is captured in a Gist titled "Performance regression: TypeDefs.LookupTypeRecord re-resolves the full type tree on every call, doubling join-heavy queries".
When querying a Parquet file, the following query shows a ~1.5x performance drop at commit 5bf0db0 compared to the commit just prior. On my Intel-based laptop, the drop is from ~6.7 seconds to ~10.5 seconds.
Details
Repro is with super commit 5bf0db0, which is associated with the merge of #6776. The query above is a simplification of the mgbench bench3/q2 query where the symptom was first noticed.
After performing the binary search to spot where the perf changed, I used Claude to help create the simplified repro query above and offer its take on the root cause and ideas for addressing it, which is captured in a Gist titled "Performance regression: TypeDefs.LookupTypeRecord re-resolves the full type tree on every call, doubling join-heavy queries".