Skip to content

feat: pick hash join mode at runtime from the build side (AQE without stages) - #26328

Open
andygrove wants to merge 3 commits into
apache:mainfrom
andygrove:andygrove/aqe-datafusion-tpc-h-prototype
Open

andygrove wants to merge 3 commits into
apache:mainfrom
andygrove:andygrove/aqe-datafusion-tpc-h-prototype

Conversation

@andygrove

@andygrove andygrove commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Which issue does this PR close?

Rationale for this change

Adaptive query execution (AQE) is often read as Spark-style staged execution: materialize a stage, then re-plan the rest of the query. This PR shows that DataFusion can get the benefit without any of that, and without becoming a staged engine.

A hash join already waits for its entire build side before it probes anything. That pipeline breaker is already in every plan. Once the build side is complete, its exact size is known for free, and the join can still choose how to run its probe side. This PR does exactly that, and nothing more:

  • No new stages or barriers. The only wait is for the build side, which the hash join has to do anyway.
  • No re-planning. The optimizer runs once, as today. At runtime the join picks between two modes it already supports.
  • No change to the execution order, so dynamic filters work exactly as they do today.

Today the choice between CollectLeft (one shared hash table, probe side read as is) and Partitioned (both sides hash-repartitioned) is made at planning time, from estimates. Only joins whose build side is estimated under 4 MiB / 128K rows get CollectLeft. At TPC-H SF100 the estimates for filtered scans, joins and aggregates are rough, so almost every join is planned Partitioned. Queries then hash-repartition hundreds of millions of probe rows to join against build sides that turn out to be tiny. For example, Q9 repartitions all 600M lineitem rows to join 1.09M parts, and Q11 repartitions 80M partsupp rows to join 1M suppliers.

What changes are included in this PR?

New options, with the feature off by default:

Option Default Meaning
datafusion.optimizer.enable_adaptive_hash_join false Turns the feature on
datafusion.optimizer.adaptive_hash_join_threshold_rows 4194304 Largest build side, in rows, that runs as CollectLeft
datafusion.optimizer.adaptive_hash_join_threshold 1 GiB The same, in bytes
datafusion.optimizer.adaptive_hash_join_max_probe_ratio 0.05 The same, as a fraction of the estimated probe rows

When it is on, the new AdaptiveHashJoin physical optimizer rule wraps each Partitioned hash join whose probe side is hash-repartitioned in a new AdaptiveHashJoinExec. The rule runs after dynamic filters are pushed down, and does nothing when the option is off. When the operator starts, it collects the build side, as the join would anyway. Then:

  • If the whole build side is under the thresholds, it runs the join in CollectLeft mode and reads the probe side as it is, without the repartition.
  • As soon as the build side exceeds them, it stops collecting and runs the join in Partitioned mode exactly as planned. The rest of the build side streams in behind the batches collected so far.

So it never waits longer than the join itself would, and never holds more of the build side than the hash table will. Everything else stays as the optimizer made it. The wrapped join keeps its dynamic filter, which is already pushed into the probe-side scans, and the plan's properties are unchanged. dfbench tpch --adaptive turns the option on.

Why not stages

I tried the Spark-style approach first: run each build side bottom-up as its own stage, then re-optimize the rest of the plan with exact statistics. It made Q18 2x slower.

DataFusion builds hash tables top-down along the probe side. In Q18, the semi join at the top finishes its build side first, and its dynamic filter then prunes the orders scan that feeds the build side of the join below it. Running that lower build side as an earlier, separate stage lost the filter, so its hash table was built over 150M rows instead of 85.7M. Keeping DataFusion's own execution order is not just less invasive, it is faster.

Details

  • Joins that track matched build rows (Left, LeftSemi, LeftAnti, LeftMark and Full) share one bitmap across all probe threads in CollectLeft mode. They only switch for build sides within the existing hash_join_single_partition_threshold_rows (128K rows).
  • Output partitioning: where a parent relies on the join's output being hash partitioned, a switched join repartitions its output instead. That output is usually much smaller than the probe input it no longer repartitions.
  • Memory: the collected build batches are accounted for in the memory pool until the join takes them. Collection also stops as soon as they exceed the byte threshold, or the pool is full, and the join then runs Partitioned.
  • Unpolled partitions: a Partitioned hash join waits for every partition to report its build side before it publishes its dynamic filter. Partitions that a parent never polls are therefore still created and dropped, so that they report as canceled.
  • Serialization: plans with the option on cannot be serialized with datafusion-proto yet.

Results

All runs use the same binary with and without --adaptive. The SF1000 and M3 numbers were measured with the earlier benchmarks-only version of this code, which makes the same decision for every join.

TPC-H SF100 on a Ryzen 9 7950X3D (16 cores, 124 GB): total time 109.1 s → 95.9 s, 1.14x faster. The biggest gains are Q11 2.20x, Q8 1.62x, Q2 1.48x, Q9 1.45x, Q7 1.26x, Q17 1.18x, Q12 1.15x. No query is more than 2% slower.

Per-query times (median of 3)
Query main (ms) AQE (ms) Speedup
Q1 2,462 2,385 1.03x
Q2 1,407 953 1.48x
Q3 3,438 3,352 1.03x
Q4 1,279 1,243 1.03x
Q5 6,325 5,910 1.07x
Q6 1,158 1,168 0.99x
Q7 10,521 8,332 1.26x
Q8 6,593 4,082 1.62x
Q9 11,977 8,236 1.45x
Q10 5,141 5,100 1.01x
Q11 1,308 595 2.20x
Q12 1,501 1,308 1.15x
Q13 3,466 3,410 1.02x
Q14 1,934 1,970 0.98x
Q15 3,991 3,969 1.01x
Q16 825 802 1.03x
Q17 11,683 9,936 1.18x
Q18 15,798 15,991 0.99x
Q19 2,133 2,028 1.05x
Q20 3,884 3,805 1.02x
Q21 11,702 10,735 1.09x
Q22 544 547 0.99x
Total 109,070 95,855 1.14x

TPC-H SF100 on an M3 Ultra (28 cores, 96 GB): 1.08x, with the same wins. Q21 (0.92x) and Q10 (0.93x) are slower there. Q21 switches a 1M-row supplier join, which pays off on the 7950X3D, whose 128 MB L3 holds the hash table, but not on the M3. A row threshold is a crude cost model.

TPC-H SF1000 on the 7950X3D: 1.08x overall. At this scale the data (about 380 GB) is three times the machine's memory, so most queries wait on the disk, and the clear wins are the joins that no longer repartition lineitem: Q8, Q17, Q19 and Q2. Each query ran in its own process, in the order main, AQE, AQE, main. Main's first run is always the coldest, which flatters AQE; comparing only the second run of each side, which both follow a run of the same query, gives 1.04x. Q18 ran out of memory both with and without AQE.

Per-query times (mean of 2 runs each)
Query main (s) AQE (s) Speedup Warm runs only
Q1 24.4 23.7 1.03x 0.96x
Q2 17.0 14.5 1.17x 1.12x
Q3 37.2 37.9 0.98x 0.91x
Q4 20.8 19.0 1.10x 0.95x
Q5 72.0 73.7 0.98x 0.97x
Q6 9.8 9.5 1.03x 0.97x
Q7 143.6 134.5 1.07x 0.99x
Q8 77.2 53.2 1.45x 1.47x
Q9 156.4 150.3 1.04x 1.00x
Q10 57.7 55.7 1.03x 1.00x
Q11 15.6 15.4 1.02x 1.00x
Q12 15.0 13.9 1.08x 0.99x
Q13 40.5 39.5 1.02x 1.00x
Q14 21.3 19.6 1.09x 0.99x
Q15 40.3 39.1 1.03x 1.00x
Q16 10.9 9.1 1.19x 0.97x
Q17 123.1 103.8 1.19x 1.18x
Q18 out of memory out of memory
Q19 21.5 17.6 1.22x 1.12x
Q20 41.9 41.2 1.02x 1.01x
Q21 150.9 149.3 1.01x 0.99x
Q22 5.9 5.5 1.06x 1.00x
Total 1103 1026 1.08x 1.04x

