Skip to content

~1.5x perf drop in Parquet query performance at commit 5bf0db0 #7192

Description

@philrz

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".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions