Skip to content

perf: simplify HashJoinExec dynamic filter, drop CASE routing - #21931

Closed
adriangb wants to merge 10 commits into
apache:mainfrom
pydantic:worktree-dynamic-filter-restructure
Closed

perf: simplify HashJoinExec dynamic filter, drop CASE routing#21931
adriangb wants to merge 10 commits into
apache:mainfrom
pydantic:worktree-dynamic-filter-restructure

Conversation

@adriangb

@adriangbadriangb commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

Today the Partitioned-mode HashJoinExec builds a dynamic filter that's structured around the repartition layout:

CASE hash_repartition % N
WHEN 0 THEN p0_bounds AND (p0_inlist | p0_hash_lookup)
WHEN 1 THEN p1_bounds AND (p1_inlist | p1_hash_lookup)
...
ELSE false
END

Two problems with this:

  1. Per-row routing-hash cost. Every probe row pays a hash_repartition % N even though the partition's hash table will be probed anyway with a different seed (HASH_JOIN_SEED).
  2. Coupling. The dynamic filter's shape depends on how the build side was repartitioned, even though semantically the filter is just "is this key somewhere in the build side?"

This PR replaces the routing CASE with a structure that depends only on the content of the build side, not its layout, and adds a cross-partition merged `IN (SET)` fast path so small joins can participate in parquet stats / bloom-filter pruning at the scan side.

What changes are included in this PR?