Could a static threshold do the same? On TPC-H, mostly. In a separate run on the 7950X3D, raising the planning-time thresholds to about the same level (4M rows / 128 MiB) got 1.14x, about the same total as AQE (1.07x on the M3, against 1.08x for AQE). TPC-H's estimates for filtered dimension tables are good enough to find the same wins, and the static thresholds also win Q10 (1.09x), where AQE does not switch. But they switch some joins on estimates that turn out wrong: Q22 is 0.81x, Q13 0.90x and Q4 and Q15 0.96x, while the slowest query with AQE is Q4 at 0.97x. Deciding from the real build side gets the same gains without depending on the estimates being right.

What is the testing strategy for this PR?

  • datafusion/core/tests/physical_optimizer/adaptive_hash_join.rs covers five cases, each checking the results against the static plan:
    • a small build side switches to CollectLeft;
    • a build side over the threshold stays Partitioned, and the rest of it, after the batches collected up to the threshold, still reaches the join;
    • a semi join uses hash_join_single_partition_threshold_rows;
    • a switched join repartitions its output where a parent relies on its partitioning;
    • partitions that a parent never polls do not hang the query. This test hangs and fails at its timeout without the fix.
  • adaptive_hash_join.slt checks that the option is off by default and the plan when it is on, and that inner, semi, anti, left and full joins return the same results with it off, on, and on with every join kept Partitioned.
  • All 22 TPC-H queries return the same results with and without the option at SF1 under five settings, and at SF100 on two different datasets.

Are there any user-facing changes?

Four new configuration options. The feature is off by default, so nothing changes unless it is turned on.

Add an adaptive query execution (AQE) prototype to `dfbench`. With
`dfbench tpch --adaptive`, every partitioned hash join whose probe side is
hash repartitioned is wrapped in an `AdaptiveHashJoinExec`. At runtime it
collects the build side up to a threshold, then runs the join in
`CollectLeft` mode when the build side is small, without repartitioning
the probe side, or in `Partitioned` mode otherwise, streaming the rest of
the build side behind the batches collected so far.

The rest of the plan, its execution order and its dynamic filters are
unchanged.
@andygrove andygrove changed the title feat(benchmarks): prototype adaptive hash join mode selection (AQE) feat(benchmarks): pick hash join mode at runtime from the build side (AQE without stages) Oct 14, 2026
Move the adaptive hash join out of the benchmarks crate. With
`datafusion.optimizer.enable_adaptive_hash_join` (off by default), the new
`AdaptiveHashJoin` physical optimizer rule wraps each partitioned hash
join whose probe side is hash repartitioned in an `AdaptiveHashJoinExec`.

A hash join reads its whole build side before probing, so the new
operator adds no wait: once the build side is read, it runs the join in
`CollectLeft` mode, without repartitioning the probe side, if the build
side is within `adaptive_hash_join_threshold_rows`,
`adaptive_hash_join_threshold` and `adaptive_hash_join_max_probe_ratio`,
and in `Partitioned` mode as planned otherwise. It keeps the wrapped
join's properties and dynamic filter, and accounts for the build batches
it collects in the memory pool, falling back to `Partitioned` mode when
the pool is full.

`dfbench tpch --adaptive` now sets the option.
@andygrove andygrove changed the title feat(benchmarks): pick hash join mode at runtime from the build side (AQE without stages) feat: pick hash join mode at runtime from the build side (AQE without stages) Oct 14, 2026
- Count collected build batches with `RecordBatchMemoryCounter`, check the
  byte threshold as they arrive, and keep their memory reserved until the
  join takes each batch
- Keep the inputs needed to create the join to run apart from the runtime
  state, so the shared future creating it no longer keeps that state alive
- Hand collected batches over through `StreamingTableExec`, releasing each
  batch as soon as the join takes it
- Share the eligibility check between the rule and the operator, derive the
  planned partitionings from the wrapped join, and reuse
  `need_produce_result_in_final`, `execute_stream_partitioned` and
  `validate_child_count!`
- Cancel abandoned partitions outside the lock, and only compute probe
  statistics when the probe ratio applies
- Share the test setup, and include the same queries for each setting in
  the sqllogictest
@andygrove
andygrove marked this pull request as ready for review October 14, 2026 21:42
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
     Cloning apache/main
    Building datafusion v55.1.0 (current)
       Built [  38.527s] (current)
     Parsing datafusion v55.1.0 (current)
      Parsed [   0.023s] (current)
    Building datafusion v55.1.0 (baseline)
       Built [  35.209s] (baseline)
     Parsing datafusion v55.1.0 (baseline)
      Parsed [   0.022s] (baseline)
    Checking datafusion v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.419s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  76.187s] datafusion
    Building datafusion-common v55.1.0 (current)
       Built [  20.329s] (current)
     Parsing datafusion-common v55.1.0 (current)
      Parsed [   0.044s] (current)
    Building datafusion-common v55.1.0 (baseline)
       Built [  21.640s] (baseline)
     Parsing datafusion-common v55.1.0 (baseline)
      Parsed [   0.045s] (baseline)
    Checking datafusion-common v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.531s] 223 checks: 222 pass, 1 fail, 0 warn, 31 skip

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field OptimizerOptions.enable_adaptive_hash_join in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:1643
  field OptimizerOptions.adaptive_hash_join_threshold_rows in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:1643
  field OptimizerOptions.adaptive_hash_join_threshold in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:1643
  field OptimizerOptions.adaptive_hash_join_max_probe_ratio in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:1643

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  43.607s] datafusion-common
    Building datafusion-physical-optimizer v55.1.0 (current)
       Built [  23.740s] (current)
     Parsing datafusion-physical-optimizer v55.1.0 (current)
      Parsed [   0.013s] (current)
    Building datafusion-physical-optimizer v55.1.0 (baseline)
       Built [  25.908s] (baseline)
     Parsing datafusion-physical-optimizer v55.1.0 (baseline)
      Parsed [   0.015s] (baseline)
    Checking datafusion-physical-optimizer v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.083s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  50.752s] datafusion-physical-optimizer
    Building datafusion-physical-plan v55.1.0 (current)
       Built [  24.239s] (current)
     Parsing datafusion-physical-plan v55.1.0 (current)
      Parsed [   0.134s] (current)
    Building datafusion-physical-plan v55.1.0 (baseline)
       Built [  25.463s] (baseline)
     Parsing datafusion-physical-plan v55.1.0 (baseline)
      Parsed [   0.131s] (baseline)
    Checking datafusion-physical-plan v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.470s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [  51.589s] datafusion-physical-plan
    Building datafusion-sqllogictest v55.1.0 (current)
       Built [  68.064s] (current)
     Parsing datafusion-sqllogictest v55.1.0 (current)
      Parsed [   0.013s] (current)
    Building datafusion-sqllogictest v55.1.0 (baseline)
       Built [  63.452s] (baseline)
     Parsing datafusion-sqllogictest v55.1.0 (baseline)
      Parsed [   0.012s] (baseline)
    Checking datafusion-sqllogictest v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.074s] 223 checks: 223 pass, 31 skip
     Summary no semver update required
    Finished [ 133.733s] datafusion-sqllogictest

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Oct 14, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 78.64924% with 98 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.79%. Comparing base (0d79252) to head (47b94c4).
⚠️ Report is 11 commits behind head on main.

