Skip to content

~18% perf delta from "-dynamic" on query of GHA sample Parquet #7152

Description

@philrz

The following delta (~79.0 ms vs. 64.9 ms) is on my Intel-based Macbook, but has been similarly reproduced on AWS EC2 instances.

$ aws s3 cp s3://super-issues/super-7152/ghasample.parquet . &&
  super -version &&
  hyperfine "super -c \"SELECT count() AS count FROM 'ghasample.parquet' WHERE actor.login='johnbieren';\"" &&
  hyperfine "super -dynamic -c \"SELECT count() AS count FROM 'ghasample.parquet' WHERE actor.login='johnbieren';\""

Version: v0.3.0-280-gbc683bdec

Benchmark 1: super -c "SELECT count() AS count FROM 'ghasample.parquet' WHERE actor.login='johnbieren';"
  Time (mean ± σ):      79.0 ms ±  12.9 ms    [User: 80.4 ms, System: 24.3 ms]
  Range (min … max):    64.5 ms … 130.3 ms    21 runs

Benchmark 1: super -dynamic -c "SELECT count() AS count FROM 'ghasample.parquet' WHERE actor.login='johnbieren';"
  Time (mean ± σ):      64.9 ms ±   1.8 ms    [User: 64.5 ms, System: 22.0 ms]
  Range (min … max):    61.6 ms …  72.6 ms    44 runs

Details

Repro is with super commit bc683bd and the GitHub Archive sample data in Parquet format as stored in the S3 URL shown in the repro above.

This delta was first observed in #7102 (comment) when verifying the fix for a wider perf delta that was originally tracked in that issue. When sharing the finding with @nwt and @mccanne, there was acknowledgement that some remaining delta was unsurprising since by definition there's "less work" performed then -dynamic flag is used. However, there also was consensus that this delta is wider than we might expect and that we might want to look into that at some point.

Claude's take

I asked Claude to do some profiling and put its findings in a Gist, should that save anyone time.

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