Five commits:

  1. `perf: collapse all-Map dynamic filter into MultiMapLookupExpr` — new `MultiMapLookupExpr` hashes the join keys once with `HASH_JOIN_SEED` and ORs `contain_hashes()` across every reported partition's hash table.
  2. `perf: collapse small all-InList dynamic filter into one cross-partition IN (SET)` — when every reported partition contributed an InList array and the cross-partition union is small enough, concatenate them into a single global `IN (SET)`.
  3. `refactor: drop CASE routing from Partitioned dynamic filters` — `PushdownStrategy` now always carries the `Map` (the join's hash table is built unconditionally) plus an optional InList array; the routing CASE goes away.
  4. `refactor: dedup cross-partition InList, reuse per-partition cap` — combine path deduplicates by `ScalarValue` and re-gates on distinct count. The existing `optimizer.hash_join_inlist_pushdown_max_distinct_values` knob caps both per-partition InList eligibility and the cross-partition merged set.
  5. `docs: rewrite comments to describe the code, not the change` — comment cleanup.

Final filter-shape matrix

inputshape
`enable_dynamic_filter_pushdown=false`no filter installed
`CollectLeft`, build emptyfilter stays at `lit(true)`
`CollectLeft`, build small (under inlist caps)`bounds AND IN (SET)`
`CollectLeft`, build large`bounds AND hash_lookup`
`Partitioned`, all reported partitions empty`lit(false)`
`Partitioned`, any partition canceled`lit(true)`
`Partitioned`, every partition InList AND combined ≤ cap`bounds AND IN (SET)` (parquet-prunable)
`Partitioned`, anything else`bounds AND multi_hash_lookup`

No more `CASE`, no more `hash_repartition`, no more `REPARTITION_RANDOM_STATE` in the dynamic-filter path.

Performance

Per-row cost (Partitioned mode)

Let `N` = number of build-side partitions. For each probe row evaluated by the dynamic filter:

ShapeHashesHash-table probesPer-row cost
Legacy CASE-by-routing2 (routing + lookup)1 (one branch)`O(1)`
`multi_hash_lookup` (all-Map fast path)1 (lookup)N (one per map)`O(N)`
Merged `IN (SET)` (small-union fast path)11 (one `static_filter`)`O(1)` + scan-side row-group / bloom pruning

Two countervailing forces shape the result:

  • Per-batch overhead: legacy CASE evaluates through `CaseExpr`, which can scale poorly with the number of `WHEN` branches at high N. `multi_hash_lookup` is a single straight-line OR loop and avoids this.
  • Per-row overhead at high N: `multi_hash_lookup` does N probes per row. When the filter runs in the parquet scan hot loop (pushdown=true), this matters more than the CASE per-batch overhead. When the filter runs at join time (pushdown=false), it doesn't.

Benchmarks (TPC-H, runner = c4a-highmem-16, ARM Neoverse-V2, 16 cores)

Triggered four runs covering both N regimes and both pushdown configs.

Default partitioning (N ≈ ncores ≈ 16)

Config`Total Time (HEAD)``Total Time (PR)`Change
`pushdown_filters=false`912.79 ms916.39 ms+0.4% (noise)
`pushdown_filters=true`1259.10 ms1166.39 ms−7.4%

In the `pushdown=true` run the wins concentrate on queries where the dynamic filter feeds parquet stats / bloom-filter pruning at the scan:

QueryHEADPRChange
Q17165 / 171 ms56 / 56 ms+2.96× faster
Q1877 / 77 ms59 / 60 ms+1.30× faster
Q2047 / 47 ms44 / 49 ms+1.06× faster
Q349 / 49 ms54 / 55 ms1.10× slower
Q573 / 76 ms77 / 82 ms1.05× slower
Q9112 / 115 ms124 / 127 ms1.10× slower
Q1350 / 50 ms64 / 64 ms1.29× slower
Q1441 / 42 ms46 / 47 ms1.11× slower

Q17 alone is 109 ms of the 93 ms total wall-clock improvement — that's the original issue's regression, fixed. The small-query regressions (Q3/Q5/Q9/Q13/Q14) are the all-Map shape paying `O(N)` probes per row for moderate-to-large build sides where the bounds prefix doesn't prune much.

High partition count (`target_partitions=128`)

A stress test of partition-count scaling on the same 16-core box.

Config`Total Time (HEAD)``Total Time (PR)`Change
`pushdown_filters=false`2566.31 ms1756.80 ms−31.5% (1.46× faster)
`pushdown_filters=true`3209.06 ms3636.15 ms+13.3%

Pushdown=false @ N=128: 11 queries faster, 0 slower, 11 unchanged. `multi_hash_lookup` cleanly beats the legacy 128-branch `CaseExpr` evaluation. Big wins on Q3 (1.68×), Q5 (1.82×), Q7 (1.75×), Q8 (2.15×), Q9 (1.64×), Q12 (1.81×), Q13 (1.76×), Q17 (1.59×), Q18 (1.29×), Q20 (2.05×), Q21 (1.43×).

Pushdown=true @ N=128: 4 faster, 9 slower. This is the case where the filter runs in the scan hot loop and `multi_hash_lookup`'s `O(N)` probes per row dominate. The wins (Q17 1.87×, Q18 1.39×, Q20 1.76×) survive because their merged `IN (SET)` prunes whole row groups before the per-row filter ever runs. The losses (Q5 1.88×, Q9 1.64×, Q21 1.62×, Q14 1.51×, Q8 1.37×) are the same all-Map shape paying 128 probes per row.

Summary of the regime grid

pushdown=falsepushdown=true
N ≈ ncores (default)noise (≈0%)−7.4% (Q17 +2.96×)
N = 128−31.5%+13.3% (Q17 still +1.87×, but Q5/Q9 etc. regress)

Three of the four configs are wins (one big), one is a regression. The single regressing config is `high N + scan-side pushdown`, which is exactly the scenario `OptionalFilterPhysicalExpr` from #20363 is designed to absorb: the adaptive tracker would measure `multi_hash_lookup`'s low `bytes_pruned_per_second_of_eval_time` for queries like Q5/Q9/Q21 and drop the filter, while keeping Q17/Q18/Q20 (which prune scans aggressively).

A possible structural follow-up — re-introducing partition routing inside `MultiMapLookupExpr` (1 routing hash + 1 probe, so per-row cost matches legacy CASE) — would close the regression at any N, with or without #20363.

Are these changes tested?

  • Existing `joins::hash_join` lib tests pass (380 tests).
  • `physical_optimizer::filter_pushdown` integration tests pass (51 tests). Two snapshots updated:
    • `test_hashjoin_dynamic_filter_pushdown_partitioned` now produces `bounds AND struct(...) IN (SET) ([...])` directly (the size-gated path subsumes what `force_hash_collisions` previously fell into).
    • `test_hashjoin_hash_table_pushdown_partitioned` now positively asserts `multi_hash_lookup` and the absence of `hash_repartition`.
  • `information_schema.slt` updated to reflect the new default for `hash_join_inlist_pushdown_max_distinct_values`.
  • `push_down_filter_parquet.slt` passes.
  • `cargo clippy -p datafusion-physical-plan --all-targets -- -D warnings` is clean.

Are there any user-facing changes?

  • Default lowered: `optimizer.hash_join_inlist_pushdown_max_distinct_values` 150 → 20. Affects which build-side shapes choose InList vs. hash-table pushdown per partition, and now also gates the cross-partition merged InList. Users who depend on the old per-partition behavior can set it back to 150 in their config. Doc string in `config.rs` and `docs/source/user-guide/configs.md` are updated.
  • Plan output: `EXPLAIN ANALYZE` for `Partitioned` hash joins no longer shows `CASE hash_repartition % N WHEN ...`. Instead it shows either `bounds AND struct(...) IN (SET) ([...])` (small joins) or `bounds AND multi_hash_lookup` (everything else).

🤖 Generated with Claude Code

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation core Core DataFusion crate common Related to common crate physical-plan Changes to the physical-plan crate labels Apr 29, 2026
@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tcph

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: falsechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: false

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tcph

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: truechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: true

@adriangbot

Copy link
Copy Markdown

🤖 Criterion benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4345503296-1912-446v6 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (7a8272f) to main diff
BENCH_NAME=tcph
BENCH_COMMAND=cargo bench --features=parquet --bench tcph
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
 Downloaded compression-codecs v0.4.38
Downloaded cfg_aliases v0.2.1
Downloaded aws-credential-types v1.2.14
Downloaded async-stream v0.3.6
Downloaded atoi v2.0.0
Downloaded arrow-string v58.1.0
Downloaded anstyle v1.0.14
Downloaded axum-core v0.5.6
Downloaded aws-smithy-xml v0.60.15
Downloaded aws-smithy-observability v0.2.6
Downloaded autocfg v1.5.0
Downloaded ahash v0.8.12
Downloaded anstream v1.0.0
Downloaded async-recursion v1.1.1
Downloaded async-ffi v0.5.0
Downloaded anes v0.1.6
Blocking waiting for file lock on package cache
error: no bench target named `tcph` in default-run packages
help: a target with a similar name exists: `chr`

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Criterion benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4345504799-1913-ftp4k 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (7a8272f) to main diff
BENCH_NAME=tcph
BENCH_COMMAND=cargo bench --features=parquet --bench tcph
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
 Downloaded clap v4.6.1
Downloaded ciborium v0.2.2
Downloaded aws-smithy-xml v0.60.15
Downloaded async-stream-impl v0.3.6
Downloaded arrow-csv v58.1.0
Downloaded compression-core v0.4.32
Downloaded bytes-utils v0.1.4
Downloaded blake2 v0.10.6
Downloaded bitflags v2.11.1
Downloaded aws-types v1.3.15
Downloaded aws-smithy-async v1.2.14
Downloaded anstyle v1.0.14
Downloaded clap_lex v1.1.0
Downloaded aws-smithy-query v0.60.15
Downloaded aws-smithy-observability v0.2.6
Downloaded arrayref v0.3.9
Blocking waiting for file lock on package cache
error: no bench target named `tcph` in default-run packages
help: a target with a similar name exists: `chr`

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: truechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: true

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: falsechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: false

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4345545637-1915-vxjfd 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (7a8272f) to main diff using: 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-c4345547022-1916-gt4f5 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (7a8272f) to main diff using: tpch
Results will be posted here when complete


File an issue against this benchmark runner

@github-actionsgithub-actionsBot added the sqllogictest SQL Logic Tests (.slt) label Apr 29, 2026
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 43.41 / 44.20 ±0.95 / 46.07 ms │ 43.37 / 44.58 ±1.47 / 47.38 ms │ no change │
│ QQuery 2 │ 25.18 / 25.59 ±0.35 / 26.10 ms │ 25.09 / 25.23 ±0.24 / 25.72 ms │ no change │
│ QQuery 3 │ 48.02 / 48.76 ±0.41 / 49.09 ms │ 52.88 / 53.66 ±0.85 / 55.19 ms │ 1.10x slower │
│ QQuery 4 │ 22.73 / 22.86 ±0.11 / 23.02 ms │ 22.47 / 22.68 ±0.13 / 22.88 ms │ no change │
│ QQuery 5 │ 70.47 / 72.83 ±2.26 / 76.28 ms │ 73.07 / 76.76 ±3.21 / 81.56 ms │ 1.05x slower │
│ QQuery 6 │ 35.98 / 36.50 ±0.54 / 37.55 ms │ 36.12 / 37.55 ±1.15 / 38.84 ms │ no change │
│ QQuery 7 │ 57.86 / 58.04 ±0.21 / 58.45 ms │ 55.25 / 56.19 ±1.09 / 58.34 ms │ no change │
│ QQuery 8 │ 79.29 / 80.19 ±0.67 / 81.15 ms │ 76.28 / 76.74 ±0.51 / 77.67 ms │ no change │
│ QQuery 9 │ 110.20 / 112.39 ±2.16 / 115.28 ms │ 120.81 / 124.17 ±2.52 / 126.74 ms │ 1.10x slower │
│ QQuery 10 │ 76.60 / 77.36 ±0.60 / 78.04 ms │ 76.50 / 76.70 ±0.31 / 77.31 ms │ no change │
│ QQuery 11 │ 16.63 / 17.50 ±0.98 / 19.19 ms │ 16.15 / 16.94 ±0.76 / 18.03 ms │ no change │
│ QQuery 12 │ 46.65 / 47.21 ±0.60 / 48.34 ms │ 45.96 / 47.22 ±2.09 / 51.39 ms │ no change │
│ QQuery 13 │ 48.67 / 49.58 ±0.56 / 50.27 ms │ 63.30 / 63.75 ±0.36 / 64.23 ms │ 1.29x slower │
│ QQuery 14 │ 40.73 / 41.21 ±0.61 / 42.29 ms │ 44.72 / 45.58 ±0.69 / 46.50 ms │ 1.11x slower │
│ QQuery 15 │ 45.55 / 46.45 ±0.75 / 47.39 ms │ 45.01 / 46.74 ±1.97 / 50.52 ms │ no change │
│ QQuery 16 │ 23.72 / 24.27 ±0.57 / 25.18 ms │ 23.46 / 23.72 ±0.18 / 23.98 ms │ no change │
│ QQuery 17 │ 161.67 / 165.40 ±3.60 / 171.03 ms │ 55.41 / 55.87 ±0.49 / 56.52 ms │ +2.96x faster │
│ QQuery 18 │ 75.97 / 76.74 ±0.55 / 77.28 ms │ 57.68 / 58.81 ±0.99 / 59.97 ms │ +1.30x faster │
│ QQuery 19 │ 42.01 / 42.27 ±0.20 / 42.49 ms │ 42.38 / 42.80 ±0.29 / 43.14 ms │ no change │
│ QQuery 20 │ 45.92 / 46.56 ±0.53 / 47.48 ms │ 42.72 / 43.95 ±2.31 / 48.58 ms │ +1.06x faster │
│ QQuery 21 │ 84.97 / 86.79 ±2.22 / 91.01 ms │ 89.70 / 90.48 ±0.67 / 91.45 ms │ no change │
│ QQuery 22 │ 35.83 / 36.41 ±0.32 / 36.77 ms │ 36.07 / 36.24 ±0.13 / 36.46 ms │ no change │
└───────────┴───────────────────────────────────┴─────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 1259.10ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 1166.39ms │
│ Average Time (HEAD) │ 57.23ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 53.02ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 5 │
│ Queries with No Change │ 14 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time10.0s
Peak memory5.3 GiB
Avg memory4.6 GiB
CPU user47.7s
CPU sys2.6s
Peak spill0 B

tpch — branch

MetricValue
Wall time10.0s
Peak memory5.3 GiB
Avg memory4.5 GiB
CPU user42.2s
CPU sys2.7s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 41.66 / 42.57 ±1.04 / 44.21 ms │ 40.50 / 41.42 ±1.12 / 43.61 ms │ no change │
│ QQuery 2 │ 21.92 / 22.31 ±0.47 / 23.20 ms │ 20.98 / 21.26 ±0.16 / 21.46 ms │ no change │
│ QQuery 3 │ 39.33 / 43.06 ±2.19 / 46.23 ms │ 38.00 / 39.19 ±1.17 / 40.70 ms │ +1.10x faster │
│ QQuery 4 │ 19.18 / 19.43 ±0.14 / 19.59 ms │ 18.65 / 19.08 ±0.62 / 20.30 ms │ no change │
│ QQuery 5 │ 48.30 / 50.23 ±1.65 / 52.60 ms │ 49.54 / 50.89 ±1.39 / 53.45 ms │ no change │
│ QQuery 6 │ 17.67 / 17.74 ±0.07 / 17.85 ms │ 17.64 / 17.83 ±0.15 / 18.08 ms │ no change │
│ QQuery 7 │ 55.53 / 56.45 ±0.75 / 57.57 ms │ 54.68 / 56.55 ±1.58 / 58.30 ms │ no change │
│ QQuery 8 │ 48.77 / 48.97 ±0.18 / 49.24 ms │ 48.75 / 48.86 ±0.08 / 49.01 ms │ no change │
│ QQuery 9 │ 54.11 / 55.41 ±0.91 / 56.61 ms │ 54.78 / 56.06 ±1.70 / 59.40 ms │ no change │
│ QQuery 10 │ 66.35 / 67.23 ±1.43 / 70.07 ms │ 67.59 / 69.20 ±1.44 / 71.78 ms │ no change │
│ QQuery 11 │ 14.35 / 14.72 ±0.47 / 15.60 ms │ 14.69 / 15.15 ±0.30 / 15.50 ms │ no change │
│ QQuery 12 │ 27.56 / 28.25 ±0.63 / 29.05 ms │ 28.14 / 28.76 ±0.80 / 30.30 ms │ no change │
│ QQuery 13 │ 38.35 / 38.83 ±0.29 / 39.13 ms │ 39.07 / 39.66 ±0.37 / 40.25 ms │ no change │
│ QQuery 14 │ 28.33 / 28.63 ±0.22 / 28.99 ms │ 28.93 / 29.22 ±0.23 / 29.56 ms │ no change │
│ QQuery 15 │ 34.09 / 34.42 ±0.31 / 35.01 ms │ 34.76 / 35.24 ±0.37 / 35.86 ms │ no change │
│ QQuery 16 │ 15.70 / 15.80 ±0.07 / 15.90 ms │ 16.00 / 16.27 ±0.38 / 17.03 ms │ no change │
│ QQuery 17 │ 79.29 / 80.63 ±0.82 / 81.84 ms │ 75.69 / 77.38 ±0.90 / 78.18 ms │ no change │
│ QQuery 18 │ 76.53 / 77.79 ±0.95 / 79.12 ms │ 78.73 / 79.49 ±0.46 / 80.05 ms │ no change │
│ QQuery 19 │ 38.12 / 38.39 ±0.16 / 38.58 ms │ 38.75 / 39.13 ±0.24 / 39.35 ms │ no change │
│ QQuery 20 │ 40.28 / 41.62 ±2.55 / 46.73 ms │ 40.75 / 42.65 ±3.22 / 49.05 ms │ no change │
│ QQuery 21 │ 64.08 / 65.63 ±1.07 / 66.75 ms │ 66.91 / 67.85 ±0.80 / 69.22 ms │ no change │
│ QQuery 22 │ 24.47 / 24.68 ±0.14 / 24.82 ms │ 24.97 / 25.24 ±0.19 / 25.47 ms │ no change │
└───────────┴────────────────────────────────┴─────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 912.79ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 916.39ms │
│ Average Time (HEAD) │ 41.49ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 41.65ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 21 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory5.5 GiB
Avg memory4.9 GiB
CPU user34.2s
CPU sys2.5s
Peak spill0 B

tpch — branch

MetricValue
Wall time5.0s
Peak memory5.5 GiB
Avg memory4.8 GiB
CPU user34.3s
CPU sys2.6s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS=128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: falsechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS=128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: false

@adriangbot

Copy link
Copy Markdown

Hi @adriangb, your benchmark configuration could not be parsed (#21931 (comment)).

Error:invalid configuration: baseline.env: invalid type: string "DATAFUSION_EXECUTION_TARGET_PARTITIONS=128 DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS", expected a map at line 5 column 8

Supported benchmarks:

  • Standard: clickbench_1, clickbench_extended, clickbench_partitioned, clickbench_pushdown, external_aggr, smj, sort_pushdown, sort_pushdown_inexact, sort_pushdown_inexact_overlap, sort_pushdown_inexact_unsorted, sort_pushdown_sorted, topk_tpch, tpcds, tpch, tpch10, tpch_mem, tpch_mem10
  • Criterion: (any)

Usage:

run benchmark <name> # run specific benchmark(s)
run benchmarks # run default suite
run benchmarks <name1> <name2> # run specific benchmarks

Per-side configuration (run benchmark tpch followed by):

env:
SHARED_SETTING: enabledbaseline:
ref: v45.0.0env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 1Gchanged:
ref: v46.0.0env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 2G

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS=128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: truechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS=128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: true

@adriangbot

Copy link
Copy Markdown

Hi @adriangb, your benchmark configuration could not be parsed (#21931 (comment)).

Error:invalid configuration: baseline.env: invalid type: string "DATAFUSION_EXECUTION_TARGET_PARTITIONS=128 DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS", expected a map at line 5 column 8

Supported benchmarks:

  • Standard: clickbench_1, clickbench_extended, clickbench_partitioned, clickbench_pushdown, external_aggr, smj, sort_pushdown, sort_pushdown_inexact, sort_pushdown_inexact_overlap, sort_pushdown_inexact_unsorted, sort_pushdown_sorted, topk_tpch, tpcds, tpch, tpch10, tpch_mem, tpch_mem10
  • Criterion: (any)

Usage:

run benchmark <name> # run specific benchmark(s)
run benchmarks # run default suite
run benchmarks <name1> <name2> # run specific benchmarks

Per-side configuration (run benchmark tpch followed by):

env:
SHARED_SETTING: enabledbaseline:
ref: v45.0.0env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 1Gchanged:
ref: v46.0.0env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 2G

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS: 128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: falsechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS: 128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: falseDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: false

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpch

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS: 128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: truechanged:
ref: HEADenv:
DATAFUSION_EXECUTION_TARGET_PARTITIONS: 128DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: trueDATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: true

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4345772857-1921-hxt5c 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (18129fe) to main diff using: 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-c4345770652-1920-8dwhv 6.12.55+ #1 SMP Sun Feb 1 08:59:41 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 HEAD (18129fe) to main diff using: tpch
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbotadriangbot mentioned this pull request Apr 29, 2026
1 task
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 50.39 / 51.37 ±0.72 / 52.18 ms │ 50.98 / 51.49 ±0.41 / 51.93 ms │ no change │
│ QQuery 2 │ 41.24 / 42.35 ±1.13 / 44.39 ms │ 42.22 / 43.18 ±1.52 / 46.19 ms │ no change │
│ QQuery 3 │ 121.16 / 137.14 ±10.30 / 149.26 ms │ 80.57 / 81.85 ±1.46 / 84.12 ms │ +1.68x faster │
│ QQuery 4 │ 35.18 / 37.11 ±1.11 / 38.15 ms │ 35.39 / 36.62 ±1.11 / 38.35 ms │ no change │
│ QQuery 5 │ 202.96 / 225.56 ±12.70 / 237.39 ms │ 121.17 / 124.14 ±2.37 / 127.42 ms │ +1.82x faster │
│ QQuery 6 │ 21.61 / 22.62 ±0.68 / 23.24 ms │ 22.16 / 22.79 ±0.61 / 23.75 ms │ no change │
│ QQuery 7 │ 209.79 / 218.28 ±4.51 / 222.71 ms │ 120.22 / 124.67 ±2.41 / 127.04 ms │ +1.75x faster │
│ QQuery 8 │ 207.20 / 212.46 ±3.23 / 216.63 ms │ 95.98 / 98.63 ±1.75 / 100.98 ms │ +2.15x faster │
│ QQuery 9 │ 196.07 / 198.42 ±2.40 / 202.39 ms │ 118.49 / 121.18 ±2.19 / 124.98 ms │ +1.64x faster │
│ QQuery 10 │ 83.06 / 84.09 ±0.83 / 85.33 ms │ 82.62 / 84.10 ±1.05 / 85.83 ms │ no change │
│ QQuery 11 │ 40.02 / 41.99 ±1.88 / 44.95 ms │ 40.26 / 41.90 ±1.06 / 43.37 ms │ no change │
│ QQuery 12 │ 113.38 / 118.16 ±4.21 / 123.64 ms │ 62.57 / 65.21 ±1.62 / 67.20 ms │ +1.81x faster │
│ QQuery 13 │ 105.37 / 111.78 ±4.20 / 118.07 ms │ 61.98 / 63.48 ±1.16 / 64.82 ms │ +1.76x faster │
│ QQuery 14 │ 44.86 / 45.82 ±0.69 / 46.79 ms │ 46.48 / 47.54 ±1.38 / 49.97 ms │ no change │
│ QQuery 15 │ 60.09 / 62.55 ±1.75 / 64.45 ms │ 62.15 / 63.99 ±1.88 / 67.34 ms │ no change │
│ QQuery 16 │ 41.66 / 43.44 ±1.00 / 44.29 ms │ 41.97 / 44.42 ±1.39 / 45.76 ms │ no change │
│ QQuery 17 │ 201.30 / 202.76 ±1.35 / 204.66 ms │ 125.61 / 127.81 ±2.07 / 131.26 ms │ +1.59x faster │
│ QQuery 18 │ 287.19 / 295.98 ±5.08 / 301.13 ms │ 226.72 / 230.02 ±2.75 / 234.29 ms │ +1.29x faster │
│ QQuery 19 │ 43.90 / 45.02 ±0.61 / 45.65 ms │ 44.09 / 44.77 ±0.51 / 45.66 ms │ no change │
│ QQuery 20 │ 127.40 / 139.73 ±6.29 / 145.14 ms │ 65.72 / 68.09 ±1.50 / 69.87 ms │ +2.05x faster │
│ QQuery 21 │ 181.94 / 191.00 ±8.25 / 205.46 ms │ 130.00 / 133.81 ±3.16 / 139.60 ms │ +1.43x faster │
│ QQuery 22 │ 37.94 / 38.71 ±0.62 / 39.46 ms │ 34.81 / 37.13 ±1.58 / 39.13 ms │ no change │
└───────────┴────────────────────────────────────┴─────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 2566.31ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 1756.80ms │
│ Average Time (HEAD) │ 116.65ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 79.85ms │
│ Queries Faster │ 11 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 11 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time15.0s
Peak memory6.4 GiB
Avg memory5.5 GiB
CPU user107.0s
CPU sys3.7s
Peak spill0 B

tpch — branch

MetricValue
Wall time10.0s
Peak memory6.5 GiB
Avg memory5.6 GiB
CPU user58.1s
CPU sys3.9s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 52.05 / 53.47 ±1.27 / 55.54 ms │ 52.46 / 53.78 ±1.30 / 55.95 ms │ no change │
│ QQuery 2 │ 43.53 / 45.21 ±1.02 / 46.38 ms │ 44.19 / 47.68 ±1.96 / 49.75 ms │ 1.05x slower │
│ QQuery 3 │ 150.12 / 158.75 ±5.93 / 167.47 ms │ 162.14 / 166.32 ±3.24 / 169.49 ms │ no change │
│ QQuery 4 │ 37.45 / 38.42 ±0.65 / 39.41 ms │ 37.47 / 39.01 ±1.57 / 41.51 ms │ no change │
│ QQuery 5 │ 250.10 / 260.92 ±8.26 / 270.85 ms │ 482.17 / 490.53 ±6.89 / 498.80 ms │ 1.88x slower │
│ QQuery 6 │ 37.75 / 38.66 ±1.18 / 40.91 ms │ 37.37 / 38.63 ±0.86 / 39.76 ms │ no change │
│ QQuery 7 │ 355.41 / 367.58 ±9.23 / 383.28 ms │ 299.28 / 302.02 ±2.32 / 306.23 ms │ +1.22x faster │
│ QQuery 8 │ 275.92 / 292.06 ±8.97 / 301.66 ms │ 397.50 / 400.91 ±2.51 / 404.69 ms │ 1.37x slower │
│ QQuery 9 │ 307.64 / 313.54 ±3.44 / 317.16 ms │ 503.08 / 513.16 ±8.07 / 526.26 ms │ 1.64x slower │
│ QQuery 10 │ 90.62 / 92.01 ±1.37 / 94.33 ms │ 92.26 / 93.08 ±0.94 / 94.78 ms │ no change │
│ QQuery 11 │ 38.05 / 39.69 ±1.26 / 41.91 ms │ 41.18 / 42.07 ±0.71 / 43.00 ms │ 1.06x slower │
│ QQuery 12 │ 136.20 / 148.87 ±7.23 / 156.97 ms │ 156.43 / 160.31 ±2.80 / 164.44 ms │ 1.08x slower │
│ QQuery 13 │ 118.32 / 125.06 ±8.53 / 140.29 ms │ 138.64 / 142.22 ±1.91 / 143.88 ms │ 1.14x slower │
│ QQuery 14 │ 79.33 / 80.29 ±1.00 / 82.11 ms │ 118.86 / 120.90 ±1.58 / 122.93 ms │ 1.51x slower │
│ QQuery 15 │ 70.79 / 71.76 ±0.78 / 72.92 ms │ 68.56 / 72.13 ±2.14 / 74.64 ms │ no change │
│ QQuery 16 │ 52.72 / 54.60 ±1.38 / 56.70 ms │ 51.29 / 54.30 ±1.66 / 56.01 ms │ no change │
│ QQuery 17 │ 289.38 / 294.78 ±5.76 / 302.41 ms │ 155.59 / 157.78 ±1.75 / 160.34 ms │ +1.87x faster │
│ QQuery 18 │ 228.93 / 243.10 ±8.59 / 255.82 ms │ 171.78 / 175.22 ±2.07 / 178.18 ms │ +1.39x faster │
│ QQuery 19 │ 44.33 / 45.59 ±0.80 / 46.55 ms │ 44.85 / 45.29 ±0.41 / 45.81 ms │ no change │
│ QQuery 20 │ 151.21 / 157.23 ±5.36 / 166.85 ms │ 87.82 / 89.43 ±1.11 / 90.61 ms │ +1.76x faster │
│ QQuery 21 │ 217.93 / 233.27 ±9.60 / 247.64 ms │ 375.11 / 377.42 ±1.62 / 379.55 ms │ 1.62x slower │
│ QQuery 22 │ 52.66 / 54.19 ±1.64 / 57.34 ms │ 51.94 / 53.94 ±1.32 / 56.07 ms │ no change │
└───────────┴───────────────────────────────────┴─────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 3209.06ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 3636.15ms │
│ Average Time (HEAD) │ 145.87ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 165.28ms │
│ Queries Faster │ 4 │
│ Queries Slower │ 9 │
│ Queries with No Change │ 9 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time20.0s
Peak memory6.2 GiB
Avg memory5.4 GiB
CPU user140.0s
CPU sys3.4s
Peak spill0 B

tpch — branch

MetricValue
Wall time20.0s
Peak memory5.9 GiB
Avg memory5.3 GiB
CPU user149.8s
CPU sys3.7s
Peak spill0 B

File an issue against this benchmark runner

@adriangb
adriangbforce-pushed the worktree-dynamic-filter-restructure branch from 474734c to f717a99CompareApril 29, 2026 22:02
@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks clickbench_partitioned tpch tpch10 tpcds hj

env:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "false"DATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: "false"baseline:
ref: mainchanged:
ref: HEAD

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4471353144-175-5nqtd 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff using: clickbench_partitioned
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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 6.30 / 6.79 ±0.90 / 8.60 ms │ 6.35 / 6.87 ±0.82 / 8.50 ms │ no change │
│ QQuery 2 │ 81.92 / 82.35 ±0.34 / 82.86 ms │ 80.19 / 81.09 ±0.59 / 81.74 ms │ no change │
│ QQuery 3 │ 28.86 / 29.30 ±0.41 / 29.82 ms │ 28.48 / 29.16 ±0.40 / 29.73 ms │ no change │
│ QQuery 4 │ 509.00 / 513.11 ±3.32 / 517.26 ms │ 516.51 / 521.28 ±3.39 / 526.97 ms │ no change │
│ QQuery 5 │ 52.71 / 53.27 ±0.51 / 54.11 ms │ 52.53 / 52.93 ±0.42 / 53.55 ms │ no change │
│ QQuery 6 │ 35.64 / 36.13 ±0.44 / 36.84 ms │ 35.27 / 35.52 ±0.18 / 35.79 ms │ no change │
│ QQuery 7 │ 105.71 / 106.79 ±1.35 / 109.41 ms │ 109.52 / 110.93 ±2.02 / 114.87 ms │ no change │
│ QQuery 8 │ 38.82 / 39.46 ±0.57 / 40.46 ms │ 38.52 / 39.02 ±0.40 / 39.53 ms │ no change │
│ QQuery 9 │ 52.60 / 55.38 ±2.80 / 59.89 ms │ 53.54 / 54.76 ±1.12 / 56.23 ms │ no change │
│ QQuery 10 │ 80.63 / 81.08 ±0.23 / 81.26 ms │ 79.98 / 81.17 ±1.73 / 84.61 ms │ no change │
│ QQuery 11 │ 310.38 / 315.15 ±4.13 / 322.16 ms │ 319.32 / 324.37 ±4.62 / 331.74 ms │ no change │
│ QQuery 12 │ 28.35 / 28.84 ±0.39 / 29.54 ms │ 28.36 / 29.07 ±0.49 / 29.77 ms │ no change │
│ QQuery 13 │ 128.18 / 129.17 ±1.14 / 131.33 ms │ 128.33 / 129.57 ±1.22 / 131.72 ms │ no change │
│ QQuery 14 │ 505.04 / 507.33 ±2.15 / 510.06 ms │ 509.09 / 512.61 ±3.29 / 517.01 ms │ no change │
│ QQuery 15 │ 60.13 / 61.36 ±0.87 / 62.60 ms │ 59.95 / 61.07 ±0.73 / 62.04 ms │ no change │
│ QQuery 16 │ 6.89 / 7.05 ±0.12 / 7.22 ms │ 6.98 / 7.12 ±0.23 / 7.59 ms │ no change │
│ QQuery 17 │ 80.63 / 82.41 ±1.50 / 84.69 ms │ 82.25 / 82.71 ±0.44 / 83.47 ms │ no change │
│ QQuery 18 │ 150.26 / 150.96 ±0.71 / 152.16 ms │ 155.00 / 155.78 ±0.96 / 157.62 ms │ no change │
│ QQuery 19 │ 41.27 / 41.62 ±0.30 / 42.02 ms │ 41.50 / 41.79 ±0.24 / 42.16 ms │ no change │
│ QQuery 20 │ 34.90 / 35.31 ±0.35 / 35.92 ms │ 34.91 / 35.58 ±0.60 / 36.52 ms │ no change │
│ QQuery 21 │ 17.77 / 17.99 ±0.15 / 18.23 ms │ 17.89 / 18.16 ±0.22 / 18.54 ms │ no change │
│ QQuery 22 │ 62.20 / 62.72 ±0.36 / 63.22 ms │ 61.91 / 62.25 ±0.23 / 62.55 ms │ no change │
│ QQuery 23 │ 473.40 / 476.52 ±2.83 / 480.64 ms │ 478.74 / 482.66 ±3.82 / 489.29 ms │ no change │
│ QQuery 24 │ 232.58 / 236.64 ±4.91 / 246.30 ms │ 239.44 / 242.55 ±2.55 / 246.69 ms │ no change │
│ QQuery 25 │ 112.58 / 113.96 ±0.94 / 115.41 ms │ 115.99 / 116.81 ±1.23 / 119.25 ms │ no change │
│ QQuery 26 │ 70.13 / 70.24 ±0.14 / 70.51 ms │ 70.76 / 71.20 ±0.45 / 72.02 ms │ no change │
│ QQuery 27 │ 7.00 / 7.12 ±0.15 / 7.42 ms │ 7.12 / 7.23 ±0.15 / 7.54 ms │ no change │
│ QQuery 28 │ 59.04 / 63.22 ±2.35 / 66.26 ms │ 58.46 / 61.76 ±1.81 / 63.50 ms │ no change │
│ QQuery 29 │ 99.20 / 102.49 ±2.22 / 106.08 ms │ 99.78 / 101.49 ±2.30 / 105.98 ms │ no change │
│ QQuery 30 │ 30.37 / 30.72 ±0.47 / 31.66 ms │ 30.39 / 30.74 ±0.32 / 31.19 ms │ no change │
│ QQuery 31 │ 112.20 / 113.88 ±2.46 / 118.73 ms │ 111.55 / 113.03 ±0.86 / 113.92 ms │ no change │
│ QQuery 32 │ 20.32 / 20.79 ±0.29 / 21.15 ms │ 20.83 / 21.12 ±0.23 / 21.52 ms │ no change │
│ QQuery 33 │ 39.38 / 39.57 ±0.22 / 39.97 ms │ 40.24 / 40.63 ±0.50 / 41.61 ms │ no change │
│ QQuery 34 │ 9.77 / 10.28 ±0.35 / 10.75 ms │ 10.41 / 10.78 ±0.33 / 11.18 ms │ no change │
│ QQuery 35 │ 80.74 / 81.35 ±0.60 / 82.17 ms │ 81.78 / 83.91 ±1.63 / 85.99 ms │ no change │
│ QQuery 36 │ 6.43 / 6.56 ±0.18 / 6.90 ms │ 6.57 / 6.71 ±0.19 / 7.09 ms │ no change │
│ QQuery 37 │ 7.05 / 7.28 ±0.16 / 7.54 ms │ 7.33 / 7.61 ±0.27 / 8.00 ms │ no change │
│ QQuery 38 │ 68.13 / 69.32 ±0.80 / 70.22 ms │ 69.09 / 69.57 ±0.50 / 70.54 ms │ no change │
│ QQuery 39 │ 97.12 / 98.38 ±0.80 / 99.32 ms │ 99.46 / 100.44 ±0.98 / 102.04 ms │ no change │
│ QQuery 40 │ 22.59 / 22.97 ±0.38 / 23.62 ms │ 24.03 / 24.16 ±0.16 / 24.48 ms │ 1.05x slower │
│ QQuery 41 │ 13.94 / 14.12 ±0.21 / 14.50 ms │ 14.05 / 14.27 ±0.18 / 14.60 ms │ no change │
│ QQuery 42 │ 24.27 / 24.60 ±0.40 / 25.36 ms │ 24.33 / 24.67 ±0.26 / 25.00 ms │ no change │
│ QQuery 43 │ 5.34 / 5.43 ±0.14 / 5.71 ms │ 5.47 / 5.57 ±0.12 / 5.81 ms │ no change │
│ QQuery 44 │ 10.91 / 11.07 ±0.11 / 11.19 ms │ 11.15 / 11.29 ±0.10 / 11.43 ms │ no change │
│ QQuery 45 │ 39.70 / 40.42 ±0.42 / 40.89 ms │ 40.64 / 41.21 ±0.31 / 41.46 ms │ no change │
│ QQuery 46 │ 13.16 / 13.40 ±0.21 / 13.78 ms │ 13.70 / 13.94 ±0.13 / 14.10 ms │ no change │
│ QQuery 47 │ 228.07 / 229.99 ±1.34 / 231.96 ms │ 233.53 / 237.12 ±3.70 / 244.19 ms │ no change │
│ QQuery 48 │ 103.78 / 104.31 ±0.59 / 105.33 ms │ 103.79 / 106.15 ±1.84 / 108.46 ms │ no change │
│ QQuery 49 │ 80.93 / 81.24 ±0.31 / 81.81 ms │ 82.00 / 82.78 ±0.42 / 83.30 ms │ no change │
│ QQuery 50 │ 60.03 / 60.64 ±0.56 / 61.50 ms │ 61.61 / 64.86 ±3.42 / 70.08 ms │ 1.07x slower │
│ QQuery 51 │ 91.91 / 94.46 ±2.31 / 98.05 ms │ 94.14 / 94.84 ±0.46 / 95.33 ms │ no change │
│ QQuery 52 │ 24.14 / 24.64 ±0.37 / 25.12 ms │ 24.84 / 25.20 ±0.49 / 26.17 ms │ no change │
│ QQuery 53 │ 30.44 / 30.87 ±0.38 / 31.55 ms │ 31.14 / 32.32 ±1.59 / 35.43 ms │ no change │
│ QQuery 54 │ 53.96 / 54.70 ±0.47 / 55.32 ms │ 54.03 / 55.80 ±1.87 / 59.38 ms │ no change │
│ QQuery 55 │ 23.87 / 25.00 ±1.89 / 28.75 ms │ 23.84 / 24.16 ±0.26 / 24.61 ms │ no change │
│ QQuery 56 │ 39.92 / 40.08 ±0.15 / 40.36 ms │ 39.84 / 40.16 ±0.23 / 40.47 ms │ no change │
│ QQuery 57 │ 175.91 / 177.86 ±1.53 / 180.07 ms │ 179.18 / 181.60 ±2.01 / 185.03 ms │ no change │
│ QQuery 58 │ 115.95 / 116.40 ±0.35 / 116.87 ms │ 115.92 / 116.32 ±0.23 / 116.53 ms │ no change │
│ QQuery 59 │ 118.44 / 119.57 ±1.00 / 121.43 ms │ 117.86 / 118.54 ±0.71 / 119.42 ms │ no change │
│ QQuery 60 │ 40.31 / 40.72 ±0.23 / 40.95 ms │ 40.42 / 40.56 ±0.25 / 41.06 ms │ no change │
│ QQuery 61 │ 14.08 / 14.18 ±0.11 / 14.37 ms │ 13.86 / 13.98 ±0.17 / 14.31 ms │ no change │
│ QQuery 62 │ 46.43 / 47.25 ±0.98 / 49.03 ms │ 47.21 / 48.23 ±0.91 / 49.54 ms │ no change │
│ QQuery 63 │ 30.50 / 31.06 ±0.71 / 32.41 ms │ 30.55 / 30.79 ±0.19 / 30.99 ms │ no change │
│ QQuery 64 │ 452.89 / 456.71 ±4.36 / 462.42 ms │ 467.57 / 473.83 ±4.94 / 481.12 ms │ no change │
│ QQuery 65 │ 143.68 / 145.94 ±2.73 / 151.29 ms │ 69.05 / 70.35 ±1.24 / 72.68 ms │ +2.07x faster │
│ QQuery 66 │ 83.39 / 85.64 ±3.67 / 92.96 ms │ 83.70 / 85.69 ±2.71 / 91.02 ms │ no change │
│ QQuery 67 │ 242.37 / 246.31 ±2.83 / 250.82 ms │ 241.24 / 246.82 ±3.64 / 250.64 ms │ no change │
│ QQuery 68 │ 13.94 / 14.04 ±0.13 / 14.30 ms │ 13.65 / 13.92 ±0.28 / 14.45 ms │ no change │
│ QQuery 69 │ 77.12 / 78.55 ±2.44 / 83.41 ms │ 76.18 / 76.40 ±0.34 / 77.08 ms │ no change │
│ QQuery 70 │ 104.34 / 111.07 ±8.99 / 128.31 ms │ 106.65 / 110.51 ±4.46 / 118.92 ms │ no change │
│ QQuery 71 │ 35.93 / 36.18 ±0.17 / 36.45 ms │ 35.86 / 36.39 ±0.56 / 37.08 ms │ no change │
│ QQuery 72 │ 2204.00 / 2278.47 ±69.05 / 2402.16 ms │ 2178.87 / 2244.60 ±55.46 / 2347.51 ms │ no change │
│ QQuery 73 │ 9.57 / 9.82 ±0.27 / 10.25 ms │ 9.49 / 9.71 ±0.28 / 10.25 ms │ no change │
│ QQuery 74 │ 177.67 / 180.81 ±2.35 / 184.72 ms │ 176.67 / 180.18 ±2.45 / 182.98 ms │ no change │
│ QQuery 75 │ 148.45 / 149.05 ±0.83 / 150.68 ms │ 149.21 / 149.92 ±0.56 / 150.83 ms │ no change │
│ QQuery 76 │ 35.70 / 36.95 ±2.08 / 41.11 ms │ 36.04 / 36.16 ±0.09 / 36.27 ms │ no change │
│ QQuery 77 │ 62.60 / 64.73 ±3.72 / 72.16 ms │ 61.51 / 62.91 ±1.90 / 66.66 ms │ no change │
│ QQuery 78 │ 189.09 / 189.56 ±0.42 / 190.16 ms │ 194.46 / 198.18 ±2.52 / 200.81 ms │ no change │
│ QQuery 79 │ 67.33 / 68.67 ±1.29 / 70.84 ms │ 67.17 / 67.88 ±0.59 / 68.97 ms │ no change │
│ QQuery 80 │ 101.78 / 105.34 ±3.99 / 112.45 ms │ 104.15 / 105.24 ±0.81 / 106.57 ms │ no change │
│ QQuery 81 │ 24.70 / 24.95 ±0.13 / 25.06 ms │ 24.25 / 25.77 ±2.62 / 31.00 ms │ no change │
│ QQuery 82 │ 16.85 / 16.89 ±0.05 / 16.97 ms │ 16.44 / 17.05 ±0.37 / 17.46 ms │ no change │
│ QQuery 83 │ 37.29 / 37.74 ±0.36 / 38.39 ms │ 36.21 / 36.75 ±0.32 / 37.15 ms │ no change │
│ QQuery 84 │ 43.27 / 43.77 ±0.31 / 44.14 ms │ 42.90 / 43.41 ±0.47 / 44.18 ms │ no change │
│ QQuery 85 │ 133.02 / 134.86 ±2.48 / 139.71 ms │ 134.18 / 136.85 ±2.35 / 140.62 ms │ no change │
│ QQuery 86 │ 25.03 / 25.36 ±0.30 / 25.86 ms │ 25.36 / 25.59 ±0.35 / 26.29 ms │ no change │
│ QQuery 87 │ 68.78 / 69.84 ±0.89 / 71.04 ms │ 68.61 / 69.30 ±0.36 / 69.60 ms │ no change │
│ QQuery 88 │ 64.78 / 65.18 ±0.41 / 65.92 ms │ 64.85 / 65.52 ±0.52 / 66.16 ms │ no change │
│ QQuery 89 │ 36.29 / 36.71 ±0.34 / 37.09 ms │ 36.32 / 37.01 ±0.51 / 37.61 ms │ no change │
│ QQuery 90 │ 17.40 / 17.71 ±0.18 / 17.92 ms │ 17.39 / 17.65 ±0.20 / 17.96 ms │ no change │
│ QQuery 91 │ 51.84 / 52.30 ±0.32 / 52.73 ms │ 51.89 / 52.15 ±0.19 / 52.42 ms │ no change │
│ QQuery 92 │ 29.82 / 30.63 ±0.96 / 32.50 ms │ 28.80 / 29.11 ±0.20 / 29.39 ms │ no change │
│ QQuery 93 │ 51.19 / 52.51 ±1.35 / 55.07 ms │ 52.01 / 52.71 ±0.52 / 53.50 ms │ no change │
│ QQuery 94 │ 38.03 / 38.61 ±0.70 / 39.87 ms │ 37.65 / 38.55 ±1.28 / 41.02 ms │ no change │
│ QQuery 95 │ 87.62 / 89.41 ±1.39 / 91.25 ms │ 88.36 / 88.93 ±0.43 / 89.67 ms │ no change │
│ QQuery 96 │ 24.54 / 24.67 ±0.17 / 25.01 ms │ 24.31 / 24.53 ±0.23 / 24.91 ms │ no change │
│ QQuery 97 │ 46.86 / 46.93 ±0.10 / 47.11 ms │ 46.79 / 47.36 ±0.44 / 48.10 ms │ no change │
│ QQuery 98 │ 42.06 / 42.52 ±0.26 / 42.75 ms │ 42.15 / 43.14 ±0.84 / 44.67 ms │ no change │
│ QQuery 99 │ 69.96 / 70.19 ±0.17 / 70.39 ms │ 70.78 / 71.10 ±0.28 / 71.57 ms │ no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 10595.50ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 10580.74ms │
│ Average Time (HEAD) │ 107.03ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 106.88ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 2 │
│ Queries with No Change │ 96 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time55.0s
Peak memory6.9 GiB
Avg memory6.2 GiB
CPU user244.8s
CPU sys6.1s
Peak spill0 B

tpcds — branch

MetricValue
Wall time55.0s
Peak memory6.8 GiB
Avg memory6.1 GiB
CPU user241.2s
CPU sys6.5s
Peak spill0 B

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-c4471353144-176-lmx9b 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff using: 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-c4471353144-177-5bflm 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff using: tpch10
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-c4471353144-178-62lgl 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff using: tpcds
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Criterion benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4471353144-179-kkrvn 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff
BENCH_NAME=hj
BENCH_COMMAND=cargo bench --features=parquet --bench hj
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
 * [new ref] refs/pull/21931/head -> worktree-dynamic-filter-restructure
* branch main -> FETCH_HEAD
Switched to branch 'worktree-dynamic-filter-restructure'
6a57b220842f342e3765912f5e64c299f9756529
From https://github.com/apache/datafusion
* branch refs/pull/21931/head -> FETCH_HEAD
Cloning into '/workspace/datafusion-base'...
From https://github.com/apache/datafusion
* branch refs/pull/21931/head -> FETCH_HEAD
Your branch is up to date with 'origin/main'.
Already on 'main'
rustc 1.95.0 (59807616e 2026-04-14)
42adf29b6bd78b10156cec3bc8838570fe666aed
47655fd6c9ef060d73497987e6ccb98e57196508
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
error: no bench target named `hj` in default-run packages
help: a target with a similar name exists: `chr`

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 worktree-dynamic-filter-restructure
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.23 / 4.75 ±6.89 / 18.53 ms │ 1.26 / 4.86 ±7.03 / 18.92 ms │ no change │
│ QQuery 1 │ 12.79 / 13.25 ±0.23 / 13.43 ms │ 12.63 / 13.15 ±0.34 / 13.54 ms │ no change │
│ QQuery 2 │ 36.14 / 36.45 ±0.30 / 36.91 ms │ 36.63 / 36.84 ±0.32 / 37.48 ms │ no change │
│ QQuery 3 │ 30.89 / 31.54 ±0.84 / 33.14 ms │ 31.34 / 31.60 ±0.29 / 32.15 ms │ no change │
│ QQuery 4 │ 232.90 / 236.75 ±2.79 / 240.43 ms │ 241.99 / 246.97 ±4.20 / 252.04 ms │ no change │
│ QQuery 5 │ 274.50 / 276.21 ±2.00 / 280.07 ms │ 286.37 / 287.71 ±1.41 / 290.13 ms │ no change │
│ QQuery 6 │ 7.00 / 7.22 ±0.22 / 7.64 ms │ 6.92 / 8.90 ±2.00 / 12.72 ms │ 1.23x slower │
│ QQuery 7 │ 14.13 / 14.44 ±0.48 / 15.39 ms │ 13.85 / 14.25 ±0.36 / 14.89 ms │ no change │
│ QQuery 8 │ 324.78 / 327.01 ±1.64 / 329.29 ms │ 321.14 / 324.63 ±2.44 / 327.76 ms │ no change │
│ QQuery 9 │ 446.08 / 459.48 ±7.90 / 469.34 ms │ 449.67 / 460.94 ±7.08 / 470.48 ms │ no change │
│ QQuery 10 │ 68.90 / 70.03 ±1.05 / 72.01 ms │ 68.15 / 69.17 ±1.10 / 71.31 ms │ no change │
│ QQuery 11 │ 79.58 / 81.48 ±1.92 / 84.97 ms │ 78.56 / 79.81 ±0.89 / 81.11 ms │ no change │
│ QQuery 12 │ 268.86 / 272.43 ±3.59 / 278.80 ms │ 272.40 / 275.86 ±2.97 / 280.04 ms │ no change │
│ QQuery 13 │ 396.43 / 413.16 ±12.72 / 429.28 ms │ 378.17 / 388.69 ±9.78 / 404.34 ms │ +1.06x faster │
│ QQuery 14 │ 292.56 / 296.43 ±3.81 / 301.53 ms │ 277.53 / 280.69 ±3.68 / 287.27 ms │ +1.06x faster │
│ QQuery 15 │ 279.93 / 285.62 ±4.06 / 290.15 ms │ 275.60 / 281.26 ±4.11 / 287.26 ms │ no change │
│ QQuery 16 │ 611.31 / 622.16 ±8.26 / 636.42 ms │ 593.04 / 615.11 ±15.20 / 633.47 ms │ no change │
│ QQuery 17 │ 618.95 / 623.27 ±3.91 / 629.77 ms │ 622.10 / 627.81 ±3.27 / 631.65 ms │ no change │
│ QQuery 18 │ 1226.25 / 1250.84 ±12.86 / 1262.67 ms │ 1206.24 / 1212.93 ±5.20 / 1219.87 ms │ no change │
│ QQuery 19 │ 28.17 / 36.78 ±15.63 / 68.01 ms │ 28.08 / 31.01 ±4.59 / 40.14 ms │ +1.19x faster │
│ QQuery 20 │ 513.19 / 524.03 ±9.06 / 540.29 ms │ 520.93 / 525.06 ±3.24 / 530.22 ms │ no change │
│ QQuery 21 │ 594.67 / 597.70 ±1.86 / 600.12 ms │ 605.07 / 609.98 ±2.60 / 612.03 ms │ no change │
│ QQuery 22 │ 1051.84 / 1066.70 ±16.17 / 1094.49 ms │ 1054.73 / 1078.13 ±13.20 / 1092.97 ms │ no change │
│ QQuery 23 │ 3166.28 / 3197.69 ±32.92 / 3259.13 ms │ 3158.53 / 3188.59 ±41.15 / 3267.56 ms │ no change │
│ QQuery 24 │ 42.18 / 44.07 ±1.49 / 46.57 ms │ 41.71 / 49.04 ±5.84 / 54.93 ms │ 1.11x slower │
│ QQuery 25 │ 111.21 / 112.40 ±1.00 / 113.99 ms │ 111.51 / 113.40 ±2.00 / 117.00 ms │ no change │
│ QQuery 26 │ 42.30 / 42.91 ±0.97 / 44.82 ms │ 42.25 / 43.77 ±2.09 / 47.76 ms │ no change │
│ QQuery 27 │ 673.87 / 679.26 ±8.39 / 695.92 ms │ 665.75 / 670.11 ±3.38 / 674.03 ms │ no change │
│ QQuery 28 │ 2973.99 / 3002.82 ±24.16 / 3041.98 ms │ 3003.19 / 3033.66 ±16.54 / 3048.59 ms │ no change │
│ QQuery 29 │ 41.95 / 50.71 ±7.47 / 60.40 ms │ 41.52 / 43.69 ±3.63 / 50.92 ms │ +1.16x faster │
│ QQuery 30 │ 298.57 / 305.82 ±6.20 / 315.06 ms │ 299.19 / 303.36 ±2.89 / 306.55 ms │ no change │
│ QQuery 31 │ 294.26 / 302.90 ±6.88 / 313.53 ms │ 291.06 / 295.83 ±3.94 / 302.92 ms │ no change │
│ QQuery 32 │ 951.59 / 962.13 ±8.88 / 973.32 ms │ 943.33 / 958.25 ±16.06 / 984.64 ms │ no change │
│ QQuery 33 │ 1404.57 / 1439.81 ±28.37 / 1489.19 ms │ 1416.36 / 1435.15 ±18.95 / 1467.04 ms │ no change │
│ QQuery 34 │ 1447.85 / 1495.67 ±28.99 / 1531.27 ms │ 1457.73 / 1496.01 ±22.49 / 1514.69 ms │ no change │
│ QQuery 35 │ 280.89 / 291.81 ±13.32 / 317.79 ms │ 285.40 / 312.38 ±33.21 / 375.95 ms │ 1.07x slower │
│ QQuery 36 │ 60.91 / 64.75 ±3.18 / 70.57 ms │ 60.53 / 64.91 ±6.94 / 78.74 ms │ no change │
│ QQuery 37 │ 34.91 / 39.99 ±6.12 / 51.05 ms │ 35.17 / 39.15 ±5.31 / 49.55 ms │ no change │
│ QQuery 38 │ 40.69 / 45.54 ±6.91 / 59.11 ms │ 43.72 / 46.61 ±3.42 / 51.93 ms │ no change │
│ QQuery 39 │ 119.57 / 130.34 ±6.66 / 140.20 ms │ 122.32 / 136.42 ±8.60 / 149.34 ms │ no change │
│ QQuery 40 │ 14.01 / 14.42 ±0.35 / 15.02 ms │ 14.03 / 15.64 ±1.66 / 18.75 ms │ 1.08x slower │
│ QQuery 41 │ 13.77 / 14.94 ±2.14 / 19.22 ms │ 13.60 / 14.01 ±0.26 / 14.28 ms │ +1.07x faster │
│ QQuery 42 │ 13.64 / 19.71 ±7.19 / 28.80 ms │ 12.87 / 14.86 ±3.29 / 21.43 ms │ +1.33x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19805.41ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 19780.21ms │
│ Average Time (HEAD) │ 460.59ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 460.00ms │
│ Queries Faster │ 6 │
│ Queries Slower │ 4 │
│ Queries with No Change │ 33 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time100.0s
Peak memory29.4 GiB
Avg memory23.0 GiB
CPU user1043.2s
CPU sys63.2s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time100.0s
Peak memory30.0 GiB
Avg memory23.1 GiB
CPU user1041.6s
CPU sys63.4s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.53 / 40.46 ±2.41 / 44.62 ms │ 38.81 / 39.62 ±1.08 / 41.54 ms │ no change │
│ QQuery 2 │ 23.88 / 24.18 ±0.43 / 25.04 ms │ 24.44 / 24.87 ±0.48 / 25.56 ms │ no change │
│ QQuery 3 │ 46.61 / 47.18 ±0.59 / 48.28 ms │ 51.03 / 51.41 ±0.30 / 51.89 ms │ 1.09x slower │
│ QQuery 4 │ 21.58 / 21.73 ±0.09 / 21.83 ms │ 21.54 / 21.87 ±0.51 / 22.88 ms │ no change │
│ QQuery 5 │ 65.70 / 66.60 ±0.67 / 67.63 ms │ 69.10 / 69.54 ±0.41 / 70.30 ms │ no change │
│ QQuery 6 │ 34.91 / 35.28 ±0.32 / 35.67 ms │ 34.36 / 35.22 ±0.82 / 36.45 ms │ no change │
│ QQuery 7 │ 56.15 / 56.45 ±0.31 / 57.02 ms │ 52.78 / 52.99 ±0.24 / 53.43 ms │ +1.07x faster │
│ QQuery 8 │ 77.75 / 79.18 ±1.18 / 81.27 ms │ 73.40 / 74.85 ±0.92 / 76.26 ms │ +1.06x faster │
│ QQuery 9 │ 102.01 / 103.65 ±2.01 / 107.59 ms │ 113.77 / 118.63 ±4.58 / 124.44 ms │ 1.14x slower │
│ QQuery 10 │ 73.92 / 74.42 ±0.58 / 75.52 ms │ 73.12 / 73.39 ±0.37 / 74.10 ms │ no change │
│ QQuery 11 │ 14.94 / 15.14 ±0.13 / 15.27 ms │ 14.97 / 15.24 ±0.27 / 15.75 ms │ no change │
│ QQuery 12 │ 44.06 / 44.70 ±0.43 / 45.19 ms │ 43.30 / 43.70 ±0.41 / 44.48 ms │ no change │
│ QQuery 13 │ 45.46 / 45.70 ±0.14 / 45.86 ms │ 61.05 / 61.29 ±0.15 / 61.50 ms │ 1.34x slower │
│ QQuery 14 │ 38.48 / 38.71 ±0.13 / 38.85 ms │ 42.91 / 43.32 ±0.33 / 43.86 ms │ 1.12x slower │
│ QQuery 15 │ 40.52 / 41.20 ±0.63 / 42.38 ms │ 40.95 / 41.60 ±0.79 / 43.07 ms │ no change │
│ QQuery 16 │ 22.54 / 22.67 ±0.11 / 22.85 ms │ 22.58 / 22.73 ±0.17 / 23.04 ms │ no change │
│ QQuery 17 │ 158.58 / 161.33 ±3.25 / 167.29 ms │ 53.82 / 54.62 ±0.53 / 55.43 ms │ +2.95x faster │
│ QQuery 18 │ 70.35 / 71.03 ±0.43 / 71.63 ms │ 51.62 / 52.42 ±0.79 / 53.89 ms │ +1.36x faster │
│ QQuery 19 │ 39.85 / 40.51 ±0.52 / 41.09 ms │ 39.52 / 39.74 ±0.19 / 40.07 ms │ no change │
│ QQuery 20 │ 44.26 / 44.83 ±0.80 / 46.39 ms │ 40.67 / 41.47 ±1.24 / 43.94 ms │ +1.08x faster │
│ QQuery 21 │ 79.76 / 80.36 ±0.47 / 81.01 ms │ 82.28 / 83.64 ±0.95 / 84.81 ms │ no change │
│ QQuery 22 │ 34.57 / 34.85 ±0.30 / 35.39 ms │ 34.62 / 35.00 ±0.31 / 35.52 ms │ no change │
└───────────┴───────────────────────────────────┴─────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 1190.17ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 1097.17ms │
│ Average Time (HEAD) │ 54.10ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 49.87ms │
│ Queries Faster │ 5 │
│ Queries Slower │ 4 │
│ Queries with No Change │ 13 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time10.0s
Peak memory5.2 GiB
Avg memory4.5 GiB
CPU user45.2s
CPU sys2.0s
Peak spill0 B

tpch — branch

MetricValue
Wall time10.0s
Peak memory5.2 GiB
Avg memory4.4 GiB
CPU user39.7s
CPU sys2.0s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf10.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 315.15 / 317.51 ±1.61 / 319.58 ms │ 317.81 / 319.35 ±1.87 / 322.85 ms │ no change │
│ QQuery 2 │ 171.00 / 172.87 ±2.08 / 176.43 ms │ 230.07 / 235.31 ±4.66 / 241.48 ms │ 1.36x slower │
│ QQuery 3 │ 366.16 / 369.55 ±2.77 / 373.99 ms │ 425.61 / 432.73 ±5.36 / 442.22 ms │ 1.17x slower │
│ QQuery 4 │ 314.26 / 316.36 ±1.84 / 319.59 ms │ 393.79 / 396.80 ±2.66 / 399.98 ms │ 1.25x slower │
│ QQuery 5 │ 578.31 / 593.38 ±8.42 / 602.38 ms │ 781.28 / 795.52 ±9.20 / 804.71 ms │ 1.34x slower │
│ QQuery 6 │ 290.23 / 292.81 ±2.14 / 296.70 ms │ 289.70 / 291.97 ±1.89 / 295.31 ms │ no change │
│ QQuery 7 │ 423.99 / 425.85 ±1.76 / 428.45 ms │ 486.88 / 488.01 ±0.82 / 488.96 ms │ 1.15x slower │
│ QQuery 8 │ 610.72 / 614.01 ±3.09 / 618.69 ms │ 686.98 / 690.28 ±3.20 / 694.25 ms │ 1.12x slower │
│ QQuery 9 │ 1337.58 / 1347.25 ±5.52 / 1352.57 ms │ 1700.75 / 1718.82 ±12.85 / 1738.23 ms │ 1.28x slower │
│ QQuery 10 │ 396.58 / 400.48 ±3.06 / 404.15 ms │ 433.52 / 440.01 ±3.46 / 443.02 ms │ 1.10x slower │
│ QQuery 11 │ 136.45 / 139.24 ±4.42 / 147.97 ms │ 139.90 / 142.55 ±3.30 / 148.88 ms │ no change │
│ QQuery 12 │ 335.67 / 339.87 ±4.49 / 347.99 ms │ 388.59 / 393.28 ±5.14 / 399.65 ms │ 1.16x slower │
│ QQuery 13 │ 377.10 / 389.58 ±9.81 / 404.80 ms │ 428.66 / 434.28 ±6.76 / 446.01 ms │ 1.11x slower │
│ QQuery 14 │ 201.09 / 202.49 ±1.53 / 205.20 ms │ 203.44 / 204.70 ±1.12 / 206.76 ms │ no change │
│ QQuery 15 │ 396.60 / 400.91 ±3.03 / 404.03 ms │ 398.21 / 401.38 ±2.06 / 404.67 ms │ no change │
│ QQuery 16 │ 100.97 / 104.96 ±5.54 / 115.78 ms │ 111.94 / 113.32 ±1.33 / 115.61 ms │ 1.08x slower │
│ QQuery 17 │ 755.12 / 761.65 ±4.87 / 768.22 ms │ 662.50 / 667.97 ±5.03 / 677.44 ms │ +1.14x faster │
│ QQuery 18 │ 664.78 / 676.35 ±7.80 / 685.13 ms │ 620.18 / 630.24 ±7.41 / 641.90 ms │ +1.07x faster │
│ QQuery 19 │ 281.54 / 287.59 ±8.32 / 303.99 ms │ 286.33 / 293.19 ±8.12 / 305.21 ms │ no change │
│ QQuery 20 │ 318.05 / 321.19 ±1.64 / 322.82 ms │ 303.56 / 307.98 ±3.83 / 314.78 ms │ no change │
│ QQuery 21 │ 1153.91 / 1162.40 ±6.29 / 1171.19 ms │ 1341.00 / 1357.49 ±12.25 / 1373.93 ms │ 1.17x slower │
│ QQuery 22 │ 128.25 / 132.09 ±2.77 / 136.09 ms │ 121.66 / 127.85 ±4.16 / 132.25 ms │ no change │
└───────────┴──────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9768.40ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 10883.03ms │
│ Average Time (HEAD) │ 444.02ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 494.68ms │
│ Queries Faster │ 2 │
│ Queries Slower │ 12 │
│ Queries with No Change │ 8 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpch10 — base (merge-base)

MetricValue
Wall time50.0s
Peak memory9.9 GiB
Avg memory8.1 GiB
CPU user537.5s
CPU sys20.2s
Peak spill0 B

tpch10 — branch

MetricValue
Wall time55.0s
Peak memory9.7 GiB
Avg memory8.2 GiB
CPU user598.3s
CPU sys20.3s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.19 / 4.51 ±6.59 / 17.70 ms │ 1.18 / 4.58 ±6.73 / 18.04 ms │ no change │
│ QQuery 1 │ 12.55 / 12.67 ±0.09 / 12.80 ms │ 12.50 / 12.75 ±0.15 / 12.89 ms │ no change │
│ QQuery 2 │ 35.28 / 35.48 ±0.12 / 35.66 ms │ 35.08 / 35.38 ±0.20 / 35.69 ms │ no change │
│ QQuery 3 │ 30.32 / 30.65 ±0.59 / 31.83 ms │ 29.99 / 30.50 ±0.48 / 31.31 ms │ no change │
│ QQuery 4 │ 225.06 / 229.66 ±2.83 / 232.87 ms │ 227.80 / 230.20 ±1.29 / 231.65 ms │ no change │
│ QQuery 5 │ 273.45 / 275.19 ±1.62 / 277.67 ms │ 273.62 / 274.68 ±1.27 / 277.15 ms │ no change │
│ QQuery 6 │ 5.46 / 5.88 ±0.26 / 6.15 ms │ 5.59 / 6.10 ±0.43 / 6.87 ms │ no change │
│ QQuery 7 │ 16.39 / 16.47 ±0.10 / 16.66 ms │ 16.11 / 16.16 ±0.03 / 16.21 ms │ no change │
│ QQuery 8 │ 319.86 / 321.42 ±1.27 / 323.71 ms │ 306.72 / 311.70 ±2.88 / 314.67 ms │ no change │
│ QQuery 9 │ 441.39 / 446.04 ±3.73 / 452.08 ms │ 440.78 / 446.44 ±4.91 / 452.09 ms │ no change │
│ QQuery 10 │ 92.31 / 93.13 ±0.44 / 93.51 ms │ 92.39 / 93.02 ±0.50 / 93.60 ms │ no change │
│ QQuery 11 │ 102.56 / 103.60 ±0.75 / 104.59 ms │ 102.65 / 106.15 ±4.23 / 114.31 ms │ no change │
│ QQuery 12 │ 299.84 / 303.23 ±2.59 / 307.11 ms │ 301.28 / 305.16 ±3.79 / 311.32 ms │ no change │
│ QQuery 13 │ 414.14 / 417.14 ±4.15 / 425.31 ms │ 412.82 / 416.38 ±2.38 / 419.17 ms │ no change │
│ QQuery 14 │ 314.00 / 320.66 ±5.73 / 329.17 ms │ 309.58 / 315.76 ±4.94 / 321.62 ms │ no change │
│ QQuery 15 │ 273.19 / 278.98 ±9.57 / 298.05 ms │ 272.92 / 275.24 ±2.35 / 278.99 ms │ no change │
│ QQuery 16 │ 612.59 / 618.84 ±8.45 / 635.41 ms │ 590.06 / 597.87 ±5.18 / 605.96 ms │ no change │
│ QQuery 17 │ 612.80 / 621.98 ±8.66 / 638.16 ms │ 598.17 / 601.22 ±2.15 / 604.45 ms │ no change │
│ QQuery 18 │ 1214.41 / 1244.18 ±17.84 / 1265.62 ms │ 1176.40 / 1198.50 ±14.51 / 1221.19 ms │ no change │
│ QQuery 19 │ 28.65 / 31.20 ±4.35 / 39.86 ms │ 28.95 / 31.23 ±3.42 / 38.00 ms │ no change │
│ QQuery 20 │ 507.20 / 515.71 ±7.22 / 528.23 ms │ 514.24 / 522.83 ±4.39 / 526.73 ms │ no change │
│ QQuery 21 │ 560.04 / 569.23 ±7.67 / 581.62 ms │ 563.55 / 569.78 ±4.56 / 576.29 ms │ no change │
│ QQuery 22 │ 911.34 / 915.05 ±2.80 / 919.06 ms │ 916.07 / 922.46 ±5.91 / 931.90 ms │ no change │
│ QQuery 23 │ 114.77 / 126.86 ±13.26 / 143.45 ms │ 113.41 / 119.51 ±4.20 / 124.63 ms │ +1.06x faster │
│ QQuery 24 │ 39.69 / 42.76 ±2.96 / 48.24 ms │ 39.84 / 41.09 ±1.26 / 43.40 ms │ no change │
│ QQuery 25 │ 144.20 / 148.17 ±5.62 / 159.34 ms │ 145.02 / 148.73 ±5.91 / 160.42 ms │ no change │
│ QQuery 26 │ 50.62 / 51.62 ±0.55 / 52.22 ms │ 61.78 / 65.74 ±3.80 / 72.52 ms │ 1.27x slower │
│ QQuery 27 │ 697.12 / 710.67 ±11.05 / 730.64 ms │ 715.07 / 727.18 ±6.84 / 735.26 ms │ no change │
│ QQuery 28 │ 3000.80 / 3015.23 ±8.42 / 3025.70 ms │ 3020.49 / 3043.37 ±17.54 / 3073.56 ms │ no change │
│ QQuery 29 │ 41.10 / 43.38 ±3.54 / 50.43 ms │ 41.05 / 45.25 ±5.45 / 55.17 ms │ no change │
│ QQuery 30 │ 300.00 / 309.58 ±5.82 / 318.01 ms │ 303.10 / 308.38 ±3.58 / 313.89 ms │ no change │
│ QQuery 31 │ 292.92 / 298.37 ±2.76 / 300.39 ms │ 290.63 / 296.15 ±3.16 / 299.73 ms │ no change │
│ QQuery 32 │ 947.59 / 969.28 ±32.67 / 1033.59 ms │ 884.35 / 904.34 ±16.63 / 932.10 ms │ +1.07x faster │
│ QQuery 33 │ 1373.07 / 1385.94 ±12.42 / 1402.79 ms │ 1380.30 / 1408.13 ±16.46 / 1428.18 ms │ no change │
│ QQuery 34 │ 1397.68 / 1411.47 ±14.11 / 1435.12 ms │ 1403.22 / 1423.08 ±16.46 / 1452.78 ms │ no change │
│ QQuery 35 │ 275.95 / 312.52 ±45.11 / 392.46 ms │ 277.77 / 293.82 ±14.66 / 317.26 ms │ +1.06x faster │
│ QQuery 36 │ 61.57 / 71.14 ±10.34 / 90.53 ms │ 62.52 / 70.25 ±6.57 / 81.33 ms │ no change │
│ QQuery 37 │ 35.97 / 36.67 ±0.51 / 37.47 ms │ 36.52 / 38.58 ±2.20 / 42.09 ms │ 1.05x slower │
│ QQuery 38 │ 34.56 / 38.28 ±4.58 / 45.63 ms │ 34.23 / 38.63 ±5.64 / 49.06 ms │ no change │
│ QQuery 39 │ 113.80 / 126.29 ±8.42 / 136.69 ms │ 115.82 / 126.37 ±5.41 / 131.03 ms │ no change │
│ QQuery 40 │ 18.37 / 18.79 ±0.31 / 19.12 ms │ 17.94 / 18.33 ±0.51 / 19.33 ms │ no change │
│ QQuery 41 │ 16.89 / 17.20 ±0.27 / 17.68 ms │ 16.75 / 16.84 ±0.07 / 16.92 ms │ no change │
│ QQuery 42 │ 14.18 / 14.40 ±0.20 / 14.77 ms │ 14.06 / 18.74 ±8.52 / 35.77 ms │ 1.30x slower │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 16559.50ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 16476.63ms │
│ Average Time (HEAD) │ 385.10ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 383.18ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 3 │
│ Queries with No Change │ 37 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time85.0s
Peak memory30.5 GiB
Avg memory23.3 GiB
CPU user875.8s
CPU sys50.0s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time85.0s
Peak memory29.3 GiB
Avg memory22.9 GiB
CPU user872.1s
CPU sys49.3s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 6.28 / 6.75 ±0.79 / 8.33 ms │ 6.09 / 6.53 ±0.83 / 8.18 ms │ no change │
│ QQuery 2 │ 46.88 / 47.51 ±0.43 / 48.15 ms │ 44.62 / 44.97 ±0.44 / 45.82 ms │ +1.06x faster │
│ QQuery 3 │ 27.98 / 28.39 ±0.43 / 29.02 ms │ 27.89 / 28.08 ±0.24 / 28.55 ms │ no change │
│ QQuery 4 │ 293.02 / 303.86 ±8.04 / 314.76 ms │ 292.43 / 295.25 ±4.33 / 303.87 ms │ no change │
│ QQuery 5 │ 78.27 / 79.24 ±1.34 / 81.87 ms │ 60.69 / 62.01 ±1.58 / 65.13 ms │ +1.28x faster │
│ QQuery 6 │ 29.94 / 30.38 ±0.55 / 31.44 ms │ 29.21 / 29.74 ±0.28 / 29.98 ms │ no change │
│ QQuery 7 │ 139.56 / 143.60 ±3.42 / 147.51 ms │ 142.06 / 144.87 ±3.32 / 151.40 ms │ no change │
│ QQuery 8 │ 20.25 / 20.57 ±0.30 / 20.94 ms │ 21.30 / 21.42 ±0.12 / 21.60 ms │ no change │
│ QQuery 9 │ 130.20 / 132.97 ±3.29 / 137.66 ms │ 136.95 / 142.55 ±4.33 / 149.24 ms │ 1.07x slower │
│ QQuery 10 │ 114.82 / 116.74 ±2.09 / 119.62 ms │ 113.09 / 118.08 ±5.39 / 127.70 ms │ no change │
│ QQuery 11 │ 198.16 / 201.82 ±2.92 / 207.05 ms │ 207.39 / 209.60 ±1.27 / 211.30 ms │ no change │
│ QQuery 12 │ 21.81 / 22.81 ±0.81 / 24.00 ms │ 22.72 / 22.85 ±0.11 / 23.03 ms │ no change │
│ QQuery 13 │ 144.47 / 147.95 ±5.27 / 158.34 ms │ 147.74 / 149.01 ±1.98 / 152.94 ms │ no change │
│ QQuery 14 │ 520.15 / 524.60 ±4.12 / 531.60 ms │ 511.82 / 521.57 ±5.04 / 525.67 ms │ no change │
│ QQuery 15 │ 20.26 / 20.94 ±1.03 / 22.97 ms │ 17.16 / 18.26 ±1.10 / 20.37 ms │ +1.15x faster │
│ QQuery 16 │ 6.95 / 7.10 ±0.16 / 7.40 ms │ 6.47 / 6.56 ±0.08 / 6.66 ms │ +1.08x faster │
│ QQuery 17 │ 76.71 / 77.33 ±0.53 / 78.17 ms │ 70.67 / 72.89 ±1.68 / 74.44 ms │ +1.06x faster │
│ QQuery 18 │ 279.13 / 287.41 ±4.47 / 292.16 ms │ 218.99 / 220.05 ±1.31 / 222.36 ms │ +1.31x faster │
│ QQuery 19 │ 47.78 / 48.25 ±0.50 / 49.02 ms │ 48.00 / 48.48 ±0.35 / 48.88 ms │ no change │
│ QQuery 20 │ 20.07 / 20.21 ±0.09 / 20.30 ms │ 20.19 / 20.72 ±0.75 / 22.20 ms │ no change │
│ QQuery 21 │ 16.84 / 17.10 ±0.19 / 17.38 ms │ 17.11 / 17.22 ±0.08 / 17.37 ms │ no change │
│ QQuery 22 │ 61.51 / 64.82 ±2.64 / 67.97 ms │ 63.95 / 66.95 ±3.36 / 73.52 ms │ no change │
│ QQuery 23 │ 378.78 / 381.22 ±1.90 / 384.55 ms │ 371.81 / 382.13 ±6.73 / 393.01 ms │ no change │
│ QQuery 24 │ 118.86 / 121.77 ±2.93 / 126.15 ms │ 116.49 / 118.99 ±2.47 / 122.18 ms │ no change │
│ QQuery 25 │ 76.84 / 78.27 ±1.10 / 79.98 ms │ 75.41 / 77.10 ±2.08 / 80.99 ms │ no change │
│ QQuery 26 │ 118.69 / 123.80 ±4.89 / 131.87 ms │ 117.71 / 120.26 ±3.18 / 126.14 ms │ no change │
│ QQuery 27 │ 7.47 / 7.62 ±0.12 / 7.82 ms │ 6.83 / 6.96 ±0.15 / 7.21 ms │ +1.10x faster │
│ QQuery 28 │ 81.20 / 82.35 ±1.92 / 86.18 ms │ 77.03 / 78.85 ±1.38 / 80.50 ms │ no change │
│ QQuery 29 │ 87.79 / 91.96 ±4.88 / 101.53 ms │ 83.23 / 85.08 ±1.74 / 87.86 ms │ +1.08x faster │
│ QQuery 30 │ 33.45 / 33.87 ±0.32 / 34.26 ms │ 33.04 / 33.37 ±0.27 / 33.66 ms │ no change │
│ QQuery 31 │ 134.38 / 137.28 ±2.44 / 141.52 ms │ 123.24 / 125.66 ±2.14 / 128.69 ms │ +1.09x faster │
│ QQuery 32 │ 22.00 / 22.55 ±0.57 / 23.60 ms │ 20.06 / 20.35 ±0.27 / 20.81 ms │ +1.11x faster │
│ QQuery 33 │ 41.56 / 42.09 ±0.44 / 42.85 ms │ 39.78 / 39.99 ±0.13 / 40.13 ms │ no change │
│ QQuery 34 │ 10.18 / 10.71 ±0.51 / 11.45 ms │ 10.21 / 10.35 ±0.24 / 10.82 ms │ no change │
│ QQuery 35 │ 116.74 / 119.14 ±4.00 / 127.09 ms │ 118.42 / 120.27 ±2.83 / 125.76 ms │ no change │
│ QQuery 36 │ 6.40 / 6.71 ±0.30 / 7.26 ms │ 6.33 / 6.47 ±0.16 / 6.76 ms │ no change │
│ QQuery 37 │ 7.53 / 7.67 ±0.09 / 7.80 ms │ 7.51 / 7.60 ±0.09 / 7.76 ms │ no change │
│ QQuery 38 │ 85.61 / 86.89 ±0.89 / 88.29 ms │ 84.71 / 85.14 ±0.33 / 85.58 ms │ no change │
│ QQuery 39 │ 91.15 / 94.11 ±4.05 / 101.97 ms │ 91.73 / 94.59 ±2.91 / 99.58 ms │ no change │
│ QQuery 40 │ 20.59 / 21.38 ±0.67 / 22.24 ms │ 20.01 / 20.34 ±0.20 / 20.64 ms │ no change │
│ QQuery 41 │ 13.36 / 13.52 ±0.13 / 13.69 ms │ 13.52 / 13.67 ±0.18 / 14.01 ms │ no change │
│ QQuery 42 │ 23.85 / 24.19 ±0.32 / 24.76 ms │ 22.47 / 22.68 ±0.15 / 22.84 ms │ +1.07x faster │
│ QQuery 43 │ 5.17 / 5.36 ±0.23 / 5.74 ms │ 5.04 / 5.13 ±0.11 / 5.35 ms │ no change │
│ QQuery 44 │ 10.57 / 10.74 ±0.13 / 10.94 ms │ 10.50 / 10.74 ±0.18 / 10.97 ms │ no change │
│ QQuery 45 │ 27.38 / 28.11 ±0.43 / 28.51 ms │ 26.19 / 26.50 ±0.27 / 26.94 ms │ +1.06x faster │
│ QQuery 46 │ 14.32 / 14.60 ±0.24 / 15.03 ms │ 14.07 / 14.21 ±0.16 / 14.48 ms │ no change │
│ QQuery 47 │ 245.69 / 253.25 ±10.77 / 274.62 ms │ 248.54 / 269.87 ±11.11 / 280.32 ms │ 1.07x slower │
│ QQuery 48 │ 134.80 / 139.15 ±3.34 / 144.34 ms │ 138.60 / 139.82 ±1.38 / 142.43 ms │ no change │
│ QQuery 49 │ 75.10 / 76.09 ±0.65 / 76.81 ms │ 73.68 / 76.56 ±2.18 / 80.06 ms │ no change │
│ QQuery 50 │ 146.15 / 149.71 ±2.46 / 153.76 ms │ 105.15 / 105.69 ±0.45 / 106.34 ms │ +1.42x faster │
│ QQuery 51 │ 103.49 / 106.69 ±2.50 / 110.23 ms │ 104.94 / 109.12 ±2.46 / 112.21 ms │ no change │
│ QQuery 52 │ 23.95 / 24.33 ±0.27 / 24.77 ms │ 23.13 / 23.48 ±0.33 / 23.94 ms │ no change │
│ QQuery 53 │ 39.19 / 39.88 ±0.71 / 41.18 ms │ 39.07 / 39.31 ±0.16 / 39.52 ms │ no change │
│ QQuery 54 │ 26.73 / 27.03 ±0.19 / 27.27 ms │ 25.85 / 26.14 ±0.18 / 26.36 ms │ no change │
│ QQuery 55 │ 23.17 / 23.50 ±0.32 / 23.96 ms │ 22.40 / 22.84 ±0.37 / 23.47 ms │ no change │
│ QQuery 56 │ 37.30 / 38.42 ±0.98 / 39.99 ms │ 36.12 / 37.52 ±2.04 / 41.57 ms │ no change │
│ QQuery 57 │ 135.26 / 137.82 ±2.92 / 143.51 ms │ 136.48 / 139.39 ±2.49 / 143.33 ms │ no change │
│ QQuery 58 │ 60.53 / 61.77 ±1.35 / 64.08 ms │ 59.18 / 60.65 ±1.89 / 64.30 ms │ no change │
│ QQuery 59 │ 93.26 / 95.26 ±2.42 / 99.51 ms │ 92.05 / 93.30 ±1.48 / 95.65 ms │ no change │
│ QQuery 60 │ 42.10 / 42.41 ±0.31 / 42.98 ms │ 41.01 / 41.38 ±0.37 / 42.06 ms │ no change │
│ QQuery 61 │ 13.53 / 13.75 ±0.20 / 14.08 ms │ 13.47 / 13.61 ±0.16 / 13.92 ms │ no change │
│ QQuery 62 │ 44.38 / 45.24 ±0.84 / 46.55 ms │ 43.89 / 45.41 ±1.82 / 48.81 ms │ no change │
│ QQuery 63 │ 40.09 / 41.43 ±1.98 / 45.31 ms │ 39.99 / 40.93 ±0.49 / 41.42 ms │ no change │
│ QQuery 64 │ 476.75 / 481.51 ±3.65 / 487.67 ms │ 522.82 / 531.01 ±6.71 / 541.03 ms │ 1.10x slower │
│ QQuery 65 │ 1060.50 / 1092.54 ±28.79 / 1130.15 ms │ 99.21 / 104.12 ±6.27 / 115.77 ms │ +10.49x faster │
│ QQuery 66 │ 70.12 / 71.64 ±1.53 / 74.58 ms │ 67.77 / 68.93 ±1.17 / 71.05 ms │ no change │
│ QQuery 67 │ 283.22 / 288.87 ±6.03 / 298.00 ms │ 269.30 / 276.45 ±6.85 / 288.73 ms │ no change │
│ QQuery 68 │ 15.22 / 15.38 ±0.10 / 15.53 ms │ 14.31 / 14.50 ±0.22 / 14.92 ms │ +1.06x faster │
│ QQuery 69 │ 112.03 / 117.69 ±5.40 / 127.88 ms │ 102.87 / 105.16 ±2.39 / 108.83 ms │ +1.12x faster │
│ QQuery 70 │ 131.43 / 137.39 ±3.95 / 141.48 ms │ 128.38 / 134.57 ±8.09 / 150.45 ms │ no change │
│ QQuery 71 │ 33.47 / 33.96 ±0.30 / 34.37 ms │ 31.48 / 32.56 ±0.82 / 33.56 ms │ no change │
│ QQuery 72 │ 199.22 / 201.13 ±1.98 / 204.92 ms │ 182.27 / 184.65 ±1.59 / 186.75 ms │ +1.09x faster │
│ QQuery 73 │ 10.75 / 10.98 ±0.14 / 11.17 ms │ 10.07 / 10.36 ±0.35 / 11.04 ms │ +1.06x faster │
│ QQuery 74 │ 139.86 / 144.03 ±5.80 / 155.51 ms │ 135.79 / 138.51 ±3.16 / 143.99 ms │ no change │
│ QQuery 75 │ 167.02 / 168.13 ±1.07 / 169.91 ms │ 167.26 / 170.64 ±2.30 / 173.05 ms │ no change │
│ QQuery 76 │ 46.90 / 50.06 ±4.03 / 57.62 ms │ 45.88 / 46.25 ±0.23 / 46.45 ms │ +1.08x faster │
│ QQuery 77 │ 72.75 / 73.14 ±0.40 / 73.81 ms │ 70.58 / 71.48 ±1.07 / 73.20 ms │ no change │
│ QQuery 78 │ 142.80 / 147.05 ±2.97 / 152.11 ms │ 143.92 / 145.22 ±1.91 / 148.97 ms │ no change │
│ QQuery 79 │ 75.93 / 76.14 ±0.16 / 76.37 ms │ 74.73 / 75.54 ±0.78 / 76.83 ms │ no change │
│ QQuery 80 │ 87.46 / 88.33 ±0.65 / 89.03 ms │ 84.91 / 86.44 ±1.39 / 88.95 ms │ no change │
│ QQuery 81 │ 28.46 / 28.89 ±0.31 / 29.37 ms │ 27.62 / 28.34 ±0.70 / 29.61 ms │ no change │
│ QQuery 82 │ 23.63 / 23.88 ±0.21 / 24.17 ms │ 23.28 / 23.60 ±0.25 / 23.92 ms │ no change │
│ QQuery 83 │ 36.95 / 37.25 ±0.22 / 37.48 ms │ 33.47 / 33.90 ±0.36 / 34.39 ms │ +1.10x faster │
│ QQuery 84 │ 56.70 / 56.93 ±0.16 / 57.13 ms │ 56.21 / 57.41 ±2.01 / 61.41 ms │ no change │
│ QQuery 85 │ 234.40 / 239.31 ±3.47 / 243.91 ms │ 168.96 / 172.71 ±2.85 / 175.91 ms │ +1.39x faster │
│ QQuery 86 │ 30.70 / 32.13 ±2.13 / 36.37 ms │ 30.02 / 30.69 ±1.08 / 32.86 ms │ no change │
│ QQuery 87 │ 89.02 / 89.56 ±0.39 / 89.96 ms │ 86.68 / 88.57 ±1.43 / 90.57 ms │ no change │
│ QQuery 88 │ 70.11 / 75.92 ±5.43 / 83.05 ms │ 72.56 / 76.75 ±3.86 / 83.30 ms │ no change │
│ QQuery 89 │ 47.00 / 49.47 ±3.60 / 56.55 ms │ 47.48 / 49.54 ±2.17 / 53.52 ms │ no change │
│ QQuery 90 │ 19.81 / 20.04 ±0.13 / 20.16 ms │ 20.11 / 20.25 ±0.12 / 20.42 ms │ no change │
│ QQuery 91 │ 71.91 / 72.67 ±0.47 / 73.31 ms │ 73.66 / 75.32 ±1.84 / 78.71 ms │ no change │
│ QQuery 92 │ 32.16 / 32.86 ±0.47 / 33.60 ms │ 29.42 / 29.99 ±0.40 / 30.52 ms │ +1.10x faster │
│ QQuery 93 │ 53.02 / 53.62 ±0.71 / 54.68 ms │ 53.43 / 55.20 ±1.56 / 57.13 ms │ no change │
│ QQuery 94 │ 39.28 / 39.81 ±0.54 / 40.86 ms │ 38.61 / 38.96 ±0.25 / 39.36 ms │ no change │
│ QQuery 95 │ 114.56 / 116.24 ±0.95 / 117.07 ms │ 91.02 / 91.90 ±0.55 / 92.72 ms │ +1.26x faster │
│ QQuery 96 │ 27.90 / 29.66 ±2.92 / 35.48 ms │ 27.93 / 28.25 ±0.26 / 28.57 ms │ no change │
│ QQuery 97 │ 50.41 / 51.58 ±0.78 / 52.82 ms │ 51.23 / 51.89 ±1.00 / 53.85 ms │ no change │
│ QQuery 98 │ 30.80 / 31.20 ±0.25 / 31.56 ms │ 29.63 / 29.97 ±0.26 / 30.42 ms │ no change │
│ QQuery 99 │ 68.79 / 69.49 ±0.74 / 70.90 ms │ 69.79 / 70.30 ±0.59 / 71.44 ms │ no change │
└───────────┴───────────────────────────────────────┴─────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9580.49ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 8329.09ms │
│ Average Time (HEAD) │ 96.77ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 84.13ms │
│ Queries Faster │ 23 │
│ Queries Slower │ 3 │
│ Queries with No Change │ 73 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time50.0s
Peak memory6.3 GiB
Avg memory5.8 GiB
CPU user133.4s
CPU sys5.1s
Peak spill0 B

tpcds — branch

MetricValue
Wall time45.0s
Peak memory6.4 GiB
Avg memory5.9 GiB
CPU user115.0s
CPU sys5.0s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks tpch10

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "false"DATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: "false"changed:
ref: HEADenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"DATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: "true"

@adriangb

Copy link
Copy Markdown
ContributorAuthor

The only regressions are tpch10 w/ filter pushdown on. I guess those are benefiting from the old CASE structure more than this new structure. I am re-running with pushdown on vs. off. I think that's the real comparison. My hypothesis is that the CASE structure is a bigger win when the hash join dynamic filters work but also a much bigger cost when they don't.

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks tpch10

baseline:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "false"DATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: "false"changed:
ref: mainenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"DATAFUSION_EXECUTION_PARQUET_REORDER_FILTERS: "true"

@adriangb

Copy link
Copy Markdown
ContributorAuthor

control: #21931 (comment)
test: #21931 (comment)

the goal is to see if this change makes turning pushdown on closer to good or not

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4471617137-180-ctztd 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 HEAD (42adf29) to main diff using: tpch10
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-c4471633434-181-nswg9 6.12.68+ #1 SMP Wed Apr 1 02:23:28 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 main (47655fd) to main diff using: tpch10
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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf10.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 317.41 / 318.52 ±0.92 / 319.98 ms │ 322.02 / 323.31 ±1.32 / 325.85 ms │ no change │
│ QQuery 2 │ 120.53 / 122.62 ±1.83 / 125.52 ms │ 231.77 / 234.15 ±2.01 / 237.76 ms │ 1.91x slower │
│ QQuery 3 │ 261.71 / 265.64 ±3.06 / 270.59 ms │ 430.75 / 435.88 ±5.94 / 444.17 ms │ 1.64x slower │
│ QQuery 4 │ 128.41 / 128.94 ±0.74 / 130.36 ms │ 413.86 / 418.21 ±4.00 / 423.52 ms │ 3.24x slower │
│ QQuery 5 │ 370.16 / 375.77 ±7.15 / 388.61 ms │ 812.65 / 828.15 ±8.75 / 838.55 ms │ 2.20x slower │
│ QQuery 6 │ 129.11 / 131.29 ±1.76 / 134.07 ms │ 297.76 / 298.98 ±1.50 / 301.92 ms │ 2.28x slower │
│ QQuery 7 │ 493.16 / 496.43 ±3.59 / 501.97 ms │ 501.97 / 507.40 ±3.51 / 511.83 ms │ no change │
│ QQuery 8 │ 406.39 / 414.95 ±6.23 / 425.13 ms │ 705.35 / 711.18 ±4.60 / 717.68 ms │ 1.71x slower │
│ QQuery 9 │ 575.78 / 578.45 ±3.38 / 585.04 ms │ 1804.40 / 1818.76 ±14.40 / 1844.20 ms │ 3.14x slower │
│ QQuery 10 │ 309.58 / 315.72 ±6.48 / 328.09 ms │ 442.99 / 451.15 ±5.92 / 458.21 ms │ 1.43x slower │
│ QQuery 11 │ 91.03 / 97.27 ±5.12 / 106.25 ms │ 142.45 / 144.00 ±1.08 / 145.79 ms │ 1.48x slower │
│ QQuery 12 │ 183.94 / 188.76 ±5.17 / 198.68 ms │ 392.15 / 397.05 ±6.68 / 410.08 ms │ 2.10x slower │
│ QQuery 13 │ 298.57 / 308.47 ±6.91 / 316.08 ms │ 423.92 / 447.37 ±16.72 / 468.93 ms │ 1.45x slower │
│ QQuery 14 │ 180.65 / 182.01 ±1.44 / 184.70 ms │ 205.84 / 210.40 ±7.28 / 224.88 ms │ 1.16x slower │
│ QQuery 15 │ 323.82 / 327.02 ±3.37 / 331.68 ms │ 402.97 / 410.96 ±5.14 / 417.49 ms │ 1.26x slower │
│ QQuery 16 │ 72.91 / 75.91 ±1.78 / 78.44 ms │ 115.93 / 117.82 ±1.36 / 119.31 ms │ 1.55x slower │
│ QQuery 17 │ 666.37 / 680.16 ±11.66 / 694.40 ms │ 668.92 / 674.00 ±5.82 / 685.15 ms │ no change │
│ QQuery 18 │ 691.55 / 704.23 ±9.34 / 720.54 ms │ 633.15 / 640.51 ±4.87 / 648.18 ms │ +1.10x faster │
│ QQuery 19 │ 256.09 / 276.49 ±15.91 / 296.16 ms │ 289.66 / 292.17 ±2.65 / 297.31 ms │ 1.06x slower │
│ QQuery 20 │ 292.17 / 299.60 ±6.33 / 309.52 ms │ 310.60 / 312.11 ±1.83 / 315.69 ms │ no change │
│ QQuery 21 │ 710.24 / 712.33 ±1.76 / 714.82 ms │ 1417.88 / 1420.43 ±2.42 / 1424.25 ms │ 1.99x slower │
│ QQuery 22 │ 64.13 / 67.51 ±3.45 / 73.68 ms │ 122.53 / 131.15 ±5.13 / 135.54 ms │ 1.94x slower │
└───────────┴────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 7068.09ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 11225.15ms │
│ Average Time (HEAD) │ 321.28ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 510.23ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 17 │
│ Queries with No Change │ 4 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴────────────┘

Resource Usage

tpch10 — base (merge-base)

MetricValue
Wall time40.0s
Peak memory12.4 GiB
Avg memory8.4 GiB
CPU user375.6s
CPU sys21.8s
Peak spill0 B

tpch10 — branch

MetricValue
Wall time60.0s
Peak memory10.0 GiB
Avg memory8.0 GiB
CPU user617.4s
CPU sys20.4s
Peak spill0 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)

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 worktree-dynamic-filter-restructure
--------------------
Benchmark tpch_sf10.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ worktree-dynamic-filter-restructure ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 313.69 / 316.71 ±3.99 / 324.52 ms │ 317.79 / 319.81 ±2.75 / 325.27 ms │ no change │
│ QQuery 2 │ 120.80 / 122.50 ±1.66 / 125.39 ms │ 172.62 / 174.62 ±1.30 / 175.99 ms │ 1.43x slower │
│ QQuery 3 │ 252.94 / 255.75 ±2.18 / 258.85 ms │ 364.39 / 366.89 ±2.02 / 370.38 ms │ 1.43x slower │
│ QQuery 4 │ 127.66 / 129.75 ±2.31 / 134.19 ms │ 315.90 / 320.12 ±3.76 / 326.84 ms │ 2.47x slower │
│ QQuery 5 │ 383.09 / 391.29 ±6.62 / 399.51 ms │ 589.24 / 598.78 ±8.76 / 613.68 ms │ 1.53x slower │
│ QQuery 6 │ 129.43 / 130.34 ±0.82 / 131.53 ms │ 290.07 / 291.85 ±1.92 / 295.58 ms │ 2.24x slower │
│ QQuery 7 │ 508.07 / 514.76 ±6.35 / 526.52 ms │ 435.58 / 438.26 ±2.34 / 441.66 ms │ +1.17x faster │
│ QQuery 8 │ 408.40 / 416.09 ±6.18 / 425.45 ms │ 621.61 / 624.81 ±2.03 / 627.92 ms │ 1.50x slower │
│ QQuery 9 │ 564.97 / 580.60 ±8.16 / 588.51 ms │ 1347.46 / 1361.81 ±11.04 / 1373.81 ms │ 2.35x slower │
│ QQuery 10 │ 310.11 / 321.14 ±6.81 / 328.39 ms │ 397.12 / 403.50 ±3.90 / 408.62 ms │ 1.26x slower │
│ QQuery 11 │ 88.55 / 94.57 ±5.03 / 103.50 ms │ 141.29 / 148.45 ±10.12 / 167.29 ms │ 1.57x slower │
│ QQuery 12 │ 178.26 / 184.80 ±7.06 / 194.59 ms │ 339.41 / 342.50 ±2.04 / 344.52 ms │ 1.85x slower │
│ QQuery 13 │ 297.96 / 306.97 ±7.40 / 320.27 ms │ 400.72 / 413.28 ±11.97 / 434.98 ms │ 1.35x slower │
│ QQuery 14 │ 175.27 / 177.23 ±2.25 / 181.63 ms │ 199.93 / 203.72 ±2.53 / 206.61 ms │ 1.15x slower │
│ QQuery 15 │ 316.41 / 324.34 ±4.93 / 331.62 ms │ 395.26 / 401.50 ±3.68 / 405.32 ms │ 1.24x slower │
│ QQuery 16 │ 74.74 / 77.56 ±1.91 / 79.93 ms │ 102.27 / 103.73 ±1.12 / 105.41 ms │ 1.34x slower │
│ QQuery 17 │ 683.03 / 696.23 ±7.97 / 704.35 ms │ 757.66 / 771.08 ±17.04 / 804.72 ms │ 1.11x slower │
│ QQuery 18 │ 690.26 / 707.63 ±10.44 / 718.66 ms │ 679.79 / 693.25 ±11.13 / 710.98 ms │ no change │
│ QQuery 19 │ 253.93 / 267.66 ±10.27 / 281.32 ms │ 283.10 / 291.69 ±10.03 / 310.93 ms │ 1.09x slower │
│ QQuery 20 │ 287.04 / 291.81 ±3.65 / 297.45 ms │ 325.34 / 331.13 ±5.97 / 341.37 ms │ 1.13x slower │
│ QQuery 21 │ 702.28 / 724.77 ±19.04 / 747.34 ms │ 1179.06 / 1183.21 ±3.51 / 1189.51 ms │ 1.63x slower │
│ QQuery 22 │ 65.44 / 67.93 ±1.55 / 70.08 ms │ 128.58 / 134.66 ±3.24 / 137.90 ms │ 1.98x slower │
└───────────┴────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 7100.43ms │
│ Total Time (worktree-dynamic-filter-restructure) │ 9918.66ms │
│ Average Time (HEAD) │ 322.75ms │
│ Average Time (worktree-dynamic-filter-restructure) │ 450.85ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 19 │
│ Queries with No Change │ 2 │
│ Queries with Failure │ 0 │
└────────────────────────────────────────────────────┴───────────┘

Resource Usage

tpch10 — base (merge-base)

MetricValue
Wall time40.0s
Peak memory12.0 GiB
Avg memory8.5 GiB
CPU user378.0s
CPU sys20.6s
Peak spill0 B

tpch10 — branch

MetricValue
Wall time50.0s
Peak memory9.8 GiB
Avg memory8.1 GiB
CPU user546.5s
CPU sys18.5s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

Hmm those SF10 results aren’t great…

@gene-bordegaray

Copy link
Copy Markdown
Contributor

The CPU utilization went up a good amount.

Could it be better to have some threshold to only use the global_minmax and drop the multi_hash_lookup so we aren't probing every partition map when expensive?

Or we could split and tune datafusion.optimizer.hash_join_inlist_pushdown_max_distinct_values. It is set to 20 right now which caps how large the arrays can be per partition and the union arrays across partitions. This seems pretty low especially for the global. Maybe split this into 2 configs and we can tune them a bit more?

@gene-bordegaray

Copy link
Copy Markdown
Contributor

hey @adriangb are you still interested in this work. I would be willing to pick up and investigate this

@adriangb

Copy link
Copy Markdown
ContributorAuthor

i am but i’m just strapped way too thin atm, if you can take a look would really appreciate it!

@gene-bordegaray

Copy link
Copy Markdown
Contributor

i am but i’m just strapped way too thin atm, if you can take a look would really appreciate it!

@adriangb cool I will play around with it a bit and post updates here for you. No rush but just had this on queue of PRs 😄

@github-actions

Copy link
Copy Markdown

Thank you for your contribution. Unfortunately, this pull request is stale because it has been open 60 days with no activity. Please remove the stale label or comment or this will be closed in 7 days.

@github-actionsgithub-actionsBot added the Stale PR has not had any activity for some time label Jul 30, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api changeAuto detected API changecommonRelated to common cratecoreCore DataFusion cratedocumentationImprovements or additions to documentationphysical-planChanges to the physical-plan crateprotoRelated to proto cratesqllogictestSQL Logic Tests (.slt)StalePR has not had any activity for some time

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adriangb@adriangbot@Dandandan@gene-bordegaray