Files with missing lines Patch % Lines
...sion/physical-plan/src/joins/hash_join/adaptive.rs 75.42% 64 Missing and 22 partials ⚠️
...usion/physical-optimizer/src/adaptive_hash_join.rs 91.34% 5 Missing and 4 partials ⚠️
benchmarks/src/tpch/run.rs 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #26328      +/-   ##
==========================================
- Coverage   82.80%   82.79%   -0.01%     
==========================================
  Files        1149     1151       +2     
  Lines      454146   454604     +458     
  Branches   454146   454604     +458     
==========================================
+ Hits       376035   376386     +351     
- Misses      55260    55336      +76     
- Partials    22851    22882      +31     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@avantgardnerio

Copy link
Copy Markdown
Contributor

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c6195206337-3461-xqplp 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c6195206337-3459-kgwn5 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark clickbench_partitioned

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c6195206337-3460-z24dr 6.12.94+ #1 SMP Fri Aug 21 08:00:16 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃     HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1  │ 41.03 ms │                                 40.32 ms │ no change │
│ QQuery 2  │ 18.53 ms │                                 18.64 ms │ no change │
│ QQuery 3  │ 29.22 ms │                                 28.97 ms │ no change │
│ QQuery 4  │ 17.20 ms │                                 17.74 ms │ no change │
│ QQuery 5  │ 36.04 ms │                                 36.68 ms │ no change │
│ QQuery 6  │ 13.88 ms │                                 13.53 ms │ no change │
│ QQuery 7  │ 42.81 ms │                                 42.83 ms │ no change │
│ QQuery 8  │ 41.52 ms │                                 41.37 ms │ no change │
│ QQuery 9  │ 51.30 ms │                                 51.34 ms │ no change │
│ QQuery 10 │ 41.41 ms │                                 40.93 ms │ no change │
│ QQuery 11 │ 14.14 ms │                                 14.03 ms │ no change │
│ QQuery 12 │ 18.18 ms │                                 18.28 ms │ no change │
│ QQuery 13 │ 40.28 ms │                                 40.96 ms │ no change │
│ QQuery 14 │ 24.70 ms │                                 24.85 ms │ no change │
│ QQuery 15 │ 31.54 ms │                                 31.28 ms │ no change │
│ QQuery 16 │ 13.91 ms │                                 13.91 ms │ no change │
│ QQuery 17 │ 77.20 ms │                                 76.94 ms │ no change │
│ QQuery 18 │ 47.25 ms │                                 46.73 ms │ no change │
│ QQuery 19 │ 32.05 ms │                                 32.22 ms │ no change │
│ QQuery 20 │ 32.07 ms │                                 32.56 ms │ no change │
│ QQuery 21 │ 56.83 ms │                                 57.33 ms │ no change │
│ QQuery 22 │ 13.95 ms │                                 14.27 ms │ no change │
└───────────┴──────────┴──────────────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 735.04ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │ 735.72ms │
│ Average Time (HEAD)                                     │  33.41ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │  33.44ms │
│ Queries Faster                                          │        0 │
│ Queries Slower                                          │        0 │
│ Queries with No Change                                  │       22 │
│ Queries with Failure                                    │        0 │
└─────────────────────────────────────────────────────────┴──────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │ 41.03 / 42.78 ±1.30 / 44.88 ms │           40.32 / 42.75 ±2.63 / 47.11 ms │    no change │
│ QQuery 2  │ 18.53 / 18.98 ±0.42 / 19.50 ms │           18.64 / 19.02 ±0.31 / 19.56 ms │    no change │
│ QQuery 3  │ 29.22 / 30.07 ±0.96 / 31.85 ms │           28.97 / 29.52 ±0.43 / 30.27 ms │    no change │
│ QQuery 4  │ 17.20 / 17.41 ±0.16 / 17.67 ms │           17.74 / 18.52 ±0.82 / 19.59 ms │ 1.06x slower │
│ QQuery 5  │ 36.04 / 36.78 ±0.53 / 37.51 ms │           36.68 / 37.77 ±1.18 / 40.03 ms │    no change │
│ QQuery 6  │ 13.88 / 13.99 ±0.09 / 14.09 ms │           13.53 / 14.07 ±0.70 / 15.43 ms │    no change │
│ QQuery 7  │ 42.81 / 45.18 ±1.96 / 48.11 ms │           42.83 / 45.69 ±1.70 / 47.89 ms │    no change │
│ QQuery 8  │ 41.52 / 42.52 ±1.31 / 45.08 ms │           41.37 / 42.53 ±1.39 / 45.26 ms │    no change │
│ QQuery 9  │ 51.30 / 52.85 ±0.82 / 53.64 ms │           51.34 / 52.31 ±1.01 / 54.21 ms │    no change │
│ QQuery 10 │ 41.41 / 42.04 ±0.82 / 43.66 ms │           40.93 / 42.32 ±0.87 / 43.49 ms │    no change │
│ QQuery 11 │ 14.14 / 14.54 ±0.37 / 15.13 ms │           14.03 / 14.40 ±0.57 / 15.52 ms │    no change │
│ QQuery 12 │ 18.18 / 18.81 ±0.36 / 19.18 ms │           18.28 / 19.06 ±0.70 / 20.19 ms │    no change │
│ QQuery 13 │ 40.28 / 42.23 ±1.61 / 45.04 ms │           40.96 / 42.08 ±1.28 / 44.52 ms │    no change │
│ QQuery 14 │ 24.70 / 25.17 ±0.36 / 25.68 ms │           24.85 / 25.32 ±0.29 / 25.56 ms │    no change │
│ QQuery 15 │ 31.54 / 32.77 ±0.78 / 33.49 ms │           31.28 / 32.21 ±0.63 / 32.96 ms │    no change │
│ QQuery 16 │ 13.91 / 14.18 ±0.20 / 14.42 ms │           13.91 / 14.14 ±0.18 / 14.34 ms │    no change │
│ QQuery 17 │ 77.20 / 78.03 ±0.81 / 79.11 ms │           76.94 / 79.50 ±1.89 / 82.54 ms │    no change │
│ QQuery 18 │ 47.25 / 47.81 ±0.52 / 48.52 ms │           46.73 / 48.19 ±1.71 / 51.31 ms │    no change │
│ QQuery 19 │ 32.05 / 32.54 ±0.40 / 33.22 ms │           32.22 / 33.07 ±1.05 / 35.11 ms │    no change │
│ QQuery 20 │ 32.07 / 32.73 ±0.43 / 33.16 ms │           32.56 / 32.96 ±0.31 / 33.44 ms │    no change │
│ QQuery 21 │ 56.83 / 58.42 ±1.15 / 59.92 ms │           57.33 / 59.85 ±1.64 / 61.92 ms │    no change │
│ QQuery 22 │ 13.95 / 14.43 ±0.43 / 15.11 ms │           14.27 / 14.43 ±0.15 / 14.67 ms │    no change │
└───────────┴────────────────────────────────┴──────────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 754.26ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │ 759.72ms │
│ Average Time (HEAD)                                     │  34.28ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │  34.53ms │
│ Queries Faster                                          │        0 │
│ Queries Slower                                          │        1 │
│ Queries with No Change                                  │       21 │
│ Queries with Failure                                    │        0 │
└─────────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 481.4 MiB
CPU user 20.9s
CPU sys 1.8s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.1 GiB
Avg memory 469.3 MiB
CPU user 21.0s
CPU sys 1.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │    6.03 ms │                                  5.95 ms │     no change │
│ QQuery 2  │   84.28 ms │                                 81.87 ms │     no change │
│ QQuery 3  │   30.87 ms │                                 29.95 ms │     no change │
│ QQuery 4  │  520.13 ms │                                522.38 ms │     no change │
│ QQuery 5  │   53.01 ms │                                 52.01 ms │     no change │
│ QQuery 6  │   37.83 ms │                                 36.15 ms │     no change │
│ QQuery 7  │   74.92 ms │                                 73.80 ms │     no change │
│ QQuery 8  │   37.13 ms │                                 37.30 ms │     no change │
│ QQuery 9  │   53.73 ms │                                 54.85 ms │     no change │
│ QQuery 10 │   61.60 ms │                                 61.54 ms │     no change │
│ QQuery 11 │  341.72 ms │                                316.70 ms │ +1.08x faster │
│ QQuery 12 │   32.90 ms │                                 31.04 ms │ +1.06x faster │
│ QQuery 13 │  122.92 ms │                                119.30 ms │     no change │
│ QQuery 14 │  409.31 ms │                                394.59 ms │     no change │
│ QQuery 15 │   65.45 ms │                                 61.30 ms │ +1.07x faster │
│ QQuery 16 │    6.77 ms │                                  6.57 ms │     no change │
│ QQuery 17 │   82.49 ms │                                 80.84 ms │     no change │
│ QQuery 18 │  114.11 ms │                                112.09 ms │     no change │
│ QQuery 19 │   44.00 ms │                                 41.90 ms │     no change │
│ QQuery 20 │   40.23 ms │                                 36.52 ms │ +1.10x faster │
│ QQuery 21 │   18.38 ms │                                 17.41 ms │ +1.06x faster │
│ QQuery 22 │   71.67 ms │                                 71.20 ms │     no change │
│ QQuery 23 │  350.57 ms │                                346.30 ms │     no change │
│ QQuery 24 │  214.91 ms │                                213.12 ms │     no change │
│ QQuery 25 │  115.07 ms │                                113.41 ms │     no change │
│ QQuery 26 │   48.11 ms │                                 49.31 ms │     no change │
│ QQuery 27 │    7.00 ms │                                  6.91 ms │     no change │
│ QQuery 28 │   62.41 ms │                                 58.11 ms │ +1.07x faster │
│ QQuery 29 │   99.40 ms │                                101.91 ms │     no change │
│ QQuery 30 │   34.84 ms │                                 37.39 ms │  1.07x slower │
│ QQuery 31 │  111.87 ms │                                117.40 ms │     no change │
│ QQuery 32 │   21.22 ms │                                 21.97 ms │     no change │
│ QQuery 33 │   37.84 ms │                                 39.29 ms │     no change │
│ QQuery 34 │   10.51 ms │                                 11.46 ms │  1.09x slower │
│ QQuery 35 │   79.27 ms │                                 81.97 ms │     no change │
│ QQuery 36 │    6.53 ms │                                  6.47 ms │     no change │
│ QQuery 37 │    7.51 ms │                                  7.46 ms │     no change │
│ QQuery 38 │   65.80 ms │                                 67.46 ms │     no change │
│ QQuery 39 │   78.11 ms │                                 80.52 ms │     no change │
│ QQuery 40 │   25.60 ms │                                 25.76 ms │     no change │
│ QQuery 41 │   12.98 ms │                                 13.30 ms │     no change │
│ QQuery 42 │   24.76 ms │                                 25.62 ms │     no change │
│ QQuery 43 │    5.45 ms │                                  5.80 ms │  1.06x slower │
│ QQuery 44 │    9.44 ms │                                 10.10 ms │  1.07x slower │
│ QQuery 45 │   47.58 ms │                                 49.65 ms │     no change │
│ QQuery 46 │   12.97 ms │                                 14.08 ms │  1.09x slower │
│ QQuery 47 │  264.23 ms │                                264.85 ms │     no change │
│ QQuery 48 │   93.98 ms │                                 95.65 ms │     no change │
│ QQuery 49 │   75.01 ms │                                 73.12 ms │     no change │
│ QQuery 50 │   62.23 ms │                                 60.87 ms │     no change │
│ QQuery 51 │   98.72 ms │                                 95.16 ms │     no change │
│ QQuery 52 │   25.29 ms │                                 25.18 ms │     no change │
│ QQuery 53 │   30.56 ms │                                 30.23 ms │     no change │
│ QQuery 54 │   55.92 ms │                                 54.91 ms │     no change │
│ QQuery 55 │   25.25 ms │                                 24.74 ms │     no change │
│ QQuery 56 │   40.69 ms │                                 39.72 ms │     no change │
│ QQuery 57 │  182.72 ms │                                174.62 ms │     no change │
│ QQuery 58 │  112.44 ms │                                110.76 ms │     no change │
│ QQuery 59 │  119.94 ms │                                116.64 ms │     no change │
│ QQuery 60 │   40.57 ms │                                 38.82 ms │     no change │
│ QQuery 61 │   12.18 ms │                                 11.30 ms │ +1.08x faster │
│ QQuery 62 │   46.84 ms │                                 44.54 ms │     no change │
│ QQuery 63 │   30.81 ms │                                 30.02 ms │     no change │
│ QQuery 64 │  395.34 ms │                                382.96 ms │     no change │
│ QQuery 65 │  139.26 ms │                                139.54 ms │     no change │
│ QQuery 66 │   82.07 ms │                                 80.75 ms │     no change │
│ QQuery 67 │  290.31 ms │                                278.81 ms │     no change │
│ QQuery 68 │   12.76 ms │                                 13.09 ms │     no change │
│ QQuery 69 │   58.40 ms │                                 57.72 ms │     no change │
│ QQuery 70 │  107.09 ms │                                106.81 ms │     no change │
│ QQuery 71 │   36.02 ms │                                 36.97 ms │     no change │
│ QQuery 72 │ 1773.66 ms │                               1788.13 ms │     no change │
│ QQuery 73 │   11.27 ms │                                 11.08 ms │     no change │
│ QQuery 74 │  202.85 ms │                                198.73 ms │     no change │
│ QQuery 75 │  149.62 ms │                                146.25 ms │     no change │
│ QQuery 76 │   36.41 ms │                                 35.75 ms │     no change │
│ QQuery 77 │   63.31 ms │                                 61.78 ms │     no change │
│ QQuery 78 │  178.36 ms │                                173.80 ms │     no change │
│ QQuery 79 │   70.07 ms │                                 71.31 ms │     no change │
│ QQuery 80 │  101.85 ms │                                104.78 ms │     no change │
│ QQuery 81 │   26.99 ms │                                 28.95 ms │  1.07x slower │
│ QQuery 82 │   17.24 ms │                                 18.05 ms │     no change │
│ QQuery 83 │   34.10 ms │                                 34.56 ms │     no change │
│ QQuery 84 │   30.82 ms │                                 30.88 ms │     no change │
│ QQuery 85 │  101.81 ms │                                104.13 ms │     no change │
│ QQuery 86 │   27.36 ms │                                 27.63 ms │     no change │
│ QQuery 87 │   68.66 ms │                                 67.96 ms │     no change │
│ QQuery 88 │   62.26 ms │                                 61.06 ms │     no change │
│ QQuery 89 │   37.64 ms │                                 36.90 ms │     no change │
│ QQuery 90 │   17.71 ms │                                 17.59 ms │     no change │
│ QQuery 91 │   43.06 ms │                                 42.44 ms │     no change │
│ QQuery 92 │   31.20 ms │                                 30.90 ms │     no change │
│ QQuery 93 │   52.28 ms │                                 51.99 ms │     no change │
│ QQuery 94 │   40.45 ms │                                 40.05 ms │     no change │
│ QQuery 95 │   82.83 ms │                                 83.81 ms │     no change │
│ QQuery 96 │   24.76 ms │                                 24.52 ms │     no change │
│ QQuery 97 │   53.79 ms │                                 53.27 ms │     no change │
│ QQuery 98 │   47.77 ms │                                 46.58 ms │     no change │
│ QQuery 99 │   67.64 ms │                                 66.54 ms │     no change │
└───────────┴────────────┴──────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 9693.65ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │ 9597.22ms │
│ Average Time (HEAD)                                     │   97.92ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │   96.94ms │
│ Queries Faster                                          │         7 │
│ Queries Slower                                          │         6 │
│ Queries with No Change                                  │        86 │
│ Queries with Failure                                    │         0 │
└─────────────────────────────────────────────────────────┴───────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                   HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │            6.03 / 6.70 ±1.02 / 8.74 ms │              5.95 / 6.61 ±0.99 / 8.58 ms │     no change │
│ QQuery 2  │         84.28 / 84.72 ±0.38 / 85.43 ms │           81.87 / 82.58 ±0.59 / 83.47 ms │     no change │
│ QQuery 3  │         30.87 / 31.03 ±0.17 / 31.25 ms │           29.95 / 30.32 ±0.27 / 30.67 ms │     no change │
│ QQuery 4  │     520.13 / 535.24 ±11.00 / 553.29 ms │        522.38 / 528.33 ±6.17 / 537.52 ms │     no change │
│ QQuery 5  │         53.01 / 53.40 ±0.30 / 53.88 ms │           52.01 / 52.35 ±0.41 / 53.16 ms │     no change │
│ QQuery 6  │         37.83 / 38.53 ±0.47 / 39.01 ms │           36.15 / 36.58 ±0.40 / 37.29 ms │ +1.05x faster │
│ QQuery 7  │         74.92 / 75.97 ±1.41 / 78.75 ms │           73.80 / 75.36 ±2.55 / 80.46 ms │     no change │
│ QQuery 8  │         37.13 / 37.51 ±0.24 / 37.83 ms │           37.30 / 38.07 ±0.48 / 38.59 ms │     no change │
│ QQuery 9  │         53.73 / 54.77 ±0.68 / 55.80 ms │           54.85 / 56.54 ±1.29 / 57.93 ms │     no change │
│ QQuery 10 │         61.60 / 62.16 ±0.55 / 63.18 ms │           61.54 / 61.92 ±0.29 / 62.29 ms │     no change │
│ QQuery 11 │      341.72 / 348.69 ±6.21 / 358.15 ms │       316.70 / 333.24 ±10.30 / 347.85 ms │     no change │
│ QQuery 12 │         32.90 / 33.32 ±0.37 / 33.81 ms │           31.04 / 32.01 ±0.78 / 33.23 ms │     no change │
│ QQuery 13 │      122.92 / 124.39 ±1.96 / 128.18 ms │        119.30 / 122.75 ±4.14 / 130.78 ms │     no change │
│ QQuery 14 │      409.31 / 412.45 ±3.68 / 418.50 ms │        394.59 / 404.05 ±7.08 / 411.44 ms │     no change │
│ QQuery 15 │         65.45 / 66.45 ±0.68 / 67.52 ms │           61.30 / 64.21 ±1.67 / 65.98 ms │     no change │
│ QQuery 16 │            6.77 / 6.98 ±0.19 / 7.32 ms │              6.57 / 6.73 ±0.13 / 6.88 ms │     no change │
│ QQuery 17 │         82.49 / 84.18 ±1.64 / 87.15 ms │           80.84 / 83.78 ±2.92 / 88.58 ms │     no change │
│ QQuery 18 │      114.11 / 115.25 ±1.32 / 117.72 ms │        112.09 / 113.31 ±0.86 / 114.55 ms │     no change │
│ QQuery 19 │         44.00 / 45.58 ±1.72 / 48.71 ms │           41.90 / 42.83 ±0.58 / 43.71 ms │ +1.06x faster │
│ QQuery 20 │         40.23 / 40.68 ±0.35 / 41.21 ms │           36.52 / 37.21 ±0.63 / 38.17 ms │ +1.09x faster │
│ QQuery 21 │         18.38 / 18.72 ±0.25 / 19.02 ms │           17.41 / 18.23 ±1.21 / 20.62 ms │     no change │
│ QQuery 22 │         71.67 / 72.91 ±0.88 / 74.20 ms │           71.20 / 72.33 ±0.73 / 73.09 ms │     no change │
│ QQuery 23 │      350.57 / 356.44 ±4.14 / 362.97 ms │        346.30 / 353.09 ±5.21 / 359.36 ms │     no change │
│ QQuery 24 │      214.91 / 221.64 ±5.61 / 229.36 ms │        213.12 / 219.26 ±7.45 / 228.46 ms │     no change │
│ QQuery 25 │      115.07 / 117.34 ±2.61 / 122.07 ms │        113.41 / 114.94 ±0.86 / 115.94 ms │     no change │
│ QQuery 26 │         48.11 / 48.49 ±0.23 / 48.75 ms │           49.31 / 50.86 ±1.38 / 53.25 ms │     no change │
│ QQuery 27 │            7.00 / 7.15 ±0.10 / 7.25 ms │              6.91 / 7.10 ±0.12 / 7.27 ms │     no change │
│ QQuery 28 │         62.41 / 63.26 ±0.66 / 64.43 ms │           58.11 / 61.74 ±2.76 / 65.21 ms │     no change │
│ QQuery 29 │       99.40 / 103.95 ±6.53 / 116.86 ms │        101.91 / 103.95 ±2.60 / 108.93 ms │     no change │
│ QQuery 30 │         34.84 / 35.16 ±0.32 / 35.67 ms │           37.39 / 38.02 ±0.65 / 38.93 ms │  1.08x slower │
│ QQuery 31 │      111.87 / 113.66 ±1.37 / 115.12 ms │        117.40 / 118.14 ±0.47 / 118.87 ms │     no change │
│ QQuery 32 │         21.22 / 22.12 ±1.06 / 24.14 ms │           21.97 / 22.10 ±0.08 / 22.19 ms │     no change │
│ QQuery 33 │         37.84 / 38.01 ±0.28 / 38.56 ms │           39.29 / 40.21 ±0.70 / 41.00 ms │  1.06x slower │
│ QQuery 34 │         10.51 / 10.83 ±0.18 / 11.02 ms │           11.46 / 11.69 ±0.32 / 12.29 ms │  1.08x slower │
│ QQuery 35 │         79.27 / 80.38 ±0.66 / 81.34 ms │           81.97 / 83.34 ±1.03 / 84.34 ms │     no change │
│ QQuery 36 │            6.53 / 6.63 ±0.11 / 6.83 ms │              6.47 / 6.55 ±0.08 / 6.67 ms │     no change │
│ QQuery 37 │            7.51 / 7.59 ±0.07 / 7.69 ms │              7.46 / 7.72 ±0.15 / 7.93 ms │     no change │
│ QQuery 38 │         65.80 / 67.17 ±1.02 / 68.98 ms │           67.46 / 69.39 ±1.99 / 73.19 ms │     no change │
│ QQuery 39 │         78.11 / 78.83 ±0.66 / 79.99 ms │           80.52 / 82.11 ±1.19 / 83.56 ms │     no change │
│ QQuery 40 │         25.60 / 25.99 ±0.25 / 26.29 ms │           25.76 / 26.79 ±0.83 / 27.77 ms │     no change │
│ QQuery 41 │         12.98 / 13.26 ±0.15 / 13.37 ms │           13.30 / 13.46 ±0.13 / 13.60 ms │     no change │
│ QQuery 42 │         24.76 / 24.89 ±0.08 / 24.97 ms │           25.62 / 25.74 ±0.11 / 25.90 ms │     no change │
│ QQuery 43 │            5.45 / 5.50 ±0.06 / 5.62 ms │              5.80 / 5.93 ±0.12 / 6.14 ms │  1.08x slower │
│ QQuery 44 │            9.44 / 9.60 ±0.11 / 9.73 ms │           10.10 / 10.28 ±0.10 / 10.40 ms │  1.07x slower │
│ QQuery 45 │         47.58 / 48.94 ±1.48 / 51.53 ms │           49.65 / 51.93 ±3.00 / 57.76 ms │  1.06x slower │
│ QQuery 46 │         12.97 / 13.70 ±0.57 / 14.74 ms │           14.08 / 14.32 ±0.19 / 14.53 ms │     no change │
│ QQuery 47 │      264.23 / 274.67 ±6.03 / 281.99 ms │        264.85 / 278.42 ±7.36 / 286.52 ms │     no change │
│ QQuery 48 │         93.98 / 95.74 ±2.19 / 99.81 ms │          95.65 / 97.15 ±1.50 / 100.01 ms │     no change │
│ QQuery 49 │         75.01 / 75.87 ±0.61 / 76.55 ms │           73.12 / 74.31 ±1.83 / 77.95 ms │     no change │
│ QQuery 50 │         62.23 / 62.69 ±0.35 / 63.31 ms │           60.87 / 61.45 ±0.57 / 62.38 ms │     no change │
│ QQuery 51 │       98.72 / 100.18 ±1.12 / 101.69 ms │         95.16 / 101.06 ±7.44 / 115.74 ms │     no change │
│ QQuery 52 │         25.29 / 25.74 ±0.23 / 25.93 ms │           25.18 / 25.92 ±0.53 / 26.83 ms │     no change │
│ QQuery 53 │         30.56 / 30.93 ±0.26 / 31.24 ms │           30.23 / 30.63 ±0.25 / 30.92 ms │     no change │
│ QQuery 54 │         55.92 / 56.53 ±0.62 / 57.34 ms │           54.91 / 55.72 ±0.59 / 56.59 ms │     no change │
│ QQuery 55 │         25.25 / 25.50 ±0.21 / 25.82 ms │           24.74 / 25.23 ±0.28 / 25.62 ms │     no change │
│ QQuery 56 │         40.69 / 41.40 ±0.53 / 42.11 ms │           39.72 / 41.05 ±0.87 / 42.26 ms │     no change │
│ QQuery 57 │      182.72 / 185.32 ±2.84 / 189.60 ms │        174.62 / 179.03 ±2.67 / 181.94 ms │     no change │
│ QQuery 58 │      112.44 / 112.93 ±0.67 / 114.25 ms │        110.76 / 112.79 ±2.85 / 118.23 ms │     no change │
│ QQuery 59 │      119.94 / 121.76 ±1.42 / 123.60 ms │        116.64 / 118.41 ±1.04 / 119.34 ms │     no change │
│ QQuery 60 │         40.57 / 41.28 ±0.51 / 42.06 ms │           38.82 / 40.24 ±0.91 / 41.53 ms │     no change │
│ QQuery 61 │         12.18 / 12.41 ±0.21 / 12.75 ms │           11.30 / 11.67 ±0.29 / 12.14 ms │ +1.06x faster │
│ QQuery 62 │         46.84 / 47.36 ±0.51 / 48.30 ms │           44.54 / 45.12 ±0.35 / 45.54 ms │     no change │
│ QQuery 63 │         30.81 / 31.25 ±0.32 / 31.68 ms │           30.02 / 30.30 ±0.15 / 30.45 ms │     no change │
│ QQuery 64 │      395.34 / 402.32 ±4.57 / 407.89 ms │        382.96 / 388.28 ±5.16 / 397.14 ms │     no change │
│ QQuery 65 │      139.26 / 141.48 ±1.87 / 144.87 ms │        139.54 / 142.56 ±2.06 / 145.21 ms │     no change │
│ QQuery 66 │         82.07 / 85.04 ±3.24 / 89.41 ms │           80.75 / 81.52 ±0.70 / 82.77 ms │     no change │
│ QQuery 67 │      290.31 / 297.36 ±4.82 / 304.29 ms │       278.81 / 290.76 ±11.23 / 304.95 ms │     no change │
│ QQuery 68 │         12.76 / 12.99 ±0.18 / 13.23 ms │           13.09 / 13.44 ±0.36 / 14.14 ms │     no change │
│ QQuery 69 │         58.40 / 59.16 ±0.63 / 59.99 ms │           57.72 / 58.65 ±0.59 / 59.33 ms │     no change │
│ QQuery 70 │      107.09 / 112.62 ±8.56 / 129.68 ms │        106.81 / 112.59 ±6.22 / 124.10 ms │     no change │
│ QQuery 71 │         36.02 / 36.40 ±0.24 / 36.71 ms │           36.97 / 38.14 ±0.65 / 38.90 ms │     no change │
│ QQuery 72 │ 1773.66 / 1938.61 ±122.53 / 2060.94 ms │    1788.13 / 1929.54 ±80.44 / 2010.98 ms │     no change │
│ QQuery 73 │         11.27 / 12.00 ±0.54 / 12.54 ms │           11.08 / 11.42 ±0.41 / 12.13 ms │     no change │
│ QQuery 74 │      202.85 / 205.03 ±3.06 / 211.03 ms │        198.73 / 203.20 ±4.10 / 209.98 ms │     no change │
│ QQuery 75 │      149.62 / 153.21 ±6.03 / 165.24 ms │        146.25 / 148.91 ±2.94 / 153.76 ms │     no change │
│ QQuery 76 │         36.41 / 36.86 ±0.46 / 37.53 ms │           35.75 / 36.41 ±0.38 / 36.88 ms │     no change │
│ QQuery 77 │         63.31 / 63.92 ±0.35 / 64.35 ms │           61.78 / 62.90 ±0.72 / 63.97 ms │     no change │
│ QQuery 78 │      178.36 / 186.92 ±5.73 / 195.43 ms │       173.80 / 186.35 ±12.37 / 208.71 ms │     no change │
│ QQuery 79 │         70.07 / 70.83 ±0.60 / 71.55 ms │           71.31 / 72.11 ±0.53 / 72.91 ms │     no change │
│ QQuery 80 │      101.85 / 104.63 ±1.88 / 107.59 ms │        104.78 / 109.07 ±5.72 / 120.29 ms │     no change │
│ QQuery 81 │         26.99 / 27.20 ±0.19 / 27.56 ms │           28.95 / 30.61 ±1.54 / 33.32 ms │  1.13x slower │
│ QQuery 82 │         17.24 / 17.43 ±0.14 / 17.66 ms │           18.05 / 18.74 ±0.43 / 19.26 ms │  1.08x slower │
│ QQuery 83 │         34.10 / 34.39 ±0.17 / 34.60 ms │           34.56 / 35.32 ±0.60 / 36.04 ms │     no change │
│ QQuery 84 │         30.82 / 32.11 ±2.03 / 36.14 ms │           30.88 / 31.17 ±0.41 / 31.96 ms │     no change │
│ QQuery 85 │      101.81 / 104.20 ±2.52 / 108.90 ms │        104.13 / 109.17 ±8.62 / 126.36 ms │     no change │
│ QQuery 86 │         27.36 / 27.75 ±0.38 / 28.37 ms │           27.63 / 28.13 ±0.56 / 29.16 ms │     no change │
│ QQuery 87 │         68.66 / 70.55 ±1.88 / 73.94 ms │           67.96 / 69.36 ±0.99 / 70.66 ms │     no change │
│ QQuery 88 │         62.26 / 64.90 ±4.39 / 73.65 ms │           61.06 / 61.91 ±0.50 / 62.38 ms │     no change │
│ QQuery 89 │         37.64 / 38.39 ±0.86 / 40.07 ms │           36.90 / 37.93 ±0.59 / 38.61 ms │     no change │
│ QQuery 90 │         17.71 / 17.97 ±0.20 / 18.25 ms │           17.59 / 17.76 ±0.20 / 18.08 ms │     no change │
│ QQuery 91 │         43.06 / 43.83 ±0.57 / 44.79 ms │           42.44 / 42.95 ±0.33 / 43.38 ms │     no change │
│ QQuery 92 │         31.20 / 32.48 ±1.71 / 35.86 ms │           30.90 / 31.55 ±0.46 / 32.07 ms │     no change │
│ QQuery 93 │         52.28 / 54.22 ±2.32 / 58.52 ms │           51.99 / 52.86 ±0.72 / 53.87 ms │     no change │
│ QQuery 94 │         40.45 / 40.69 ±0.33 / 41.29 ms │           40.05 / 41.58 ±1.80 / 45.07 ms │     no change │
│ QQuery 95 │         82.83 / 84.13 ±1.00 / 85.89 ms │           83.81 / 86.01 ±1.52 / 88.04 ms │     no change │
│ QQuery 96 │         24.76 / 25.79 ±1.80 / 29.38 ms │           24.52 / 24.59 ±0.04 / 24.65 ms │     no change │
│ QQuery 97 │         53.79 / 56.02 ±1.93 / 59.44 ms │           53.27 / 54.27 ±1.12 / 55.76 ms │     no change │
│ QQuery 98 │         47.77 / 48.67 ±0.57 / 49.24 ms │           46.58 / 47.15 ±0.65 / 48.38 ms │     no change │
│ QQuery 99 │         67.64 / 68.66 ±0.57 / 69.14 ms │           66.54 / 66.92 ±0.30 / 67.38 ms │     no change │
└───────────┴────────────────────────────────────────┴──────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 10020.48ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │  9940.34ms │
│ Average Time (HEAD)                                     │   101.22ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │   100.41ms │
│ Queries Faster                                          │          4 │
│ Queries Slower                                          │          8 │
│ Queries with No Change                                  │         87 │
│ Queries with Failure                                    │          0 │
└─────────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 1.9 GiB
Avg memory 1.2 GiB
CPU user 218.8s
CPU sys 6.4s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.0 GiB
Avg memory 1.3 GiB
CPU user 213.9s
CPU sys 6.3s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing andygrove/aqe-datafusion-tpc-h-prototype (47b94c4) to 0d79252 (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃       HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │    1.32 ms │                                  1.29 ms │     no change │
│ QQuery 1  │   11.98 ms │                                 12.14 ms │     no change │
│ QQuery 2  │   36.79 ms │                                 36.99 ms │     no change │
│ QQuery 3  │   32.13 ms │                                 32.40 ms │     no change │
│ QQuery 4  │  261.31 ms │                                262.07 ms │     no change │
│ QQuery 5  │  292.84 ms │                                302.73 ms │     no change │
│ QQuery 6  │    1.31 ms │                                  1.30 ms │     no change │
│ QQuery 7  │   13.62 ms │                                 13.65 ms │     no change │
│ QQuery 8  │  362.88 ms │                                376.82 ms │     no change │
│ QQuery 9  │  500.77 ms │                                531.71 ms │  1.06x slower │
│ QQuery 10 │   66.36 ms │                                 68.89 ms │     no change │
│ QQuery 11 │   80.01 ms │                                 79.91 ms │     no change │
│ QQuery 12 │  300.14 ms │                                299.74 ms │     no change │
│ QQuery 13 │  399.29 ms │                                396.65 ms │     no change │
│ QQuery 14 │  315.55 ms │                                296.19 ms │ +1.07x faster │
│ QQuery 15 │  333.35 ms │                                314.82 ms │ +1.06x faster │
│ QQuery 16 │  695.47 ms │                                699.77 ms │     no change │
│ QQuery 17 │  694.41 ms │                                707.05 ms │     no change │
│ QQuery 18 │ 1402.00 ms │                               1389.00 ms │     no change │
│ QQuery 19 │   28.57 ms │                                 29.35 ms │     no change │
│ QQuery 20 │  534.52 ms │                                524.47 ms │     no change │
│ QQuery 21 │  527.13 ms │                                526.10 ms │     no change │
│ QQuery 22 │ 1055.93 ms │                               1064.59 ms │     no change │
│ QQuery 23 │ 3371.28 ms │                               3306.31 ms │     no change │
│ QQuery 24 │   43.53 ms │                                 41.93 ms │     no change │
│ QQuery 25 │  109.87 ms │                                107.52 ms │     no change │
│ QQuery 26 │   43.19 ms │                                 42.90 ms │     no change │
│ QQuery 27 │  526.85 ms │                                529.71 ms │     no change │
│ QQuery 28 │ 3002.31 ms │                               3045.23 ms │     no change │
│ QQuery 29 │   40.95 ms │                                 40.71 ms │     no change │
│ QQuery 30 │  336.50 ms │                                334.21 ms │     no change │
│ QQuery 31 │  294.48 ms │                                297.63 ms │     no change │
│ QQuery 32 │ 1304.13 ms │                               1282.35 ms │     no change │
│ QQuery 33 │ 1783.11 ms │                               1806.35 ms │     no change │
│ QQuery 34 │ 1751.77 ms │                               1852.09 ms │  1.06x slower │
│ QQuery 35 │  361.95 ms │                                381.75 ms │  1.05x slower │
│ QQuery 36 │   72.57 ms │                                 78.08 ms │  1.08x slower │
│ QQuery 37 │   39.98 ms │                                 39.22 ms │     no change │
│ QQuery 38 │   44.95 ms │                                 47.69 ms │  1.06x slower │
│ QQuery 39 │  151.38 ms │                                164.04 ms │  1.08x slower │
│ QQuery 40 │   15.37 ms │                                 15.42 ms │     no change │
│ QQuery 41 │   14.43 ms │                                 14.85 ms │     no change │
│ QQuery 42 │   14.01 ms │                                 14.55 ms │     no change │
└───────────┴────────────┴──────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 21270.31ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │ 21410.15ms │
│ Average Time (HEAD)                                     │   494.66ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │   497.91ms │
│ Queries Faster                                          │          2 │
│ Queries Slower                                          │          6 │
│ Queries with No Change                                  │         35 │
│ Queries with Failure                                    │          0 │
└─────────────────────────────────────────────────────────┴────────────┘

Distribution per query (min / mean ±stddev / max):

Comparing HEAD and andygrove_aqe-datafusion-tpc-h-prototype
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                   HEAD ┃ andygrove_aqe-datafusion-tpc-h-prototype ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │           1.32 / 4.73 ±6.62 / 17.96 ms │             1.29 / 4.67 ±6.54 / 17.75 ms │     no change │
│ QQuery 1  │         11.98 / 12.35 ±0.22 / 12.68 ms │           12.14 / 12.36 ±0.19 / 12.62 ms │     no change │
│ QQuery 2  │         36.79 / 37.17 ±0.31 / 37.61 ms │           36.99 / 37.17 ±0.16 / 37.41 ms │     no change │
│ QQuery 3  │         32.13 / 33.27 ±1.10 / 34.90 ms │           32.40 / 32.68 ±0.22 / 32.89 ms │     no change │
│ QQuery 4  │      261.31 / 269.03 ±4.97 / 275.69 ms │        262.07 / 271.38 ±9.28 / 286.20 ms │     no change │
│ QQuery 5  │      292.84 / 304.39 ±7.64 / 316.49 ms │        302.73 / 308.08 ±3.87 / 313.73 ms │     no change │
│ QQuery 6  │            1.31 / 1.48 ±0.24 / 1.95 ms │              1.30 / 1.48 ±0.23 / 1.93 ms │     no change │
│ QQuery 7  │         13.62 / 13.94 ±0.18 / 14.12 ms │           13.65 / 13.91 ±0.14 / 14.03 ms │     no change │
│ QQuery 8  │     362.88 / 381.46 ±11.26 / 394.08 ms │        376.82 / 379.95 ±1.71 / 381.86 ms │     no change │
│ QQuery 9  │     500.77 / 513.13 ±11.12 / 531.53 ms │       531.71 / 544.03 ±13.58 / 568.34 ms │  1.06x slower │
│ QQuery 10 │         66.36 / 67.99 ±1.98 / 71.54 ms │           68.89 / 69.89 ±0.71 / 70.98 ms │     no change │
│ QQuery 11 │         80.01 / 81.29 ±1.14 / 83.32 ms │           79.91 / 82.79 ±3.37 / 89.28 ms │     no change │
│ QQuery 12 │      300.14 / 307.42 ±4.87 / 312.63 ms │        299.74 / 304.77 ±5.47 / 314.82 ms │     no change │
│ QQuery 13 │     399.29 / 417.83 ±11.81 / 430.33 ms │       396.65 / 410.22 ±17.79 / 444.88 ms │     no change │
│ QQuery 14 │      315.55 / 320.71 ±4.88 / 329.60 ms │        296.19 / 306.55 ±9.81 / 323.72 ms │     no change │
│ QQuery 15 │     333.35 / 344.48 ±10.55 / 358.53 ms │       314.82 / 339.09 ±14.59 / 359.03 ms │     no change │
│ QQuery 16 │     695.47 / 706.72 ±12.75 / 731.36 ms │       699.77 / 716.41 ±14.81 / 740.21 ms │     no change │
│ QQuery 17 │      694.41 / 706.22 ±9.04 / 719.39 ms │        707.05 / 713.33 ±7.00 / 725.29 ms │     no change │
│ QQuery 18 │  1402.00 / 1437.39 ±35.83 / 1482.55 ms │    1389.00 / 1429.03 ±28.82 / 1472.62 ms │     no change │
│ QQuery 19 │        28.57 / 40.04 ±16.92 / 72.95 ms │           29.35 / 29.97 ±0.72 / 31.37 ms │ +1.34x faster │
│ QQuery 20 │     534.52 / 546.00 ±13.92 / 571.89 ms │       524.47 / 557.87 ±30.16 / 613.98 ms │     no change │
│ QQuery 21 │      527.13 / 534.26 ±5.80 / 540.71 ms │        526.10 / 533.33 ±6.95 / 543.85 ms │     no change │
│ QQuery 22 │  1055.93 / 1072.98 ±28.64 / 1130.08 ms │    1064.59 / 1104.68 ±37.35 / 1166.86 ms │     no change │
│ QQuery 23 │ 3371.28 / 3551.95 ±238.47 / 4024.27 ms │   3306.31 / 3633.02 ±316.33 / 4238.74 ms │     no change │
│ QQuery 24 │       43.53 / 73.55 ±52.61 / 178.25 ms │           41.93 / 42.31 ±0.29 / 42.73 ms │ +1.74x faster │
│ QQuery 25 │      109.87 / 111.04 ±1.14 / 113.08 ms │      107.52 / 261.40 ±186.40 / 514.31 ms │  2.35x slower │
│ QQuery 26 │       43.19 / 64.51 ±35.05 / 134.14 ms │           42.90 / 43.62 ±0.61 / 44.56 ms │ +1.48x faster │
│ QQuery 27 │      526.85 / 539.93 ±9.46 / 553.90 ms │       529.71 / 543.28 ±10.13 / 557.73 ms │     no change │
│ QQuery 28 │  3002.31 / 3080.29 ±48.27 / 3138.65 ms │    3045.23 / 3072.64 ±22.74 / 3113.94 ms │     no change │
│ QQuery 29 │         40.95 / 41.66 ±1.11 / 43.82 ms │         40.71 / 61.21 ±38.84 / 138.87 ms │  1.47x slower │
│ QQuery 30 │     336.50 / 372.49 ±28.20 / 400.28 ms │       334.21 / 355.44 ±18.98 / 386.37 ms │     no change │
│ QQuery 31 │     294.48 / 315.31 ±16.12 / 336.74 ms │       297.63 / 312.31 ±11.40 / 325.98 ms │     no change │
│ QQuery 32 │ 1304.13 / 1468.65 ±142.88 / 1721.56 ms │   1282.35 / 1462.88 ±154.90 / 1663.77 ms │     no change │
│ QQuery 33 │ 1783.11 / 1889.56 ±102.87 / 2081.63 ms │    1806.35 / 1869.59 ±51.03 / 1951.36 ms │     no change │
│ QQuery 34 │  1751.77 / 1815.50 ±44.89 / 1859.18 ms │    1852.09 / 1898.30 ±43.07 / 1966.85 ms │     no change │
│ QQuery 35 │     361.95 / 429.91 ±83.70 / 585.97 ms │      381.75 / 476.67 ±163.44 / 803.23 ms │  1.11x slower │
│ QQuery 36 │         72.57 / 81.89 ±7.80 / 94.37 ms │           78.08 / 80.87 ±3.74 / 88.25 ms │     no change │
│ QQuery 37 │         39.98 / 47.00 ±6.01 / 56.19 ms │         39.22 / 60.39 ±33.29 / 126.73 ms │  1.29x slower │
│ QQuery 38 │         44.95 / 47.02 ±2.52 / 51.32 ms │           47.69 / 51.16 ±4.93 / 60.84 ms │  1.09x slower │
│ QQuery 39 │     151.38 / 173.38 ±19.47 / 206.05 ms │       164.04 / 183.02 ±14.67 / 202.44 ms │  1.06x slower │
│ QQuery 40 │         15.37 / 16.02 ±0.50 / 16.79 ms │           15.42 / 16.67 ±1.13 / 18.65 ms │     no change │
│ QQuery 41 │         14.43 / 14.85 ±0.24 / 15.14 ms │           14.85 / 16.28 ±2.18 / 20.56 ms │  1.10x slower │
│ QQuery 42 │         14.01 / 19.22 ±7.66 / 34.18 ms │           14.55 / 14.71 ±0.24 / 15.17 ms │ +1.31x faster │
└───────────┴────────────────────────────────────────┴──────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                                       ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                                       │ 22307.97ms │
│ Total Time (andygrove_aqe-datafusion-tpc-h-prototype)   │ 22659.40ms │
│ Average Time (HEAD)                                     │   518.79ms │
│ Average Time (andygrove_aqe-datafusion-tpc-h-prototype) │   526.96ms │
│ Queries Faster                                          │          4 │
│ Queries Slower                                          │          8 │
│ Queries with No Change                                  │         31 │
│ Queries with Failure                                    │          0 │
└─────────────────────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 115.0s
Peak memory 18.3 GiB
Avg memory 6.1 GiB
CPU user 1087.6s
CPU sys 115.8s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 115.0s
Peak memory 18.3 GiB
Avg memory 6.2 GiB
CPU user 1089.1s
CPU sys 120.3s
Peak spill 0 B

File an issue against this benchmark runner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api change Auto detected API change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants