Skip to content

feat: support pushdown-aware dynamic filter#23701

Draft
zhuqi-lucas wants to merge 12 commits into
apache:mainfrom
zhuqi-lucas:qizhu/help-22384-rebase
Draft

feat: support pushdown-aware dynamic filter#23701
zhuqi-lucas wants to merge 12 commits into
apache:mainfrom
zhuqi-lucas:qizhu/help-22384-rebase

Conversation

@zhuqi-lucas

@zhuqi-lucas zhuqi-lucas commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Completes @adriangb's #22384 with two changes to HashJoinExec's dynamic filter, both gated on the runtime execution.parquet.pushdown_filters setting so we optimize for whichever layer actually applies the filter:

  1. Skip the membership check (InListExpr for small builds, HashTableLookupExpr for large builds) when pushdown_filters=false. Per-row hash / list-lookup cost (~50–100 ns/row) doesn't earn its keep when Layer 3 PostScanFilter applies the filter post-decode — the downstream HashJoinExec hash lookup filters the same rows exactly.

  2. Replace Partitioned-mode's per-partition CASE hash(col) % N WHEN pid THEN bounds with a single union-of-bounds predicate (col ≥ min(all mins) AND col ≤ max(all maxes)) when pushdown_filters=false. Per-row hash + modulo + CASE-branch cost isn't amortized by lazy decode in Layer 3, so the tighter per-partition selectivity isn't worth paying for — the downstream hash lookup drops any row the union bounds let through incorrectly.

When pushdown_filters=true, both optimizations are off and the historical CASE hash-routed + membership form is emitted — arrow-rs RowFilter amortizes the per-row cost via lazy decode of the remaining columns for filtered rows, so the tighter selectivity earns its keep.

Results on default config (pushdown_filters=false):

Benchmark Total time change
TPC-H SF1 -6% (Q9 from 2.09x slower → gone)
TPC-DS SF1 -27% (Q72 5.96x faster)
ClickBench partitioned -12% (Q23 4.47x faster — preserved from #22384)

Architecture

    HashJoin build finalizes → SharedBuildAccumulator::build_filter
                                           │
                                           │  picks filter shape based on runtime
                                           │  execution.parquet.pushdown_filters
                                           ▼
                            DynamicFilterPhysicalExpr (Arc)
                                           │
                                           ▼
                                    ParquetExec (probe)
                                           │
       ┌───────────────────────────────────┼───────────────────────────────────┐
       ▼                                   ▼                                   ▼
   Layer 1                            Layer 2                             Layer 3
   RG-level (#22450)                  RowFilter (arrow-rs)                PostScanFilter (#22384)
   ─────────────────                  ─────────────────                   ─────────────────
   • always active                    • only when pushdown=true           • only when pushdown=false
   • prunes whole RGs via stats       • two-phase decode:                 • post-decode per-batch
   • selectivity IDENTICAL for          decode filter cols, evaluate,       predicate.evaluate +
     CASE and union bounds              lazy-decode remaining cols          filter_record_batch
     (both = stat overlaps            • per-row cost amortized by         • per-row cost dominates
     union of partition bounds)         skipped column decodes              (no lazy decode)

Effect matrix

pushdown_filters enable_hash_join_dynamic_membership_filter Partitioned filter shape Membership
false (default) any union bounds (cheap) skipped
true false CASE hash-routed skipped
true true CASE hash-routed included (historical)

CollectLeft mode is symmetric on the membership axis: skipped when pushdown_filters=false, respects the config knob when pushdown_filters=true.

Why each optimization is safe

Correctness invariant: dynamic filter is a semantics-preserving optimization — a probe row it lets through that shouldn't join is dropped by the downstream HashJoinExec hash lookup, which is exact. Skipping membership or loosening bounds only changes where the row gets filtered, not the final result.

Layer 1 (RG-level) is unaffected either way: PruningPredicate proves an RG has a chance iff its stats overlap the union of partition bounds — CASE and union bounds are stat-equivalent at this layer, and skipping membership doesn't change stat-derivable bounds either.

The regression #22384 exposed

samply on TPC-H Q9 (pushdown_filters=false, Partitioned join) showed expressions::case::PartialResultIndex::merge_n at 1.11% self-time on this PR before the fix vs 0% on main. The CASE hash-routing was being evaluated on every scanned batch through Layer 3 where there is no lazy decode to amortize it. Q9 went from 40 ms baseline → 80 ms (2.09x regression) purely from that hotspot.

Commits

  1. feat(parquet-datasource): always accept pushable filters, run rejected conjuncts post-scan@adriangb's feat(parquet-datasource): always accept pushable filters, run rejected conjuncts post-scan #22384, rebased on main.
  2. perf(hash-join): split membership from bounds in dynamic filter pushdown — adds enable_hash_join_dynamic_membership_filter config (default false).
  3. perf(hash-join): union-bounds fast path for Partitioned dynamic filter (root fix) — replaces CASE with union bounds when the fast path fires.
  4. fix(tests): CI green-up after union-bounds root fix — snapshot + SLT regen.
  5. perf(hash-join): gate union-bounds fast path on pushdown_filters=false — the coupling.

Tests

19 unit tests in shared_bounds.rs cover the full effect matrix (CollectLeft × Partitioned × pushdown={on, off} × membership={on, off}) plus edge cases (skewed ranges, empty partitions, canceled partitions). Existing filter_pushdown.rs snapshots refreshed; push_down_filter_parquet.slt, clickbench.slt, preserve_file_partitioning.slt, projection_pushdown.slt, repartition_subset_satisfaction.slt regenerated for post-#22384 plan display.

Credit: foundation is @adriangb's #22384.

@github-actions github-actions Bot added documentation Improvements or additions to documentation core Core DataFusion crate sqllogictest SQL Logic Tests (.slt) common Related to common crate datasource Changes to the datasource crate physical-plan Changes to the physical-plan crate labels Jul 19, 2026
@zhuqi-lucas

Copy link
Copy Markdown
Contributor Author

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5016086158-1158-f42x9 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (82ea18c) to 67947b6 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5016086158-1160-hqm7n 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (82ea18c) to 67947b6 (merge-base) 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-c5016086158-1159-6292q 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (82ea18c) to 67947b6 (merge-base) diff using: tpcds
Results will be posted here when complete


File an issue against this benchmark runner

@github-actions

github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown

Thank you for opening this pull request!

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

Details
     Cloning apache/main
    Building datafusion v54.0.0 (current)
       Built [ 106.534s] (current)
     Parsing datafusion v54.0.0 (current)
      Parsed [   0.034s] (current)
    Building datafusion v54.0.0 (baseline)
       Built [ 105.619s] (baseline)
     Parsing datafusion v54.0.0 (baseline)
      Parsed [   0.036s] (baseline)
    Checking datafusion v54.0.0 -> v54.0.0 (no change; assume patch)
     Checked [   0.644s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [ 215.122s] datafusion
    Building datafusion-common v54.0.0 (current)
       Built [  34.749s] (current)
     Parsing datafusion-common v54.0.0 (current)
      Parsed [   0.063s] (current)
    Building datafusion-common v54.0.0 (baseline)
       Built [  35.028s] (baseline)
     Parsing datafusion-common v54.0.0 (baseline)
      Parsed [   0.065s] (baseline)
    Checking datafusion-common v54.0.0 -> v54.0.0 (no change; assume patch)
     Checked [   0.770s] 223 checks: 222 pass, 1 fail, 0 warn, 30 skip

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field OptimizerOptions.enable_hash_join_dynamic_membership_filter in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:1360

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  72.437s] datafusion-common
    Building datafusion-datasource-parquet v54.0.0 (current)
       Built [  45.786s] (current)
     Parsing datafusion-datasource-parquet v54.0.0 (current)
      Parsed [   0.031s] (current)
    Building datafusion-datasource-parquet v54.0.0 (baseline)
       Built [  45.504s] (baseline)
     Parsing datafusion-datasource-parquet v54.0.0 (baseline)
      Parsed [   0.031s] (baseline)
    Checking datafusion-datasource-parquet v54.0.0 -> v54.0.0 (no change; assume patch)
     Checked [   0.159s] 223 checks: 222 pass, 1 fail, 0 warn, 30 skip

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ParquetFileMetrics.post_scan_rows_pruned in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:75
  field ParquetFileMetrics.post_scan_rows_matched in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:77
  field ParquetFileMetrics.post_scan_filter_eval_time in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:79

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  92.984s] datafusion-datasource-parquet
    Building datafusion-physical-plan v54.0.0 (current)
       Built [  37.807s] (current)
     Parsing datafusion-physical-plan v54.0.0 (current)
      Parsed [   0.147s] (current)
    Building datafusion-physical-plan v54.0.0 (baseline)
       Built [  38.100s] (baseline)
     Parsing datafusion-physical-plan v54.0.0 (baseline)
      Parsed [   0.143s] (baseline)
    Checking datafusion-physical-plan v54.0.0 -> v54.0.0 (no change; assume patch)
     Checked [   0.636s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [  78.430s] datafusion-physical-plan
    Building datafusion-sqllogictest v54.0.0 (current)
       Built [ 183.578s] (current)
     Parsing datafusion-sqllogictest v54.0.0 (current)
      Parsed [   0.021s] (current)
    Building datafusion-sqllogictest v54.0.0 (baseline)
       Built [ 183.911s] (baseline)
     Parsing datafusion-sqllogictest v54.0.0 (baseline)
      Parsed [   0.023s] (baseline)
    Checking datafusion-sqllogictest v54.0.0 -> v54.0.0 (no change; assume patch)
     Checked [   0.089s] 223 checks: 223 pass, 30 skip
     Summary no semver update required
    Finished [ 370.873s] datafusion-sqllogictest

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Jul 19, 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 qizhu_help-22384-rebase
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃           qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 41.02 / 43.18 ±2.71 / 47.91 ms │    38.40 / 39.15 ±1.06 / 41.23 ms │ +1.10x faster │
│ QQuery 2  │ 20.71 / 21.26 ±0.52 / 21.97 ms │    20.24 / 20.55 ±0.18 / 20.79 ms │     no change │
│ QQuery 3  │ 33.82 / 36.78 ±1.92 / 39.63 ms │    49.71 / 53.88 ±3.27 / 57.57 ms │  1.46x slower │
│ QQuery 4  │ 19.03 / 19.32 ±0.30 / 19.77 ms │    19.06 / 20.31 ±0.86 / 21.68 ms │  1.05x slower │
│ QQuery 5  │ 40.84 / 43.76 ±2.08 / 46.11 ms │    60.68 / 65.79 ±2.65 / 67.74 ms │  1.50x slower │
│ QQuery 6  │ 16.47 / 16.68 ±0.13 / 16.88 ms │    16.67 / 17.91 ±1.13 / 19.33 ms │  1.07x slower │
│ QQuery 7  │ 44.48 / 46.30 ±1.70 / 48.82 ms │    64.76 / 66.80 ±2.25 / 70.60 ms │  1.44x slower │
│ QQuery 8  │ 43.50 / 43.83 ±0.24 / 44.22 ms │    72.90 / 73.95 ±1.01 / 75.78 ms │  1.69x slower │
│ QQuery 9  │ 50.23 / 50.76 ±0.57 / 51.81 ms │ 103.78 / 106.06 ±1.98 / 108.87 ms │  2.09x slower │
│ QQuery 10 │ 42.46 / 43.41 ±0.93 / 44.83 ms │    44.00 / 44.36 ±0.36 / 45.03 ms │     no change │
│ QQuery 11 │ 13.34 / 13.73 ±0.23 / 14.04 ms │    14.24 / 14.37 ±0.11 / 14.53 ms │     no change │
│ QQuery 12 │ 24.17 / 25.22 ±0.87 / 26.17 ms │    33.56 / 34.43 ±0.61 / 35.30 ms │  1.37x slower │
│ QQuery 13 │ 32.98 / 34.20 ±1.75 / 37.68 ms │    42.05 / 43.47 ±2.14 / 47.73 ms │  1.27x slower │
│ QQuery 14 │ 23.79 / 24.40 ±0.34 / 24.80 ms │    29.30 / 30.91 ±1.75 / 33.12 ms │  1.27x slower │
│ QQuery 15 │ 31.41 / 31.72 ±0.57 / 32.86 ms │    32.78 / 33.63 ±0.84 / 34.80 ms │  1.06x slower │
│ QQuery 16 │ 14.21 / 14.40 ±0.22 / 14.83 ms │    14.17 / 14.33 ±0.21 / 14.74 ms │     no change │
│ QQuery 17 │ 70.96 / 71.63 ±0.77 / 73.07 ms │    95.77 / 96.93 ±0.88 / 97.97 ms │  1.35x slower │
│ QQuery 18 │ 58.61 / 60.24 ±1.13 / 61.68 ms │    90.75 / 94.10 ±2.35 / 97.85 ms │  1.56x slower │
│ QQuery 19 │ 33.32 / 34.11 ±0.86 / 35.42 ms │    34.89 / 35.43 ±0.50 / 36.36 ms │     no change │
│ QQuery 20 │ 31.83 / 32.14 ±0.25 / 32.55 ms │    42.21 / 42.39 ±0.10 / 42.49 ms │  1.32x slower │
│ QQuery 21 │ 54.36 / 56.18 ±1.15 / 57.93 ms │    65.50 / 68.47 ±2.12 / 71.91 ms │  1.22x slower │
│ QQuery 22 │ 14.16 / 14.39 ±0.17 / 14.63 ms │    14.60 / 14.70 ±0.08 / 14.82 ms │     no change │
└───────────┴────────────────────────────────┴───────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                      │  777.63ms │
│ Total Time (qizhu_help-22384-rebase)   │ 1031.92ms │
│ Average Time (HEAD)                    │   35.35ms │
│ Average Time (qizhu_help-22384-rebase) │   46.91ms │
│ Queries Faster                         │         1 │
│ Queries Slower                         │        15 │
│ Queries with No Change                 │         6 │
│ Queries with Failure                   │         0 │
└────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

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

tpch — branch

Metric Value
Wall time 10.0s
Peak memory 1.0 GiB
Avg memory 446.8 MiB
CPU user 33.8s
CPU sys 2.0s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃            qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           6.11 / 6.59 ±0.91 / 8.41 ms │        5.71 / 6.18 ±0.87 / 7.91 ms │ +1.07x faster │
│ QQuery 2  │        81.28 / 81.98 ±0.73 / 83.34 ms │     46.63 / 47.33 ±0.39 / 47.79 ms │ +1.73x faster │
│ QQuery 3  │        29.86 / 30.02 ±0.16 / 30.29 ms │     38.59 / 39.25 ±0.34 / 39.52 ms │  1.31x slower │
│ QQuery 4  │    490.04 / 509.77 ±24.80 / 557.13 ms │ 392.91 / 408.24 ±10.71 / 419.67 ms │ +1.25x faster │
│ QQuery 5  │        52.16 / 52.68 ±0.30 / 52.95 ms │     74.81 / 75.03 ±0.15 / 75.23 ms │  1.42x slower │
│ QQuery 6  │        36.74 / 37.18 ±0.31 / 37.51 ms │     28.41 / 28.81 ±0.58 / 29.95 ms │ +1.29x faster │
│ QQuery 7  │        94.96 / 96.40 ±1.74 / 99.75 ms │  119.92 / 121.32 ±0.91 / 122.63 ms │  1.26x slower │
│ QQuery 8  │        37.18 / 37.67 ±0.33 / 38.03 ms │     38.79 / 39.16 ±0.24 / 39.54 ms │     no change │
│ QQuery 9  │        52.99 / 55.11 ±1.91 / 58.33 ms │     51.59 / 53.91 ±1.29 / 55.41 ms │     no change │
│ QQuery 10 │        63.58 / 64.11 ±0.28 / 64.36 ms │     67.12 / 68.59 ±1.10 / 70.18 ms │  1.07x slower │
│ QQuery 11 │     303.32 / 308.84 ±5.53 / 317.18 ms │  264.39 / 267.82 ±2.94 / 271.27 ms │ +1.15x faster │
│ QQuery 12 │        29.07 / 29.63 ±0.39 / 30.12 ms │     23.23 / 23.73 ±0.37 / 24.26 ms │ +1.25x faster │
│ QQuery 13 │     120.55 / 124.66 ±2.51 / 127.54 ms │  158.65 / 160.09 ±0.99 / 161.70 ms │  1.28x slower │
│ QQuery 14 │     417.19 / 425.94 ±6.36 / 433.82 ms │  367.48 / 375.62 ±4.79 / 380.21 ms │ +1.13x faster │
│ QQuery 15 │        58.60 / 59.20 ±0.55 / 60.20 ms │     22.95 / 23.70 ±1.20 / 26.08 ms │ +2.50x faster │
│ QQuery 16 │           6.58 / 6.74 ±0.23 / 7.20 ms │        6.26 / 6.45 ±0.24 / 6.90 ms │     no change │
│ QQuery 17 │        80.14 / 81.33 ±1.68 / 84.53 ms │  165.37 / 166.87 ±1.61 / 170.00 ms │  2.05x slower │
│ QQuery 18 │     124.72 / 126.03 ±0.85 / 127.03 ms │  184.66 / 186.30 ±1.50 / 188.71 ms │  1.48x slower │
│ QQuery 19 │        42.58 / 43.06 ±0.40 / 43.53 ms │     44.62 / 44.93 ±0.43 / 45.77 ms │     no change │
│ QQuery 20 │        36.33 / 37.46 ±1.18 / 39.72 ms │     25.21 / 25.56 ±0.28 / 25.96 ms │ +1.47x faster │
│ QQuery 21 │        17.77 / 17.96 ±0.16 / 18.24 ms │     17.01 / 17.13 ±0.11 / 17.27 ms │     no change │
│ QQuery 22 │        63.22 / 64.65 ±1.15 / 66.65 ms │     70.35 / 71.26 ±0.68 / 72.44 ms │  1.10x slower │
│ QQuery 23 │     346.42 / 350.41 ±3.11 / 354.74 ms │ 374.15 / 383.69 ±11.71 / 406.60 ms │  1.09x slower │
│ QQuery 24 │     225.55 / 235.63 ±8.53 / 247.04 ms │  391.28 / 393.55 ±1.99 / 396.86 ms │  1.67x slower │
│ QQuery 25 │     118.70 / 120.52 ±1.23 / 122.39 ms │  186.11 / 186.76 ±0.44 / 187.37 ms │  1.55x slower │
│ QQuery 26 │        60.37 / 61.00 ±0.54 / 61.70 ms │     68.97 / 69.88 ±0.55 / 70.48 ms │  1.15x slower │
│ QQuery 27 │           6.69 / 6.84 ±0.09 / 6.98 ms │        6.19 / 6.35 ±0.22 / 6.78 ms │ +1.08x faster │
│ QQuery 28 │        57.63 / 60.37 ±2.72 / 63.75 ms │     58.09 / 61.96 ±1.95 / 63.28 ms │     no change │
│ QQuery 29 │       98.36 / 99.42 ±0.98 / 100.94 ms │  178.95 / 179.73 ±0.73 / 180.67 ms │  1.81x slower │
│ QQuery 30 │        32.39 / 33.12 ±0.52 / 33.75 ms │     33.93 / 34.90 ±1.21 / 37.12 ms │  1.05x slower │
│ QQuery 31 │     111.82 / 113.49 ±2.49 / 118.42 ms │  132.43 / 134.57 ±2.16 / 138.67 ms │  1.19x slower │
│ QQuery 32 │        20.21 / 20.45 ±0.28 / 20.98 ms │     24.88 / 25.34 ±0.49 / 26.21 ms │  1.24x slower │
│ QQuery 33 │        38.15 / 38.73 ±0.66 / 39.97 ms │     44.52 / 45.44 ±0.66 / 46.43 ms │  1.17x slower │
│ QQuery 34 │        10.00 / 10.19 ±0.12 / 10.38 ms │     11.46 / 11.65 ±0.14 / 11.84 ms │  1.14x slower │
│ QQuery 35 │        72.46 / 73.18 ±0.40 / 73.66 ms │     79.90 / 84.72 ±2.76 / 88.41 ms │  1.16x slower │
│ QQuery 36 │           5.70 / 5.81 ±0.18 / 6.16 ms │        6.23 / 6.35 ±0.09 / 6.47 ms │  1.09x slower │
│ QQuery 37 │           6.67 / 6.80 ±0.08 / 6.91 ms │        9.14 / 9.25 ±0.11 / 9.46 ms │  1.36x slower │
│ QQuery 38 │        61.64 / 62.97 ±1.68 / 66.22 ms │     72.67 / 74.72 ±2.31 / 78.98 ms │  1.19x slower │
│ QQuery 39 │        90.44 / 91.47 ±0.73 / 92.60 ms │     86.05 / 87.17 ±0.59 / 87.71 ms │     no change │
│ QQuery 40 │        23.64 / 23.84 ±0.17 / 24.09 ms │     22.32 / 22.96 ±0.45 / 23.59 ms │     no change │
│ QQuery 41 │        11.50 / 11.72 ±0.19 / 12.06 ms │     12.60 / 12.89 ±0.22 / 13.24 ms │  1.10x slower │
│ QQuery 42 │        23.93 / 24.41 ±0.47 / 25.29 ms │     25.81 / 26.34 ±0.67 / 27.65 ms │  1.08x slower │
│ QQuery 43 │           4.94 / 5.05 ±0.13 / 5.30 ms │        4.73 / 4.94 ±0.19 / 5.20 ms │     no change │
│ QQuery 44 │           9.15 / 9.31 ±0.16 / 9.56 ms │        9.61 / 9.70 ±0.10 / 9.85 ms │     no change │
│ QQuery 45 │        38.46 / 40.06 ±2.03 / 43.97 ms │     24.86 / 25.13 ±0.27 / 25.50 ms │ +1.59x faster │
│ QQuery 46 │        11.90 / 12.18 ±0.33 / 12.79 ms │     12.97 / 13.42 ±0.42 / 14.14 ms │  1.10x slower │
│ QQuery 47 │     230.07 / 236.86 ±5.84 / 245.16 ms │  216.09 / 219.56 ±3.27 / 225.07 ms │ +1.08x faster │
│ QQuery 48 │        96.74 / 97.54 ±0.55 / 98.37 ms │  131.93 / 134.37 ±1.73 / 137.00 ms │  1.38x slower │
│ QQuery 49 │        77.70 / 78.91 ±0.98 / 80.10 ms │  131.06 / 131.96 ±1.07 / 133.99 ms │  1.67x slower │
│ QQuery 50 │        59.59 / 60.51 ±0.58 / 61.31 ms │  140.73 / 141.42 ±0.66 / 142.45 ms │  2.34x slower │
│ QQuery 51 │        91.40 / 94.17 ±1.90 / 97.29 ms │    96.55 / 99.97 ±2.64 / 104.34 ms │  1.06x slower │
│ QQuery 52 │        24.07 / 24.40 ±0.32 / 25.00 ms │     26.36 / 26.84 ±0.28 / 27.18 ms │  1.10x slower │
│ QQuery 53 │        29.80 / 30.44 ±0.66 / 31.71 ms │     33.43 / 33.50 ±0.08 / 33.65 ms │  1.10x slower │
│ QQuery 54 │        55.21 / 55.86 ±0.46 / 56.34 ms │     55.59 / 56.60 ±1.55 / 59.68 ms │     no change │
│ QQuery 55 │        23.75 / 24.11 ±0.24 / 24.37 ms │     25.49 / 26.07 ±0.41 / 26.64 ms │  1.08x slower │
│ QQuery 56 │        38.78 / 39.49 ±0.51 / 40.08 ms │     40.87 / 41.40 ±0.48 / 42.06 ms │     no change │
│ QQuery 57 │     178.87 / 179.97 ±1.04 / 181.85 ms │  155.09 / 156.31 ±0.93 / 157.32 ms │ +1.15x faster │
│ QQuery 58 │     117.24 / 119.05 ±1.44 / 120.72 ms │     63.69 / 64.67 ±1.03 / 66.62 ms │ +1.84x faster │
│ QQuery 59 │     118.26 / 119.01 ±0.61 / 119.94 ms │     68.22 / 68.69 ±0.28 / 69.07 ms │ +1.73x faster │
│ QQuery 60 │        39.74 / 41.49 ±2.24 / 45.87 ms │     41.40 / 42.04 ±0.37 / 42.48 ms │     no change │
│ QQuery 61 │        12.23 / 12.41 ±0.23 / 12.85 ms │     11.86 / 13.18 ±2.18 / 17.53 ms │  1.06x slower │
│ QQuery 62 │        47.42 / 47.64 ±0.18 / 47.94 ms │     34.79 / 34.92 ±0.19 / 35.30 ms │ +1.36x faster │
│ QQuery 63 │        29.41 / 29.86 ±0.31 / 30.23 ms │     33.29 / 33.91 ±0.43 / 34.60 ms │  1.14x slower │
│ QQuery 64 │     411.70 / 417.28 ±3.68 / 421.60 ms │  818.45 / 824.95 ±5.41 / 832.02 ms │  1.98x slower │
│ QQuery 65 │     133.13 / 140.38 ±5.69 / 147.65 ms │  100.37 / 104.40 ±3.94 / 111.93 ms │ +1.34x faster │
│ QQuery 66 │        89.10 / 89.41 ±0.31 / 89.89 ms │     70.83 / 71.51 ±0.76 / 72.98 ms │ +1.25x faster │
│ QQuery 67 │    245.66 / 261.16 ±17.18 / 287.59 ms │  254.63 / 263.92 ±8.72 / 279.19 ms │     no change │
│ QQuery 68 │        12.48 / 13.48 ±1.30 / 16.05 ms │     13.50 / 13.63 ±0.10 / 13.78 ms │     no change │
│ QQuery 69 │        57.94 / 58.45 ±0.27 / 58.70 ms │     65.13 / 67.64 ±2.88 / 72.77 ms │  1.16x slower │
│ QQuery 70 │     107.54 / 112.68 ±8.99 / 130.65 ms │  114.36 / 117.07 ±3.27 / 122.74 ms │     no change │
│ QQuery 71 │        35.78 / 36.41 ±0.43 / 36.97 ms │     39.40 / 42.63 ±5.64 / 53.89 ms │  1.17x slower │
│ QQuery 72 │ 2170.18 / 2244.91 ±42.43 / 2292.79 ms │  446.18 / 457.63 ±8.81 / 471.74 ms │ +4.91x faster │
│ QQuery 73 │          9.56 / 9.92 ±0.32 / 10.37 ms │     10.42 / 10.60 ±0.21 / 10.99 ms │  1.07x slower │
│ QQuery 74 │     174.01 / 179.16 ±2.91 / 181.82 ms │  143.59 / 145.80 ±1.23 / 147.25 ms │ +1.23x faster │
│ QQuery 75 │     149.02 / 153.89 ±5.18 / 163.38 ms │  166.23 / 167.50 ±0.75 / 168.41 ms │  1.09x slower │
│ QQuery 76 │        35.83 / 36.64 ±0.47 / 37.12 ms │     42.09 / 45.73 ±4.24 / 52.56 ms │  1.25x slower │
│ QQuery 77 │        61.59 / 62.58 ±0.65 / 63.39 ms │     64.44 / 65.32 ±0.82 / 66.84 ms │     no change │
│ QQuery 78 │     199.02 / 202.35 ±2.83 / 206.84 ms │  171.56 / 173.17 ±1.77 / 176.40 ms │ +1.17x faster │
│ QQuery 79 │        68.04 / 70.39 ±2.70 / 75.05 ms │     77.15 / 77.81 ±0.43 / 78.24 ms │  1.11x slower │
│ QQuery 80 │     101.38 / 103.01 ±1.89 / 106.64 ms │     85.67 / 87.28 ±1.07 / 88.74 ms │ +1.18x faster │
│ QQuery 81 │        26.05 / 26.16 ±0.07 / 26.28 ms │     27.62 / 28.16 ±0.41 / 28.70 ms │  1.08x slower │
│ QQuery 82 │        16.39 / 16.53 ±0.16 / 16.83 ms │     18.61 / 19.01 ±0.28 / 19.38 ms │  1.15x slower │
│ QQuery 83 │        39.93 / 40.86 ±1.06 / 42.75 ms │     36.44 / 36.85 ±0.38 / 37.49 ms │ +1.11x faster │
│ QQuery 84 │        30.31 / 30.92 ±0.85 / 32.59 ms │     77.89 / 79.91 ±2.99 / 85.85 ms │  2.58x slower │
│ QQuery 85 │     110.45 / 111.59 ±0.76 / 112.45 ms │  182.40 / 183.99 ±0.92 / 185.19 ms │  1.65x slower │
│ QQuery 86 │        27.34 / 27.69 ±0.25 / 28.00 ms │     28.39 / 30.83 ±3.81 / 38.40 ms │  1.11x slower │
│ QQuery 87 │        69.40 / 71.04 ±1.19 / 72.83 ms │     73.95 / 75.91 ±1.36 / 77.54 ms │  1.07x slower │
│ QQuery 88 │        65.97 / 66.81 ±0.53 / 67.65 ms │     58.58 / 59.07 ±0.37 / 59.63 ms │ +1.13x faster │
│ QQuery 89 │        38.05 / 38.52 ±0.60 / 39.67 ms │     36.78 / 37.09 ±0.27 / 37.42 ms │     no change │
│ QQuery 90 │        18.18 / 18.56 ±0.31 / 18.90 ms │     15.47 / 17.49 ±3.66 / 24.81 ms │ +1.06x faster │
│ QQuery 91 │        47.99 / 49.19 ±1.98 / 53.13 ms │     55.12 / 55.74 ±0.61 / 56.74 ms │  1.13x slower │
│ QQuery 92 │        33.14 / 34.05 ±1.18 / 36.39 ms │     35.22 / 36.86 ±1.26 / 38.51 ms │  1.08x slower │
│ QQuery 93 │        53.64 / 55.77 ±1.50 / 57.32 ms │     55.65 / 56.49 ±0.73 / 57.61 ms │     no change │
│ QQuery 94 │        41.65 / 41.85 ±0.15 / 42.11 ms │     43.80 / 44.89 ±1.04 / 46.83 ms │  1.07x slower │
│ QQuery 95 │        84.89 / 86.62 ±2.03 / 90.59 ms │  123.86 / 127.41 ±3.49 / 132.17 ms │  1.47x slower │
│ QQuery 96 │        25.80 / 26.66 ±1.54 / 29.73 ms │     22.32 / 22.71 ±0.36 / 23.27 ms │ +1.17x faster │
│ QQuery 97 │        50.09 / 50.83 ±0.44 / 51.47 ms │     50.29 / 50.51 ±0.15 / 50.76 ms │     no change │
│ QQuery 98 │        48.82 / 49.24 ±0.37 / 49.76 ms │     31.48 / 32.77 ±1.90 / 36.54 ms │ +1.50x faster │
│ QQuery 99 │        75.79 / 76.80 ±1.75 / 80.28 ms │     49.91 / 50.98 ±1.45 / 53.84 ms │ +1.51x faster │
└───────────┴───────────────────────────────────────┴────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 10217.50ms │
│ Total Time (qizhu_help-22384-rebase)   │  9277.35ms │
│ Average Time (HEAD)                    │   103.21ms │
│ Average Time (qizhu_help-22384-rebase) │    93.71ms │
│ Queries Faster                         │         28 │
│ Queries Slower                         │         51 │
│ Queries with No Change                 │         20 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.2 GiB
Avg memory 1.5 GiB
CPU user 232.6s
CPU sys 6.1s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 50.0s
Peak memory 1.9 GiB
Avg memory 1.2 GiB
CPU user 136.0s
CPU sys 5.8s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃               qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.26 / 4.03 ±5.44 / 14.91 ms │          1.23 / 4.06 ±5.53 / 15.11 ms │     no change │
│ QQuery 1  │        12.47 / 13.11 ±0.35 / 13.51 ms │        13.31 / 13.86 ±0.35 / 14.40 ms │  1.06x slower │
│ QQuery 2  │        36.09 / 36.50 ±0.28 / 36.85 ms │        36.70 / 36.97 ±0.26 / 37.46 ms │     no change │
│ QQuery 3  │        30.96 / 32.01 ±0.86 / 32.89 ms │        31.19 / 31.53 ±0.47 / 32.45 ms │     no change │
│ QQuery 4  │     224.83 / 228.94 ±3.09 / 232.83 ms │     225.88 / 227.40 ±1.19 / 229.07 ms │     no change │
│ QQuery 5  │     271.42 / 273.97 ±2.16 / 277.65 ms │     274.59 / 276.69 ±1.18 / 277.74 ms │     no change │
│ QQuery 6  │           1.27 / 1.42 ±0.23 / 1.87 ms │           1.28 / 1.43 ±0.24 / 1.89 ms │     no change │
│ QQuery 7  │        13.70 / 14.01 ±0.19 / 14.28 ms │        14.79 / 14.90 ±0.12 / 15.14 ms │  1.06x slower │
│ QQuery 8  │     328.37 / 333.02 ±3.69 / 338.89 ms │     329.12 / 331.41 ±2.27 / 335.56 ms │     no change │
│ QQuery 9  │    448.08 / 460.15 ±11.63 / 481.08 ms │     460.77 / 466.66 ±5.64 / 476.17 ms │     no change │
│ QQuery 10 │        68.80 / 69.75 ±0.59 / 70.66 ms │        70.45 / 71.57 ±0.95 / 72.82 ms │     no change │
│ QQuery 11 │        81.51 / 82.14 ±0.63 / 83.22 ms │       81.21 / 85.46 ±7.31 / 100.06 ms │     no change │
│ QQuery 12 │     267.40 / 272.28 ±2.82 / 275.44 ms │     258.69 / 265.45 ±6.32 / 273.25 ms │     no change │
│ QQuery 13 │     378.79 / 383.64 ±3.43 / 387.70 ms │     390.51 / 396.77 ±9.94 / 416.55 ms │     no change │
│ QQuery 14 │     284.41 / 287.48 ±3.08 / 292.18 ms │     276.25 / 281.36 ±4.58 / 287.97 ms │     no change │
│ QQuery 15 │    269.65 / 291.57 ±18.99 / 322.16 ms │     272.38 / 283.31 ±9.16 / 298.97 ms │     no change │
│ QQuery 16 │     615.09 / 624.74 ±6.99 / 635.44 ms │    619.99 / 641.97 ±18.25 / 672.14 ms │     no change │
│ QQuery 17 │     619.71 / 633.23 ±8.43 / 643.17 ms │    623.68 / 637.88 ±13.06 / 657.24 ms │     no change │
│ QQuery 18 │ 1248.53 / 1277.10 ±19.79 / 1307.70 ms │ 1278.95 / 1296.69 ±20.88 / 1335.74 ms │     no change │
│ QQuery 19 │       28.11 / 34.31 ±12.07 / 58.45 ms │        27.49 / 28.02 ±0.32 / 28.49 ms │ +1.22x faster │
│ QQuery 20 │     516.00 / 525.10 ±9.05 / 542.53 ms │     517.59 / 521.91 ±2.57 / 525.08 ms │     no change │
│ QQuery 21 │     513.01 / 518.61 ±5.53 / 527.33 ms │     517.01 / 521.71 ±4.90 / 530.29 ms │     no change │
│ QQuery 22 │  992.67 / 1014.47 ±12.68 / 1032.37 ms │   996.50 / 1004.21 ±7.86 / 1016.96 ms │     no change │
│ QQuery 23 │ 3073.10 / 3096.21 ±18.76 / 3121.05 ms │     653.51 / 656.36 ±3.16 / 661.94 ms │ +4.72x faster │
│ QQuery 24 │       41.12 / 47.04 ±10.79 / 68.59 ms │        38.58 / 44.29 ±9.18 / 62.47 ms │ +1.06x faster │
│ QQuery 25 │     110.75 / 111.85 ±1.07 / 113.87 ms │     107.40 / 112.78 ±8.49 / 129.64 ms │     no change │
│ QQuery 26 │        41.52 / 44.02 ±2.62 / 48.87 ms │        38.71 / 39.49 ±0.43 / 39.86 ms │ +1.11x faster │
│ QQuery 27 │     515.52 / 526.00 ±7.26 / 537.04 ms │     492.88 / 497.17 ±2.37 / 500.19 ms │ +1.06x faster │
│ QQuery 28 │ 2882.32 / 2918.77 ±32.77 / 2960.36 ms │ 2892.47 / 2916.28 ±18.64 / 2943.89 ms │     no change │
│ QQuery 29 │        41.30 / 42.10 ±0.95 / 43.84 ms │        42.01 / 46.09 ±5.87 / 57.78 ms │  1.09x slower │
│ QQuery 30 │     303.78 / 312.41 ±7.90 / 326.32 ms │     311.70 / 316.99 ±3.30 / 320.92 ms │     no change │
│ QQuery 31 │     284.03 / 293.67 ±9.03 / 307.86 ms │     323.79 / 333.25 ±6.67 / 344.38 ms │  1.13x slower │
│ QQuery 32 │    951.93 / 971.34 ±13.23 / 984.01 ms │    960.77 / 972.29 ±13.14 / 988.63 ms │     no change │
│ QQuery 33 │ 1474.91 / 1503.10 ±28.00 / 1556.22 ms │ 1485.41 / 1501.32 ±12.82 / 1516.82 ms │     no change │
│ QQuery 34 │ 1479.90 / 1515.55 ±27.07 / 1562.98 ms │ 1470.39 / 1522.68 ±33.73 / 1574.54 ms │     no change │
│ QQuery 35 │    282.76 / 337.76 ±59.86 / 428.34 ms │    292.37 / 318.30 ±16.00 / 333.39 ms │ +1.06x faster │
│ QQuery 36 │        67.68 / 72.86 ±5.58 / 81.59 ms │        66.46 / 69.05 ±3.16 / 75.27 ms │ +1.06x faster │
│ QQuery 37 │        35.72 / 39.55 ±3.83 / 46.57 ms │       35.71 / 43.61 ±11.86 / 67.24 ms │  1.10x slower │
│ QQuery 38 │        39.82 / 44.20 ±3.65 / 50.08 ms │        42.76 / 45.57 ±3.46 / 52.07 ms │     no change │
│ QQuery 39 │     132.49 / 146.61 ±7.55 / 153.18 ms │     141.89 / 152.75 ±6.29 / 159.46 ms │     no change │
│ QQuery 40 │        14.28 / 17.06 ±3.90 / 24.80 ms │        14.38 / 14.87 ±0.44 / 15.48 ms │ +1.15x faster │
│ QQuery 41 │        14.07 / 14.42 ±0.50 / 15.41 ms │        13.67 / 13.97 ±0.22 / 14.34 ms │     no change │
│ QQuery 42 │        13.18 / 13.36 ±0.13 / 13.52 ms │        13.56 / 16.00 ±4.15 / 24.27 ms │  1.20x slower │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 19479.45ms │
│ Total Time (qizhu_help-22384-rebase)   │ 17074.33ms │
│ Average Time (HEAD)                    │   453.01ms │
│ Average Time (qizhu_help-22384-rebase) │   397.08ms │
│ Queries Faster                         │          8 │
│ Queries Slower                         │          6 │
│ Queries with No Change                 │         29 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 100.0s
Peak memory 11.9 GiB
Avg memory 4.6 GiB
CPU user 998.6s
CPU sys 69.2s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 11.4 GiB
Avg memory 4.2 GiB
CPU user 864.0s
CPU sys 58.7s
Peak spill 0 B

File an issue against this benchmark runner

@zhuqi-lucas

Copy link
Copy Markdown
Contributor Author

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5016278457-1163-kwtdl 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (5a8ca02) to 67947b6 (merge-base) 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-c5016278457-1162-d9hfs 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (5a8ca02) to 67947b6 (merge-base) diff using: tpcds
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-c5016278457-1161-cmcpg 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (5a8ca02) to 67947b6 (merge-base) 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 qizhu_help-22384-rebase
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃        qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 38.28 / 39.96 ±1.38 / 41.69 ms │ 38.49 / 39.34 ±1.01 / 41.15 ms │     no change │
│ QQuery 2  │ 19.20 / 19.91 ±0.74 / 21.30 ms │ 20.32 / 20.92 ±0.71 / 22.19 ms │  1.05x slower │
│ QQuery 3  │ 31.14 / 33.71 ±2.20 / 36.43 ms │ 30.71 / 33.14 ±1.25 / 34.24 ms │     no change │
│ QQuery 4  │ 17.47 / 17.84 ±0.57 / 18.98 ms │ 18.37 / 18.49 ±0.12 / 18.72 ms │     no change │
│ QQuery 5  │ 38.45 / 41.44 ±2.66 / 46.41 ms │ 38.29 / 39.89 ±0.99 / 41.07 ms │     no change │
│ QQuery 6  │ 16.12 / 16.39 ±0.22 / 16.74 ms │ 16.35 / 17.14 ±0.89 / 18.67 ms │     no change │
│ QQuery 7  │ 43.70 / 44.23 ±0.46 / 45.01 ms │ 44.22 / 46.13 ±1.05 / 47.22 ms │     no change │
│ QQuery 8  │ 42.63 / 43.04 ±0.23 / 43.35 ms │ 42.70 / 42.85 ±0.16 / 43.13 ms │     no change │
│ QQuery 9  │ 48.85 / 50.22 ±1.33 / 52.69 ms │ 49.97 / 51.05 ±0.92 / 52.66 ms │     no change │
│ QQuery 10 │ 42.10 / 42.22 ±0.15 / 42.50 ms │ 42.93 / 43.09 ±0.09 / 43.18 ms │     no change │
│ QQuery 11 │ 13.40 / 13.54 ±0.19 / 13.90 ms │ 13.32 / 13.48 ±0.15 / 13.72 ms │     no change │
│ QQuery 12 │ 24.12 / 24.70 ±0.87 / 26.42 ms │ 24.52 / 24.87 ±0.40 / 25.61 ms │     no change │
│ QQuery 13 │ 31.57 / 33.87 ±2.86 / 39.46 ms │ 32.91 / 33.87 ±0.67 / 34.86 ms │     no change │
│ QQuery 14 │ 23.64 / 23.87 ±0.19 / 24.22 ms │ 24.17 / 24.27 ±0.09 / 24.42 ms │     no change │
│ QQuery 15 │ 31.13 / 31.62 ±0.67 / 32.93 ms │ 31.65 / 31.91 ±0.21 / 32.24 ms │     no change │
│ QQuery 16 │ 14.07 / 14.46 ±0.37 / 15.08 ms │ 13.73 / 14.01 ±0.22 / 14.32 ms │     no change │
│ QQuery 17 │ 70.39 / 72.05 ±1.70 / 75.23 ms │ 65.15 / 65.81 ±0.58 / 66.79 ms │ +1.09x faster │
│ QQuery 18 │ 58.27 / 60.76 ±1.70 / 63.24 ms │ 58.90 / 59.68 ±0.72 / 60.88 ms │     no change │
│ QQuery 19 │ 32.72 / 33.64 ±0.88 / 35.03 ms │ 34.11 / 35.03 ±1.28 / 37.55 ms │     no change │
│ QQuery 20 │ 31.55 / 31.94 ±0.34 / 32.32 ms │ 31.73 / 32.45 ±0.83 / 33.98 ms │     no change │
│ QQuery 21 │ 55.40 / 56.97 ±0.88 / 57.76 ms │ 54.49 / 56.86 ±1.42 / 58.37 ms │     no change │
│ QQuery 22 │ 13.81 / 14.05 ±0.24 / 14.45 ms │ 14.12 / 14.38 ±0.18 / 14.62 ms │     no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                      ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 760.44ms │
│ Total Time (qizhu_help-22384-rebase)   │ 758.65ms │
│ Average Time (HEAD)                    │  34.57ms │
│ Average Time (qizhu_help-22384-rebase) │  34.48ms │
│ Queries Faster                         │        1 │
│ Queries Slower                         │        1 │
│ Queries with No Change                 │       20 │
│ Queries with Failure                   │        0 │
└────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 523.4 MiB
CPU user 21.9s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 526.6 MiB
CPU user 21.9s
CPU sys 1.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃               qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.63 / 6.23 ±0.92 / 8.05 ms │           5.24 / 5.76 ±0.90 / 7.56 ms │ +1.08x faster │
│ QQuery 2  │        81.23 / 81.38 ±0.12 / 81.55 ms │        81.99 / 82.27 ±0.25 / 82.69 ms │     no change │
│ QQuery 3  │        30.07 / 30.30 ±0.20 / 30.61 ms │        30.16 / 30.67 ±0.32 / 31.07 ms │     no change │
│ QQuery 4  │     523.76 / 534.05 ±8.96 / 549.95 ms │     541.28 / 548.79 ±4.70 / 555.20 ms │     no change │
│ QQuery 5  │        54.22 / 54.53 ±0.28 / 54.98 ms │        53.77 / 54.08 ±0.28 / 54.60 ms │     no change │
│ QQuery 6  │        37.54 / 38.57 ±0.74 / 39.54 ms │        38.11 / 38.60 ±0.43 / 39.18 ms │     no change │
│ QQuery 7  │       96.52 / 98.05 ±1.81 / 101.51 ms │      99.46 / 102.58 ±2.14 / 106.00 ms │     no change │
│ QQuery 8  │        38.56 / 38.68 ±0.15 / 38.97 ms │        39.04 / 39.36 ±0.22 / 39.67 ms │     no change │
│ QQuery 9  │        55.20 / 56.76 ±1.05 / 58.15 ms │        53.43 / 54.24 ±0.55 / 54.94 ms │     no change │
│ QQuery 10 │        64.58 / 65.16 ±0.59 / 66.25 ms │        66.51 / 68.47 ±2.70 / 73.74 ms │  1.05x slower │
│ QQuery 11 │     343.01 / 346.87 ±3.96 / 353.57 ms │     341.46 / 348.53 ±5.73 / 358.97 ms │     no change │
│ QQuery 12 │        29.25 / 29.99 ±0.38 / 30.32 ms │        33.13 / 34.85 ±2.76 / 40.35 ms │  1.16x slower │
│ QQuery 13 │     121.58 / 123.16 ±1.69 / 125.70 ms │     127.06 / 128.70 ±1.20 / 130.71 ms │     no change │
│ QQuery 14 │     423.94 / 426.21 ±2.27 / 430.26 ms │     431.88 / 435.89 ±3.20 / 440.98 ms │     no change │
│ QQuery 15 │        64.01 / 64.85 ±0.67 / 65.72 ms │        61.04 / 63.99 ±1.63 / 66.00 ms │     no change │
│ QQuery 16 │           7.10 / 7.20 ±0.11 / 7.41 ms │           6.48 / 6.68 ±0.18 / 7.01 ms │ +1.08x faster │
│ QQuery 17 │        82.84 / 85.64 ±4.47 / 94.50 ms │        85.23 / 88.50 ±4.55 / 97.50 ms │     no change │
│ QQuery 18 │     126.36 / 128.73 ±1.66 / 131.21 ms │     128.91 / 131.14 ±2.12 / 134.59 ms │     no change │
│ QQuery 19 │        43.33 / 44.83 ±1.64 / 48.01 ms │        43.50 / 44.10 ±0.53 / 44.90 ms │     no change │
│ QQuery 20 │        37.15 / 37.58 ±0.45 / 38.44 ms │        40.03 / 40.37 ±0.37 / 41.02 ms │  1.07x slower │
│ QQuery 21 │        18.42 / 18.58 ±0.19 / 18.92 ms │        18.91 / 19.13 ±0.17 / 19.39 ms │     no change │
│ QQuery 22 │        65.87 / 67.79 ±1.22 / 69.59 ms │        65.92 / 67.03 ±0.72 / 67.99 ms │     no change │
│ QQuery 23 │     367.52 / 372.05 ±4.42 / 380.13 ms │     370.89 / 373.76 ±2.29 / 377.22 ms │     no change │
│ QQuery 24 │     227.63 / 231.40 ±3.85 / 238.68 ms │     234.40 / 237.67 ±3.22 / 242.31 ms │     no change │
│ QQuery 25 │     113.36 / 115.66 ±1.67 / 118.37 ms │     114.83 / 117.72 ±3.22 / 123.85 ms │     no change │
│ QQuery 26 │        58.80 / 59.15 ±0.29 / 59.68 ms │        61.17 / 62.42 ±1.22 / 64.71 ms │  1.06x slower │
│ QQuery 27 │           6.53 / 6.66 ±0.08 / 6.74 ms │           6.47 / 6.58 ±0.08 / 6.67 ms │     no change │
│ QQuery 28 │        60.44 / 62.15 ±0.86 / 62.69 ms │        62.94 / 63.76 ±0.59 / 64.57 ms │     no change │
│ QQuery 29 │      99.18 / 100.36 ±1.72 / 103.78 ms │     102.26 / 104.27 ±2.00 / 107.86 ms │     no change │
│ QQuery 30 │        33.30 / 33.68 ±0.23 / 33.95 ms │        33.25 / 33.90 ±0.75 / 35.35 ms │     no change │
│ QQuery 31 │     113.83 / 116.38 ±2.66 / 121.44 ms │     116.64 / 118.79 ±2.62 / 123.57 ms │     no change │
│ QQuery 32 │        21.19 / 21.46 ±0.21 / 21.76 ms │        23.16 / 23.56 ±0.22 / 23.75 ms │  1.10x slower │
│ QQuery 33 │        38.89 / 39.18 ±0.17 / 39.36 ms │        40.53 / 40.93 ±0.29 / 41.41 ms │     no change │
│ QQuery 34 │        10.34 / 10.47 ±0.10 / 10.59 ms │        10.65 / 10.92 ±0.27 / 11.25 ms │     no change │
│ QQuery 35 │        74.39 / 77.02 ±2.76 / 82.37 ms │        78.93 / 79.61 ±0.48 / 80.35 ms │     no change │
│ QQuery 36 │           6.04 / 6.14 ±0.14 / 6.40 ms │           5.80 / 5.89 ±0.08 / 6.04 ms │     no change │
│ QQuery 37 │           7.24 / 7.33 ±0.09 / 7.48 ms │           8.85 / 8.95 ±0.10 / 9.08 ms │  1.22x slower │
│ QQuery 38 │        65.62 / 66.75 ±0.77 / 67.70 ms │        72.16 / 72.33 ±0.10 / 72.47 ms │  1.08x slower │
│ QQuery 39 │        93.03 / 93.98 ±0.70 / 95.00 ms │       97.11 / 99.30 ±2.28 / 102.25 ms │  1.06x slower │
│ QQuery 40 │        24.41 / 25.75 ±1.73 / 29.06 ms │        25.10 / 26.07 ±0.72 / 27.25 ms │     no change │
│ QQuery 41 │        12.26 / 12.37 ±0.08 / 12.48 ms │        12.78 / 12.94 ±0.11 / 13.07 ms │     no change │
│ QQuery 42 │        24.65 / 25.36 ±0.64 / 26.24 ms │        25.20 / 25.94 ±0.54 / 26.59 ms │     no change │
│ QQuery 43 │           5.17 / 5.25 ±0.08 / 5.40 ms │           4.83 / 4.94 ±0.10 / 5.10 ms │ +1.06x faster │
│ QQuery 44 │          9.90 / 9.99 ±0.06 / 10.05 ms │           9.53 / 9.65 ±0.10 / 9.83 ms │     no change │
│ QQuery 45 │        42.13 / 43.17 ±0.74 / 44.10 ms │        43.15 / 44.14 ±1.24 / 46.49 ms │     no change │
│ QQuery 46 │        12.40 / 12.50 ±0.09 / 12.64 ms │        12.81 / 13.14 ±0.24 / 13.53 ms │  1.05x slower │
│ QQuery 47 │     249.41 / 254.77 ±2.72 / 256.70 ms │     252.08 / 260.68 ±6.09 / 271.01 ms │     no change │
│ QQuery 48 │       97.54 / 98.80 ±1.62 / 101.91 ms │     100.97 / 102.04 ±0.83 / 103.11 ms │     no change │
│ QQuery 49 │        77.90 / 78.89 ±0.68 / 79.81 ms │        78.99 / 82.00 ±3.35 / 88.02 ms │     no change │
│ QQuery 50 │        59.99 / 62.30 ±2.92 / 67.27 ms │        60.79 / 61.27 ±0.36 / 61.66 ms │     no change │
│ QQuery 51 │        92.63 / 94.42 ±1.91 / 97.90 ms │       96.63 / 99.02 ±2.28 / 103.04 ms │     no change │
│ QQuery 52 │        24.59 / 24.87 ±0.23 / 25.27 ms │        25.94 / 27.67 ±3.10 / 33.86 ms │  1.11x slower │
│ QQuery 53 │        30.17 / 30.33 ±0.15 / 30.54 ms │        32.99 / 33.47 ±0.47 / 34.31 ms │  1.10x slower │
│ QQuery 54 │        55.98 / 56.50 ±0.49 / 57.24 ms │        55.67 / 56.23 ±0.47 / 56.97 ms │     no change │
│ QQuery 55 │        24.40 / 24.68 ±0.26 / 25.10 ms │        25.22 / 25.71 ±0.47 / 26.34 ms │     no change │
│ QQuery 56 │        40.12 / 40.93 ±0.59 / 41.64 ms │        39.32 / 40.19 ±0.55 / 40.99 ms │     no change │
│ QQuery 57 │     180.04 / 183.21 ±4.27 / 191.52 ms │     186.93 / 189.94 ±3.85 / 197.40 ms │     no change │
│ QQuery 58 │     117.73 / 118.91 ±1.32 / 121.21 ms │     121.36 / 123.75 ±2.82 / 129.11 ms │     no change │
│ QQuery 59 │     120.07 / 120.65 ±0.38 / 121.12 ms │     120.22 / 120.69 ±0.54 / 121.66 ms │     no change │
│ QQuery 60 │        40.35 / 41.24 ±0.64 / 41.95 ms │        40.44 / 41.48 ±1.61 / 44.67 ms │     no change │
│ QQuery 61 │        12.71 / 12.90 ±0.17 / 13.22 ms │        11.96 / 12.03 ±0.07 / 12.16 ms │ +1.07x faster │
│ QQuery 62 │        47.99 / 50.06 ±2.84 / 55.53 ms │        47.26 / 47.73 ±0.31 / 48.16 ms │     no change │
│ QQuery 63 │        30.41 / 31.01 ±0.60 / 32.11 ms │        32.83 / 33.08 ±0.25 / 33.44 ms │  1.07x slower │
│ QQuery 64 │     418.59 / 425.62 ±3.87 / 430.06 ms │     423.01 / 426.87 ±4.56 / 435.33 ms │     no change │
│ QQuery 65 │     128.23 / 131.32 ±2.56 / 135.25 ms │        72.10 / 75.77 ±3.10 / 81.39 ms │ +1.73x faster │
│ QQuery 66 │        83.52 / 85.18 ±2.35 / 89.84 ms │        84.78 / 85.04 ±0.29 / 85.56 ms │     no change │
│ QQuery 67 │     263.34 / 268.44 ±4.40 / 274.35 ms │     261.98 / 269.30 ±4.96 / 277.52 ms │     no change │
│ QQuery 68 │        12.48 / 12.76 ±0.30 / 13.27 ms │        12.64 / 12.89 ±0.21 / 13.14 ms │     no change │
│ QQuery 69 │        58.84 / 60.12 ±1.00 / 61.78 ms │        61.75 / 64.70 ±4.97 / 74.62 ms │  1.08x slower │
│ QQuery 70 │     108.83 / 114.61 ±5.52 / 125.13 ms │     112.54 / 114.33 ±2.31 / 118.74 ms │     no change │
│ QQuery 71 │        36.25 / 36.65 ±0.35 / 37.06 ms │        36.78 / 39.91 ±3.76 / 45.15 ms │  1.09x slower │
│ QQuery 72 │ 2173.47 / 2313.16 ±89.16 / 2425.30 ms │ 2194.08 / 2280.37 ±66.48 / 2342.28 ms │     no change │
│ QQuery 73 │        10.13 / 10.25 ±0.12 / 10.48 ms │        10.91 / 11.10 ±0.16 / 11.30 ms │  1.08x slower │
│ QQuery 74 │     185.70 / 190.87 ±6.34 / 203.36 ms │     192.56 / 196.90 ±3.38 / 202.29 ms │     no change │
│ QQuery 75 │     151.30 / 154.66 ±4.63 / 163.82 ms │     155.90 / 161.18 ±7.54 / 175.83 ms │     no change │
│ QQuery 76 │        36.46 / 36.74 ±0.33 / 37.37 ms │        37.52 / 37.72 ±0.22 / 38.10 ms │     no change │
│ QQuery 77 │        62.65 / 63.35 ±0.59 / 64.42 ms │        63.66 / 64.30 ±0.34 / 64.62 ms │     no change │
│ QQuery 78 │     204.76 / 208.04 ±2.04 / 211.19 ms │     208.48 / 216.87 ±6.09 / 226.62 ms │     no change │
│ QQuery 79 │        69.72 / 70.43 ±0.45 / 71.15 ms │        72.59 / 74.14 ±1.68 / 76.91 ms │  1.05x slower │
│ QQuery 80 │     102.82 / 104.83 ±1.70 / 107.71 ms │     104.90 / 107.79 ±3.09 / 113.38 ms │     no change │
│ QQuery 81 │        27.01 / 27.30 ±0.20 / 27.62 ms │        26.52 / 27.59 ±1.02 / 29.42 ms │     no change │
│ QQuery 82 │        17.21 / 17.35 ±0.16 / 17.65 ms │        19.06 / 21.03 ±3.27 / 27.54 ms │  1.21x slower │
│ QQuery 83 │        41.90 / 42.88 ±1.43 / 45.70 ms │        42.37 / 43.00 ±0.58 / 44.06 ms │     no change │
│ QQuery 84 │        30.85 / 33.20 ±3.64 / 40.46 ms │        30.50 / 30.69 ±0.15 / 30.85 ms │ +1.08x faster │
│ QQuery 85 │     107.48 / 108.64 ±0.98 / 110.10 ms │     113.95 / 115.91 ±1.50 / 118.27 ms │  1.07x slower │
│ QQuery 86 │        25.76 / 26.17 ±0.27 / 26.51 ms │        27.01 / 28.89 ±1.74 / 32.05 ms │  1.10x slower │
│ QQuery 87 │        65.96 / 66.78 ±0.44 / 67.29 ms │        72.86 / 74.02 ±1.91 / 77.83 ms │  1.11x slower │
│ QQuery 88 │        64.71 / 65.05 ±0.36 / 65.71 ms │        61.65 / 63.29 ±2.17 / 67.50 ms │     no change │
│ QQuery 89 │        36.47 / 36.94 ±0.32 / 37.33 ms │        38.30 / 39.36 ±1.44 / 42.20 ms │  1.07x slower │
│ QQuery 90 │        17.87 / 17.96 ±0.10 / 18.09 ms │        17.27 / 18.52 ±2.35 / 23.21 ms │     no change │
│ QQuery 91 │        46.42 / 47.12 ±0.87 / 48.80 ms │        47.65 / 48.31 ±0.52 / 49.00 ms │     no change │
│ QQuery 92 │        31.02 / 33.26 ±3.67 / 40.58 ms │        32.27 / 32.87 ±0.45 / 33.62 ms │     no change │
│ QQuery 93 │        51.95 / 52.63 ±0.61 / 53.60 ms │        52.27 / 53.17 ±0.69 / 54.34 ms │     no change │
│ QQuery 94 │        39.18 / 39.62 ±0.37 / 40.11 ms │        40.38 / 41.24 ±1.06 / 43.32 ms │     no change │
│ QQuery 95 │        81.93 / 84.19 ±3.15 / 90.40 ms │        84.03 / 86.45 ±2.28 / 90.47 ms │     no change │
│ QQuery 96 │        25.40 / 25.51 ±0.10 / 25.65 ms │        24.97 / 25.34 ±0.50 / 26.29 ms │     no change │
│ QQuery 97 │        47.72 / 48.61 ±0.86 / 50.08 ms │        48.64 / 49.20 ±0.40 / 49.82 ms │     no change │
│ QQuery 98 │        44.17 / 44.96 ±0.48 / 45.49 ms │        47.73 / 49.06 ±0.89 / 50.16 ms │  1.09x slower │
│ QQuery 99 │        73.01 / 73.82 ±0.99 / 75.75 ms │        72.87 / 72.93 ±0.05 / 73.01 ms │     no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 10442.81ms │
│ Total Time (qizhu_help-22384-rebase)   │ 10547.93ms │
│ Average Time (HEAD)                    │   105.48ms │
│ Average Time (qizhu_help-22384-rebase) │   106.54ms │
│ Queries Faster                         │          6 │
│ Queries Slower                         │         22 │
│ Queries with No Change                 │         71 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 1.9 GiB
Avg memory 1.4 GiB
CPU user 237.7s
CPU sys 6.1s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.3 GiB
Avg memory 1.6 GiB
CPU user 230.8s
CPU sys 6.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃               qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.27 / 3.99 ±5.41 / 14.81 ms │          1.37 / 4.36 ±5.80 / 15.97 ms │  1.09x slower │
│ QQuery 1  │        13.35 / 13.47 ±0.11 / 13.62 ms │        14.21 / 14.38 ±0.14 / 14.61 ms │  1.07x slower │
│ QQuery 2  │        36.24 / 37.06 ±0.72 / 38.31 ms │        37.36 / 37.91 ±0.36 / 38.46 ms │     no change │
│ QQuery 3  │        30.78 / 31.67 ±0.81 / 33.19 ms │        33.04 / 33.29 ±0.25 / 33.73 ms │  1.05x slower │
│ QQuery 4  │     223.75 / 226.56 ±1.65 / 228.57 ms │     262.81 / 265.80 ±2.72 / 270.18 ms │  1.17x slower │
│ QQuery 5  │    271.90 / 306.19 ±17.93 / 322.17 ms │     296.67 / 305.72 ±5.28 / 311.88 ms │     no change │
│ QQuery 6  │           1.67 / 1.88 ±0.22 / 2.26 ms │           1.26 / 1.42 ±0.23 / 1.86 ms │ +1.32x faster │
│ QQuery 7  │        15.28 / 15.96 ±0.75 / 17.37 ms │        14.36 / 14.58 ±0.15 / 14.75 ms │ +1.09x faster │
│ QQuery 8  │    331.09 / 343.75 ±10.67 / 358.78 ms │     324.04 / 334.18 ±9.69 / 351.24 ms │     no change │
│ QQuery 9  │     456.10 / 463.29 ±8.23 / 478.98 ms │    450.85 / 477.57 ±18.86 / 504.44 ms │     no change │
│ QQuery 10 │        70.39 / 72.17 ±1.79 / 75.13 ms │        70.21 / 72.60 ±1.81 / 75.04 ms │     no change │
│ QQuery 11 │        82.21 / 83.16 ±0.85 / 84.22 ms │        81.46 / 84.42 ±3.70 / 91.53 ms │     no change │
│ QQuery 12 │     265.60 / 271.71 ±5.18 / 280.64 ms │    257.28 / 275.15 ±12.22 / 293.67 ms │     no change │
│ QQuery 13 │    362.35 / 381.10 ±13.68 / 397.57 ms │    383.38 / 426.92 ±22.65 / 443.70 ms │  1.12x slower │
│ QQuery 14 │     280.50 / 284.88 ±4.03 / 292.47 ms │     275.18 / 287.47 ±7.14 / 295.24 ms │     no change │
│ QQuery 15 │     270.75 / 277.78 ±8.55 / 293.66 ms │     268.93 / 278.49 ±9.28 / 290.84 ms │     no change │
│ QQuery 16 │    600.92 / 622.47 ±22.25 / 664.79 ms │    613.32 / 629.75 ±12.21 / 651.03 ms │     no change │
│ QQuery 17 │    630.44 / 667.48 ±44.69 / 740.24 ms │     619.19 / 629.90 ±7.50 / 638.68 ms │ +1.06x faster │
│ QQuery 18 │ 1249.16 / 1266.38 ±14.18 / 1284.56 ms │ 1286.67 / 1326.21 ±33.17 / 1374.07 ms │     no change │
│ QQuery 19 │        28.31 / 28.59 ±0.29 / 28.95 ms │      27.59 / 50.27 ±33.29 / 113.49 ms │  1.76x slower │
│ QQuery 20 │    513.96 / 526.42 ±15.89 / 553.92 ms │     518.23 / 525.55 ±7.32 / 538.68 ms │     no change │
│ QQuery 21 │     514.49 / 519.87 ±3.14 / 523.93 ms │     513.27 / 516.24 ±2.61 / 520.93 ms │     no change │
│ QQuery 22 │  983.66 / 1012.59 ±35.34 / 1080.82 ms │     991.63 / 994.97 ±2.76 / 999.53 ms │     no change │
│ QQuery 23 │ 3126.76 / 3232.47 ±87.58 / 3360.25 ms │    668.00 / 714.90 ±37.29 / 755.79 ms │ +4.52x faster │
│ QQuery 24 │       44.07 / 55.27 ±15.15 / 83.61 ms │        38.71 / 41.93 ±3.95 / 49.48 ms │ +1.32x faster │
│ QQuery 25 │     115.65 / 121.20 ±5.24 / 130.88 ms │     105.19 / 106.94 ±1.72 / 109.56 ms │ +1.13x faster │
│ QQuery 26 │        42.06 / 43.03 ±0.75 / 44.04 ms │        39.42 / 39.87 ±0.46 / 40.71 ms │ +1.08x faster │
│ QQuery 27 │     516.83 / 522.05 ±5.00 / 531.40 ms │     493.00 / 497.54 ±3.67 / 504.25 ms │     no change │
│ QQuery 28 │ 2870.45 / 2912.10 ±44.06 / 2985.31 ms │ 2884.16 / 2968.63 ±65.30 / 3072.87 ms │     no change │
│ QQuery 29 │      41.82 / 71.50 ±23.54 / 104.19 ms │      43.45 / 65.73 ±36.60 / 137.93 ms │ +1.09x faster │
│ QQuery 30 │    303.19 / 311.03 ±10.54 / 331.53 ms │     348.32 / 355.09 ±5.78 / 365.80 ms │  1.14x slower │
│ QQuery 31 │     288.64 / 295.11 ±4.05 / 301.21 ms │    316.94 / 350.06 ±35.76 / 416.59 ms │  1.19x slower │
│ QQuery 32 │  952.94 / 1042.23 ±74.16 / 1132.48 ms │   917.20 / 964.44 ±30.07 / 1009.50 ms │ +1.08x faster │
│ QQuery 33 │ 1427.17 / 1462.54 ±24.64 / 1492.95 ms │ 1443.65 / 1521.05 ±95.32 / 1707.30 ms │     no change │
│ QQuery 34 │ 1474.45 / 1526.33 ±58.95 / 1637.76 ms │ 1488.87 / 1566.04 ±91.10 / 1728.00 ms │     no change │
│ QQuery 35 │    307.74 / 357.97 ±31.05 / 405.00 ms │   280.95 / 353.92 ±107.60 / 563.37 ms │     no change │
│ QQuery 36 │       84.50 / 93.17 ±9.04 / 109.92 ms │        66.59 / 71.69 ±6.31 / 82.75 ms │ +1.30x faster │
│ QQuery 37 │        38.25 / 39.35 ±0.82 / 40.42 ms │        34.73 / 40.32 ±6.14 / 49.31 ms │     no change │
│ QQuery 38 │        42.61 / 44.65 ±1.66 / 47.22 ms │        42.06 / 43.50 ±0.73 / 44.12 ms │     no change │
│ QQuery 39 │    161.11 / 172.77 ±10.17 / 191.60 ms │     140.62 / 150.60 ±5.39 / 156.16 ms │ +1.15x faster │
│ QQuery 40 │        16.00 / 16.59 ±0.61 / 17.44 ms │        14.50 / 16.44 ±3.59 / 23.61 ms │     no change │
│ QQuery 41 │        15.13 / 15.49 ±0.18 / 15.61 ms │        13.28 / 13.51 ±0.15 / 13.67 ms │ +1.15x faster │
│ QQuery 42 │        14.88 / 16.75 ±3.43 / 23.61 ms │        13.11 / 13.28 ±0.13 / 13.50 ms │ +1.26x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 19810.03ms │
│ Total Time (qizhu_help-22384-rebase)   │ 17482.64ms │
│ Average Time (HEAD)                    │   460.70ms │
│ Average Time (qizhu_help-22384-rebase) │   406.57ms │
│ Queries Faster                         │         13 │
│ Queries Slower                         │          8 │
│ Queries with No Change                 │         22 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 100.0s
Peak memory 13.2 GiB
Avg memory 4.7 GiB
CPU user 1010.8s
CPU sys 72.4s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 11.1 GiB
Avg memory 4.5 GiB
CPU user 880.7s
CPU sys 60.2s
Peak spill 0 B

File an issue against this benchmark runner

@zhuqi-lucas

Copy link
Copy Markdown
Contributor Author

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5018183637-1165-bt6fr 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (836f46e) to 67947b6 (merge-base) diff using: tpcds
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-c5018183637-1164-qt5jx 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (836f46e) to 67947b6 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5018183637-1166-bg8k2 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (836f46e) to 67947b6 (merge-base) diff using: tpch
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 qizhu_help-22384-rebase
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃        qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 40.01 / 41.44 ±1.50 / 43.65 ms │ 40.13 / 41.86 ±1.47 / 43.46 ms │     no change │
│ QQuery 2  │ 20.35 / 20.61 ±0.23 / 21.01 ms │ 21.33 / 21.96 ±0.68 / 22.84 ms │  1.07x slower │
│ QQuery 3  │ 33.05 / 34.54 ±1.04 / 35.83 ms │ 31.79 / 34.09 ±1.37 / 35.79 ms │     no change │
│ QQuery 4  │ 18.76 / 19.20 ±0.53 / 20.21 ms │ 18.61 / 18.94 ±0.18 / 19.13 ms │     no change │
│ QQuery 5  │ 40.76 / 43.86 ±1.75 / 45.87 ms │ 38.59 / 41.15 ±1.30 / 42.08 ms │ +1.07x faster │
│ QQuery 6  │ 17.50 / 18.38 ±1.10 / 20.22 ms │ 16.31 / 16.55 ±0.16 / 16.75 ms │ +1.11x faster │
│ QQuery 7  │ 48.72 / 51.37 ±2.63 / 56.28 ms │ 36.29 / 38.20 ±1.14 / 39.23 ms │ +1.34x faster │
│ QQuery 8  │ 45.28 / 45.66 ±0.20 / 45.85 ms │ 45.45 / 47.03 ±1.38 / 49.27 ms │     no change │
│ QQuery 9  │ 52.94 / 54.20 ±1.00 / 55.89 ms │ 55.91 / 56.94 ±0.79 / 58.20 ms │  1.05x slower │
│ QQuery 10 │ 45.69 / 46.14 ±0.53 / 47.16 ms │ 43.78 / 44.46 ±0.50 / 45.28 ms │     no change │
│ QQuery 11 │ 14.53 / 14.68 ±0.10 / 14.81 ms │ 13.95 / 14.58 ±0.71 / 15.94 ms │     no change │
│ QQuery 12 │ 25.10 / 26.17 ±0.83 / 27.47 ms │ 24.55 / 26.79 ±1.84 / 29.36 ms │     no change │
│ QQuery 13 │ 34.37 / 37.14 ±2.09 / 40.70 ms │ 33.35 / 35.07 ±1.27 / 36.66 ms │ +1.06x faster │
│ QQuery 14 │ 25.26 / 25.48 ±0.21 / 25.81 ms │ 24.29 / 24.71 ±0.28 / 25.11 ms │     no change │
│ QQuery 15 │ 34.01 / 34.65 ±0.81 / 36.19 ms │ 31.93 / 32.48 ±0.69 / 33.84 ms │ +1.07x faster │
│ QQuery 16 │ 14.91 / 15.35 ±0.29 / 15.80 ms │ 13.96 / 14.18 ±0.15 / 14.41 ms │ +1.08x faster │
│ QQuery 17 │ 82.48 / 84.53 ±2.30 / 88.64 ms │ 70.26 / 73.27 ±3.57 / 78.61 ms │ +1.15x faster │
│ QQuery 18 │ 65.43 / 67.08 ±1.20 / 68.99 ms │ 62.69 / 64.68 ±2.37 / 69.00 ms │     no change │
│ QQuery 19 │ 35.94 / 36.57 ±0.52 / 37.36 ms │ 35.51 / 35.67 ±0.10 / 35.80 ms │     no change │
│ QQuery 20 │ 34.98 / 35.30 ±0.32 / 35.88 ms │ 35.19 / 35.79 ±0.59 / 36.81 ms │     no change │
│ QQuery 21 │ 61.32 / 63.77 ±2.41 / 68.32 ms │ 45.86 / 47.94 ±1.14 / 49.19 ms │ +1.33x faster │
│ QQuery 22 │ 15.17 / 15.52 ±0.20 / 15.75 ms │ 14.27 / 14.65 ±0.22 / 14.94 ms │ +1.06x faster │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                      ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 831.65ms │
│ Total Time (qizhu_help-22384-rebase)   │ 780.99ms │
│ Average Time (HEAD)                    │  37.80ms │
│ Average Time (qizhu_help-22384-rebase) │  35.50ms │
│ Queries Faster                         │        9 │
│ Queries Slower                         │        2 │
│ Queries with No Change                 │       11 │
│ Queries with Failure                   │        0 │
└────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 986.5 MiB
Avg memory 622.7 MiB
CPU user 23.7s
CPU sys 1.9s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.1 GiB
Avg memory 490.8 MiB
CPU user 22.4s
CPU sys 1.9s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃           qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.51 / 6.04 ±0.89 / 7.80 ms │       5.03 / 5.56 ±0.90 / 7.35 ms │ +1.09x faster │
│ QQuery 2  │        81.99 / 82.54 ±0.39 / 83.08 ms │    44.09 / 44.54 ±0.48 / 45.43 ms │ +1.85x faster │
│ QQuery 3  │        29.97 / 30.24 ±0.28 / 30.74 ms │    36.81 / 37.19 ±0.33 / 37.79 ms │  1.23x slower │
│ QQuery 4  │     497.08 / 504.10 ±4.70 / 511.69 ms │ 388.05 / 393.03 ±3.22 / 396.00 ms │ +1.28x faster │
│ QQuery 5  │        52.38 / 52.81 ±0.31 / 53.33 ms │    51.91 / 52.39 ±0.28 / 52.75 ms │     no change │
│ QQuery 6  │        37.10 / 37.26 ±0.17 / 37.58 ms │    28.50 / 28.67 ±0.16 / 28.95 ms │ +1.30x faster │
│ QQuery 7  │       94.66 / 97.52 ±2.99 / 103.31 ms │    85.68 / 87.63 ±1.99 / 91.24 ms │ +1.11x faster │
│ QQuery 8  │        37.18 / 37.91 ±0.56 / 38.86 ms │    38.68 / 39.14 ±0.35 / 39.60 ms │     no change │
│ QQuery 9  │        53.36 / 55.04 ±2.25 / 59.44 ms │    50.65 / 54.30 ±2.15 / 56.36 ms │     no change │
│ QQuery 10 │        64.28 / 64.58 ±0.24 / 64.94 ms │    66.25 / 67.36 ±1.64 / 70.60 ms │     no change │
│ QQuery 11 │     305.99 / 315.10 ±4.90 / 320.57 ms │ 230.52 / 234.01 ±4.40 / 242.47 ms │ +1.35x faster │
│ QQuery 12 │        29.26 / 29.41 ±0.14 / 29.58 ms │    21.63 / 22.04 ±0.25 / 22.42 ms │ +1.33x faster │
│ QQuery 13 │     120.51 / 121.37 ±0.51 / 122.08 ms │ 125.38 / 125.79 ±0.34 / 126.39 ms │     no change │
│ QQuery 14 │     413.11 / 422.20 ±6.43 / 430.66 ms │ 356.11 / 365.64 ±6.47 / 375.06 ms │ +1.15x faster │
│ QQuery 15 │        58.20 / 60.08 ±0.97 / 60.79 ms │    22.10 / 22.34 ±0.19 / 22.52 ms │ +2.69x faster │
│ QQuery 16 │           6.59 / 6.76 ±0.27 / 7.30 ms │       6.15 / 6.25 ±0.14 / 6.54 ms │ +1.08x faster │
│ QQuery 17 │        80.46 / 80.96 ±0.29 / 81.29 ms │    67.33 / 69.79 ±4.24 / 78.25 ms │ +1.16x faster │
│ QQuery 18 │     124.24 / 126.32 ±3.14 / 132.57 ms │ 109.38 / 111.22 ±1.16 / 112.55 ms │ +1.14x faster │
│ QQuery 19 │        42.16 / 42.48 ±0.21 / 42.73 ms │    43.96 / 45.10 ±1.44 / 47.92 ms │  1.06x slower │
│ QQuery 20 │        36.13 / 36.86 ±0.76 / 38.20 ms │    24.94 / 25.79 ±0.50 / 26.47 ms │ +1.43x faster │
│ QQuery 21 │        18.35 / 19.71 ±1.41 / 21.74 ms │    15.76 / 16.05 ±0.37 / 16.77 ms │ +1.23x faster │
│ QQuery 22 │        62.95 / 63.63 ±0.77 / 65.09 ms │    63.90 / 65.13 ±0.94 / 66.73 ms │     no change │
│ QQuery 23 │     348.05 / 350.32 ±1.34 / 351.98 ms │ 366.60 / 369.58 ±2.41 / 373.29 ms │  1.05x slower │
│ QQuery 24 │     224.79 / 227.60 ±3.69 / 234.71 ms │ 175.65 / 177.10 ±1.44 / 179.72 ms │ +1.29x faster │
│ QQuery 25 │     110.14 / 111.52 ±1.02 / 113.25 ms │    84.72 / 85.16 ±0.28 / 85.54 ms │ +1.31x faster │
│ QQuery 26 │        58.72 / 59.02 ±0.29 / 59.57 ms │    55.68 / 56.16 ±0.39 / 56.75 ms │     no change │
│ QQuery 27 │           6.23 / 6.37 ±0.14 / 6.62 ms │      5.99 / 7.30 ±2.24 / 11.76 ms │  1.15x slower │
│ QQuery 28 │        59.83 / 62.09 ±1.15 / 62.92 ms │    61.06 / 61.71 ±0.60 / 62.75 ms │     no change │
│ QQuery 29 │       97.40 / 99.62 ±2.04 / 102.84 ms │    79.75 / 80.62 ±0.83 / 82.07 ms │ +1.24x faster │
│ QQuery 30 │        32.89 / 34.64 ±2.28 / 39.08 ms │    33.22 / 33.59 ±0.26 / 33.96 ms │     no change │
│ QQuery 31 │     112.03 / 112.93 ±0.57 / 113.59 ms │ 116.42 / 117.21 ±0.71 / 118.06 ms │     no change │
│ QQuery 32 │        20.48 / 20.73 ±0.16 / 20.90 ms │    22.25 / 22.45 ±0.16 / 22.61 ms │  1.08x slower │
│ QQuery 33 │        38.01 / 38.31 ±0.22 / 38.69 ms │    40.77 / 41.10 ±0.26 / 41.54 ms │  1.07x slower │
│ QQuery 34 │         9.96 / 10.25 ±0.16 / 10.43 ms │    10.24 / 10.76 ±0.42 / 11.40 ms │  1.05x slower │
│ QQuery 35 │        73.08 / 74.01 ±0.59 / 74.64 ms │    76.87 / 78.35 ±1.27 / 80.52 ms │  1.06x slower │
│ QQuery 36 │           5.73 / 5.89 ±0.20 / 6.27 ms │       5.44 / 5.59 ±0.24 / 6.08 ms │     no change │
│ QQuery 37 │           6.70 / 6.83 ±0.08 / 6.92 ms │       8.49 / 8.58 ±0.09 / 8.74 ms │  1.26x slower │
│ QQuery 38 │        62.68 / 63.25 ±0.87 / 64.98 ms │    70.84 / 71.50 ±0.55 / 72.21 ms │  1.13x slower │
│ QQuery 39 │        91.08 / 92.59 ±1.63 / 95.61 ms │    83.65 / 87.08 ±3.26 / 92.81 ms │ +1.06x faster │
│ QQuery 40 │        23.89 / 24.17 ±0.37 / 24.89 ms │    21.97 / 22.23 ±0.17 / 22.43 ms │ +1.09x faster │
│ QQuery 41 │        11.54 / 11.91 ±0.22 / 12.23 ms │    12.52 / 12.67 ±0.13 / 12.90 ms │  1.06x slower │
│ QQuery 42 │        23.97 / 24.33 ±0.22 / 24.53 ms │    24.74 / 25.58 ±0.62 / 26.43 ms │  1.05x slower │
│ QQuery 43 │           4.91 / 5.03 ±0.16 / 5.35 ms │       4.66 / 4.78 ±0.17 / 5.11 ms │     no change │
│ QQuery 44 │           9.19 / 9.35 ±0.10 / 9.49 ms │       9.02 / 9.18 ±0.18 / 9.51 ms │     no change │
│ QQuery 45 │        39.04 / 39.69 ±0.45 / 40.38 ms │    24.10 / 24.33 ±0.22 / 24.69 ms │ +1.63x faster │
│ QQuery 46 │        12.06 / 13.02 ±1.09 / 15.04 ms │    12.61 / 13.12 ±0.33 / 13.55 ms │     no change │
│ QQuery 47 │     233.41 / 237.62 ±5.22 / 247.40 ms │ 206.01 / 208.06 ±1.50 / 210.21 ms │ +1.14x faster │
│ QQuery 48 │        97.78 / 98.18 ±0.27 / 98.59 ms │    97.63 / 98.20 ±0.56 / 99.13 ms │     no change │
│ QQuery 49 │        76.92 / 79.88 ±2.64 / 84.42 ms │    72.53 / 73.12 ±0.53 / 73.93 ms │ +1.09x faster │
│ QQuery 50 │        60.08 / 60.76 ±0.81 / 62.34 ms │    59.90 / 60.31 ±0.27 / 60.57 ms │     no change │
│ QQuery 51 │        90.14 / 93.25 ±1.83 / 94.95 ms │   95.10 / 96.77 ±1.85 / 100.24 ms │     no change │
│ QQuery 52 │        24.32 / 24.56 ±0.20 / 24.87 ms │    25.68 / 25.73 ±0.07 / 25.87 ms │     no change │
│ QQuery 53 │        31.26 / 33.86 ±3.46 / 40.36 ms │    32.59 / 32.76 ±0.11 / 32.90 ms │     no change │
│ QQuery 54 │        56.15 / 56.48 ±0.29 / 56.85 ms │    54.32 / 54.72 ±0.34 / 55.25 ms │     no change │
│ QQuery 55 │        23.97 / 24.08 ±0.11 / 24.27 ms │    25.01 / 25.70 ±1.08 / 27.84 ms │  1.07x slower │
│ QQuery 56 │        39.29 / 39.43 ±0.09 / 39.54 ms │    39.85 / 40.71 ±1.34 / 43.38 ms │     no change │
│ QQuery 57 │     178.25 / 180.23 ±2.86 / 185.86 ms │ 148.73 / 149.98 ±1.19 / 151.64 ms │ +1.20x faster │
│ QQuery 58 │     117.53 / 120.05 ±1.98 / 122.52 ms │    59.89 / 61.41 ±1.77 / 64.42 ms │ +1.96x faster │
│ QQuery 59 │     119.46 / 119.98 ±0.47 / 120.76 ms │    66.14 / 66.77 ±0.36 / 67.21 ms │ +1.80x faster │
│ QQuery 60 │        40.39 / 41.44 ±1.37 / 44.10 ms │    40.27 / 40.39 ±0.18 / 40.74 ms │     no change │
│ QQuery 61 │        12.31 / 12.50 ±0.11 / 12.60 ms │    11.43 / 11.59 ±0.21 / 12.00 ms │ +1.08x faster │
│ QQuery 62 │        47.84 / 48.74 ±1.25 / 51.22 ms │    33.29 / 34.36 ±1.75 / 37.83 ms │ +1.42x faster │
│ QQuery 63 │        30.18 / 30.48 ±0.36 / 31.16 ms │    32.84 / 33.87 ±1.47 / 36.74 ms │  1.11x slower │
│ QQuery 64 │     412.44 / 417.18 ±3.24 / 422.40 ms │ 390.09 / 393.67 ±1.84 / 395.04 ms │ +1.06x faster │
│ QQuery 65 │     124.56 / 130.38 ±4.16 / 137.13 ms │    71.51 / 71.98 ±0.39 / 72.65 ms │ +1.81x faster │
│ QQuery 66 │        80.42 / 81.23 ±0.73 / 82.51 ms │    69.47 / 69.76 ±0.26 / 70.20 ms │ +1.16x faster │
│ QQuery 67 │     245.30 / 251.75 ±4.76 / 259.91 ms │ 251.37 / 256.21 ±4.56 / 264.52 ms │     no change │
│ QQuery 68 │        11.90 / 12.14 ±0.21 / 12.51 ms │    12.29 / 12.43 ±0.18 / 12.77 ms │     no change │
│ QQuery 69 │        58.53 / 61.22 ±3.68 / 68.47 ms │    61.19 / 61.60 ±0.25 / 61.91 ms │     no change │
│ QQuery 70 │     107.84 / 110.96 ±2.29 / 114.80 ms │ 104.82 / 106.43 ±1.07 / 108.00 ms │     no change │
│ QQuery 71 │        35.56 / 36.19 ±0.53 / 37.15 ms │    36.83 / 37.92 ±1.25 / 40.36 ms │     no change │
│ QQuery 72 │ 2115.54 / 2194.58 ±43.68 / 2236.95 ms │ 349.18 / 368.25 ±9.94 / 377.55 ms │ +5.96x faster │
│ QQuery 73 │          9.62 / 9.88 ±0.18 / 10.18 ms │    10.03 / 10.45 ±0.31 / 10.75 ms │  1.06x slower │
│ QQuery 74 │     175.02 / 178.03 ±2.96 / 183.57 ms │ 140.09 / 140.76 ±0.96 / 142.63 ms │ +1.26x faster │
│ QQuery 75 │     149.88 / 152.27 ±3.27 / 158.40 ms │ 131.99 / 136.47 ±6.97 / 150.36 ms │ +1.12x faster │
│ QQuery 76 │        35.97 / 36.31 ±0.20 / 36.58 ms │    40.27 / 41.01 ±0.50 / 41.81 ms │  1.13x slower │
│ QQuery 77 │        62.18 / 65.38 ±3.20 / 69.28 ms │    63.86 / 65.80 ±3.07 / 71.91 ms │     no change │
│ QQuery 78 │     198.31 / 203.65 ±4.83 / 210.05 ms │ 166.53 / 169.69 ±4.84 / 179.33 ms │ +1.20x faster │
│ QQuery 79 │        68.20 / 68.69 ±0.43 / 69.37 ms │    76.69 / 77.57 ±0.68 / 78.42 ms │  1.13x slower │
│ QQuery 80 │      99.43 / 100.62 ±0.70 / 101.34 ms │    85.62 / 86.15 ±0.64 / 87.26 ms │ +1.17x faster │
│ QQuery 81 │        27.22 / 31.15 ±6.77 / 44.64 ms │    26.31 / 26.66 ±0.35 / 27.14 ms │ +1.17x faster │
│ QQuery 82 │        17.03 / 17.46 ±0.38 / 18.04 ms │    17.83 / 18.18 ±0.21 / 18.42 ms │     no change │
│ QQuery 83 │        40.75 / 41.24 ±0.43 / 42.00 ms │    34.32 / 37.22 ±3.17 / 42.60 ms │ +1.11x faster │
│ QQuery 84 │        30.94 / 31.18 ±0.30 / 31.68 ms │    32.19 / 32.59 ±0.52 / 33.58 ms │     no change │
│ QQuery 85 │     107.41 / 110.95 ±3.04 / 115.66 ms │ 108.87 / 109.97 ±0.63 / 110.57 ms │     no change │
│ QQuery 86 │        25.85 / 26.38 ±0.43 / 26.89 ms │    27.41 / 27.74 ±0.43 / 28.56 ms │  1.05x slower │
│ QQuery 87 │        62.63 / 64.20 ±1.31 / 66.29 ms │    71.94 / 75.08 ±4.00 / 82.74 ms │  1.17x slower │
│ QQuery 88 │        64.33 / 64.62 ±0.23 / 64.93 ms │    57.95 / 58.21 ±0.14 / 58.36 ms │ +1.11x faster │
│ QQuery 89 │        36.67 / 39.11 ±3.06 / 44.20 ms │    36.08 / 36.21 ±0.12 / 36.41 ms │ +1.08x faster │
│ QQuery 90 │        17.45 / 17.64 ±0.14 / 17.82 ms │    14.98 / 15.25 ±0.26 / 15.63 ms │ +1.16x faster │
│ QQuery 91 │        46.90 / 47.39 ±0.43 / 48.08 ms │    46.15 / 47.53 ±1.33 / 49.73 ms │     no change │
│ QQuery 92 │        30.04 / 30.50 ±0.30 / 30.82 ms │    31.78 / 32.14 ±0.32 / 32.61 ms │  1.05x slower │
│ QQuery 93 │        50.64 / 51.29 ±0.69 / 52.63 ms │    49.89 / 50.97 ±0.87 / 52.29 ms │     no change │
│ QQuery 94 │        38.61 / 40.40 ±2.39 / 45.12 ms │    40.53 / 41.24 ±0.53 / 42.09 ms │     no change │
│ QQuery 95 │        82.66 / 84.08 ±1.94 / 87.83 ms │    85.64 / 86.99 ±2.08 / 91.09 ms │     no change │
│ QQuery 96 │        24.87 / 25.02 ±0.14 / 25.28 ms │    21.53 / 21.91 ±0.22 / 22.13 ms │ +1.14x faster │
│ QQuery 97 │        47.30 / 48.32 ±0.84 / 49.83 ms │    48.39 / 49.36 ±0.67 / 50.46 ms │     no change │
│ QQuery 98 │        42.88 / 44.17 ±1.30 / 46.27 ms │    30.90 / 31.26 ±0.36 / 31.92 ms │ +1.41x faster │
│ QQuery 99 │        72.12 / 73.10 ±1.07 / 75.11 ms │    49.04 / 49.24 ±0.11 / 49.34 ms │ +1.48x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 10096.56ms │
│ Total Time (qizhu_help-22384-rebase)   │  7413.07ms │
│ Average Time (HEAD)                    │   101.99ms │
│ Average Time (qizhu_help-22384-rebase) │    74.88ms │
│ Queries Faster                         │         43 │
│ Queries Slower                         │         20 │
│ Queries with No Change                 │         36 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.0 GiB
Avg memory 1.4 GiB
CPU user 226.1s
CPU sys 5.7s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 40.0s
Peak memory 2.0 GiB
Avg memory 1.3 GiB
CPU user 112.5s
CPU sys 5.0s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 qizhu_help-22384-rebase
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃               qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.27 / 4.23 ±5.77 / 15.77 ms │          1.32 / 4.23 ±5.69 / 15.60 ms │     no change │
│ QQuery 1  │        13.24 / 13.88 ±0.32 / 14.12 ms │        12.88 / 13.53 ±0.39 / 13.95 ms │     no change │
│ QQuery 2  │        37.34 / 38.23 ±0.75 / 39.19 ms │        37.08 / 37.45 ±0.32 / 38.00 ms │     no change │
│ QQuery 3  │        31.49 / 32.79 ±0.73 / 33.48 ms │        31.90 / 32.39 ±0.43 / 33.13 ms │     no change │
│ QQuery 4  │     244.77 / 248.53 ±3.18 / 253.43 ms │     245.65 / 248.22 ±1.82 / 251.07 ms │     no change │
│ QQuery 5  │     289.63 / 292.96 ±3.91 / 298.88 ms │     284.99 / 292.40 ±4.06 / 296.91 ms │     no change │
│ QQuery 6  │          1.36 / 3.88 ±4.62 / 13.12 ms │           1.32 / 1.49 ±0.23 / 1.94 ms │ +2.61x faster │
│ QQuery 7  │        14.75 / 14.90 ±0.13 / 15.05 ms │        15.21 / 15.52 ±0.37 / 16.22 ms │     no change │
│ QQuery 8  │     357.06 / 359.13 ±1.21 / 360.33 ms │     354.17 / 358.79 ±5.15 / 368.35 ms │     no change │
│ QQuery 9  │    494.19 / 514.90 ±15.05 / 537.19 ms │    494.55 / 515.61 ±16.62 / 536.35 ms │     no change │
│ QQuery 10 │        72.92 / 73.93 ±0.71 / 74.92 ms │        74.73 / 75.55 ±0.77 / 76.96 ms │     no change │
│ QQuery 11 │        85.80 / 86.45 ±0.48 / 87.11 ms │        86.18 / 87.16 ±0.56 / 87.83 ms │     no change │
│ QQuery 12 │     286.02 / 294.94 ±7.10 / 306.99 ms │     276.91 / 285.58 ±7.00 / 297.16 ms │     no change │
│ QQuery 13 │    385.30 / 398.80 ±13.77 / 424.39 ms │     428.28 / 441.46 ±8.59 / 454.00 ms │  1.11x slower │
│ QQuery 14 │     299.91 / 306.11 ±4.66 / 313.09 ms │     294.06 / 301.15 ±8.75 / 316.79 ms │     no change │
│ QQuery 15 │     292.50 / 301.60 ±8.59 / 314.88 ms │     297.51 / 304.68 ±6.35 / 315.40 ms │     no change │
│ QQuery 16 │     643.60 / 650.37 ±4.68 / 657.64 ms │     655.88 / 661.88 ±8.72 / 678.94 ms │     no change │
│ QQuery 17 │    652.88 / 664.52 ±14.88 / 693.24 ms │     657.18 / 666.92 ±8.58 / 678.04 ms │     no change │
│ QQuery 18 │ 1322.86 / 1344.36 ±17.14 / 1367.25 ms │ 1335.26 / 1368.54 ±17.68 / 1383.99 ms │     no change │
│ QQuery 19 │       29.60 / 37.69 ±10.17 / 55.37 ms │       28.82 / 54.69 ±21.38 / 78.07 ms │  1.45x slower │
│ QQuery 20 │     520.77 / 525.80 ±4.82 / 533.62 ms │     527.63 / 530.20 ±2.61 / 534.03 ms │     no change │
│ QQuery 21 │     522.76 / 524.52 ±1.18 / 526.38 ms │     525.76 / 527.77 ±2.82 / 533.31 ms │     no change │
│ QQuery 22 │  1002.98 / 1012.34 ±7.96 / 1024.83 ms │  1034.57 / 1041.39 ±5.53 / 1049.87 ms │     no change │
│ QQuery 23 │ 3152.58 / 3181.33 ±28.83 / 3231.12 ms │    669.47 / 712.10 ±41.41 / 786.06 ms │ +4.47x faster │
│ QQuery 24 │        41.93 / 42.89 ±1.24 / 45.26 ms │        39.27 / 39.94 ±0.63 / 40.86 ms │ +1.07x faster │
│ QQuery 25 │     113.15 / 116.03 ±1.97 / 118.00 ms │     109.13 / 115.05 ±9.53 / 134.03 ms │     no change │
│ QQuery 26 │        42.65 / 44.03 ±1.83 / 47.64 ms │        39.57 / 40.48 ±0.83 / 41.85 ms │ +1.09x faster │
│ QQuery 27 │     522.67 / 525.65 ±2.65 / 529.36 ms │    512.32 / 526.53 ±13.89 / 545.19 ms │     no change │
│ QQuery 28 │ 2945.83 / 2992.21 ±27.66 / 3031.42 ms │ 2974.93 / 3000.44 ±26.18 / 3047.95 ms │     no change │
│ QQuery 29 │       42.23 / 55.63 ±16.68 / 82.59 ms │       41.95 / 52.96 ±14.25 / 77.19 ms │     no change │
│ QQuery 30 │     327.82 / 330.30 ±2.00 / 333.07 ms │     324.32 / 334.22 ±9.52 / 352.39 ms │     no change │
│ QQuery 31 │     297.28 / 309.88 ±6.85 / 316.50 ms │     329.73 / 339.27 ±7.38 / 349.48 ms │  1.09x slower │
│ QQuery 32 │ 1005.12 / 1022.35 ±14.99 / 1050.24 ms │ 1005.07 / 1039.56 ±18.11 / 1056.80 ms │     no change │
│ QQuery 33 │ 1573.05 / 1607.93 ±18.82 / 1625.09 ms │ 1499.91 / 1543.59 ±24.55 / 1575.52 ms │     no change │
│ QQuery 34 │  1623.11 / 1637.57 ±9.26 / 1647.63 ms │ 1531.67 / 1581.23 ±37.12 / 1631.41 ms │     no change │
│ QQuery 35 │    322.45 / 349.13 ±21.95 / 381.90 ms │    299.68 / 355.26 ±82.03 / 514.84 ms │     no change │
│ QQuery 36 │        71.24 / 78.50 ±6.19 / 89.45 ms │        67.24 / 71.74 ±3.84 / 77.13 ms │ +1.09x faster │
│ QQuery 37 │        37.42 / 41.00 ±3.47 / 45.99 ms │        38.14 / 43.55 ±7.81 / 58.47 ms │  1.06x slower │
│ QQuery 38 │        44.90 / 48.53 ±6.11 / 60.67 ms │        45.39 / 47.73 ±1.95 / 49.97 ms │     no change │
│ QQuery 39 │     157.90 / 167.02 ±6.37 / 174.30 ms │     138.22 / 150.16 ±9.82 / 162.66 ms │ +1.11x faster │
│ QQuery 40 │        15.05 / 15.53 ±0.48 / 16.43 ms │        15.23 / 16.09 ±0.89 / 17.77 ms │     no change │
│ QQuery 41 │        14.69 / 17.54 ±5.39 / 28.32 ms │        14.39 / 15.32 ±1.38 / 18.07 ms │ +1.14x faster │
│ QQuery 42 │        14.15 / 14.29 ±0.13 / 14.50 ms │        14.48 / 18.82 ±5.83 / 29.28 ms │  1.32x slower │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 20342.20ms │
│ Total Time (qizhu_help-22384-rebase)   │ 17910.61ms │
│ Average Time (HEAD)                    │   473.07ms │
│ Average Time (qizhu_help-22384-rebase) │   416.53ms │
│ Queries Faster                         │          7 │
│ Queries Slower                         │          5 │
│ Queries with No Change                 │         31 │
│ Queries with Failure                   │          0 │
└────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 105.0s
Peak memory 10.4 GiB
Avg memory 4.2 GiB
CPU user 1040.6s
CPU sys 75.8s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 11.6 GiB
Avg memory 4.8 GiB
CPU user 898.2s
CPU sys 62.4s
Peak spill 0 B

File an issue against this benchmark runner

@zhuqi-lucas zhuqi-lucas changed the title WIP: rebase #22384 + tactical split-membership fix for HashJoin dynamic filter perf(hash-join): union-bounds Partitioned dynamic filter (completes #22384, TPC-DS -27%) Jul 20, 2026
adriangb and others added 6 commits July 20, 2026 15:27
…d conjuncts post-scan

Rebased onto main. The original commit 1 of this PR ("extract
DecoderProjection from build_stream") landed independently on main as
current `decoder_projection` / single-decoder + `rg_plan` model.

Two changes, both applied inside the parquet scan so the parent
`FilterExec` can be removed unconditionally for pushable filters:

1. Never drop conjuncts the `RowFilter` cannot place.
   `build_row_filter` previously `.flatten()`-ed away conjuncts that
   `FilterCandidateBuilder::build` rejected (whole-struct references,
   per-file physical-schema mismatches) and swallowed whole-build
   errors. By the time it runs, `try_pushdown_filters` has already
   removed the `FilterExec`, so those conjuncts were applied nowhere —
   wrong results. `build_row_filter` now returns
   `(Option<RowFilter>, Vec<rejected>)`, `RowFilterGenerator` exposes
   `rejected_conjuncts()`, and a whole-file build error routes every
   conjunct to the rejected list rather than relaxing the predicate.

2. Always accept pushable filters and run the remainder post-scan.
   `try_pushdown_filters` reports each pushable filter as accepted so the
   `FilterExec` is always removed; the scan owns the predicate. The
   opener routes conjuncts to two places, applying every one:
     - pushdown_filters=true  -> row-filterable conjuncts via the parquet
       `RowFilter`; rejected conjuncts via the in-scan post-scan filter.
     - pushdown_filters=false -> the whole predicate runs as a post-scan
       filter on decoded batches (behaviorally identical to `FilterExec`).

Implementation:
  - `DecoderProjection` (main's `decoder_projection` module) grows a
    `post_scan_conjuncts` parameter: it widens the decoder mask over
    (user projection ∪ post-scan filter columns), rebases the conjuncts
    onto the stream schema, and returns a `PostScanFilter` applied to
    every decoded batch with SQL `WHERE` semantics. Virtual-column
    conjuncts are stripped from the read-plan mask (they aren't file
    columns) but kept in the post-scan predicate, which sees the
    reader-appended virtual columns.
  - `PushDecoderStreamState` applies the post-scan filter in the decoded-
    batch arm, skips empty batches, and re-introduces a stream-level
    `remaining_limit` (main enforces LIMIT decoder-locally, which is
    unsafe once a post-scan filter can reject rows). The opener routes the
    limit to `remaining_limit` iff a post-scan filter is present.
  - New `post_scan_rows_pruned` / `post_scan_rows_matched` counters and
    `post_scan_filter_eval_time` on `ParquetFileMetrics`.

Tests:
  - `build_row_filter_surfaces_rejected_struct_conjunct` (row_filter.rs)
    asserts the rejected struct conjunct is returned, not dropped.
  - `rejected_struct_conjunct_runs_post_scan_not_dropped` (opener) is
    end-to-end: `s IS NOT NULL` over a struct column with pushdown on
    returns 2 (was 3 before the fix).
  - Parquet `.slt` files regenerated: `FilterExec` above `DataSourceExec`
    gone, predicate on the scan, `post_scan_rows_*` metrics on EXPLAIN
    ANALYZE. Opener / core insta / page_pruning assertions updated for the
    now-applied predicate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UYxLsgHvtixT2Y9JYHaEsU
Tactical fix on top of apache#22384 to address the benchmark regressions that
paper reported (TPCH SF1: +27% total, Q17 2.09x slower, Q3/5/7/8/9/12/
13/14/18/20 all 1.24-1.67x slower). Approach was suggested by @adriangb
in the apache#23420 discussion: "splitting out the min/max range dynamic
filters that HashJoinExec pushes down from the hash table ones and then
we could turn off the hash table ones by default".

Why: HashJoin's build-side dynamic filter today publishes a combined
`bounds AND membership` expression to the probe scan.

- Bounds (`col >= min AND col <= max`) is 2 comparisons per row (~2ns)
  and drives the RG-level statistics pruning that is by far the largest
  contribution.
- Membership (`InListExpr` over the build keys, or a hash-table lookup
  for large builds) is a per-row hash-set / hash-table probe (~50-100ns).

apache#22384's contract change (`try_pushdown_filters` always accepts pushable
filters, PostScanFilter picks up whatever the RowFilter cannot place)
means the combined expression now runs on every scanned batch even with
`pushdown_filters = false`, where previously it was silently propagated
through source.predicate but never row-evaluated. On multi-join queries
with high match rate, the membership check pays the hash cost twice
(once in the scan, once inside HashJoin) with no selectivity win —
that's exactly the "not earning their keep" case @adriangb described.

What: a new config knob
`datafusion.optimizer.enable_hash_join_dynamic_membership_filter` (default
`false`) gates the membership creation. When off, `SharedBuildAccumulator`
skips `create_membership_predicate` in both the CollectLeft and
Partitioned finalize paths and publishes only the bounds portion. RG
pruning is unaffected. Highly-selective joins with big build sides that
used to see 2-3x wins from membership pruning can restore the historical
behavior by flipping the knob to `true`.

Tests: two new unit tests in `shared_bounds.rs`:
- `collect_left_with_gate_off_publishes_bounds_only`
  drives an accumulator with the gate off, asserts the published
  expression contains no `InListExpr` and its top op is `AND` (bounds).
- `collect_left_with_gate_on_publishes_bounds_and_membership`
  the inverse, guards against accidentally regressing the wiring.

All 398 pre-existing `joins::hash_join` tests still pass. All 1559
`datafusion-physical-plan` lib tests pass. Full `information_schema.slt`
passes with the new option listed.

Draft while we run benchmarks to quantify how much of the apache#22384
regression this closes. Companion to apache#22384 (adriangb's foundation),
follow-up to apache#23532 (DynamicFilter cache — Layer 1 of the regression fix).
…filter

The pushdown=false path in the parquet opener split the whole predicate
into 'post_scan_conjuncts' — a per-batch FilterExec-equivalent — which
included any dynamic filter conjuncts (HashJoin bounds, TopK threshold,
aggregate dynamic filter).

For join-heavy TPC-H / TPC-DS this dominates cost: HashJoin's Partitioned-
mode dynamic filter is a 'CASE hash(col) % N WHEN pid THEN bounds ELSE
lit(false) END' — per-row hash + modulo + CASE branch — and it prunes
almost nothing on high-match-rate joins where the downstream hash lookup
would eliminate the same rows anyway. Local TPC-H SF1 Q9 profile showed
1.1% self-time in 'expressions::case::PartialResultIndex::merge_n' and
1.3% in 'arrow_select::filter::filter_native' on the PR, both at 0% on
main — driving Q9 from 40ms → 80ms (2.09x on CI, 1.79x locally).

This commit filters DynamicFilterPhysicalExpr-containing conjuncts out
of 'post_scan_conjuncts'. Effects:

  - RowGroupPruner (added by apache#22450) still sees the full predicate via
    prepared.predicate, so RG-level dynamic pruning continues to fire on
    bounds/threshold updates.
  - pushdown_filters=true path unchanged — dynamic filters still go
    through the arrow-rs RowFilter.
  - Downstream operator does the exact equivalent: HashJoin's hash lookup
    filters rows the bounds would have filtered; TopK's sort heap filters
    rows the threshold would have filtered. No wrong results.

Local TPC-H SF1 (release-nonlto, 3 iters):
  - baseline (HEAD~2, pre-apache#22384) avg: 27.65 ms
  - PR + this fix avg: 26.24 ms (net 5% ahead of baseline)
  - Q9 individually: 34.54 → 34.33 ms (matches baseline, was 80.74 before)

Also regenerates push_down_filter_parquet.slt for the membership-off
default (from the earlier 'split membership from bounds' commit).
…r (root fix)

Reverts the tactical fix from the previous commit and cures the same
regression at its source. The prior commit skipped
DynamicFilterPhysicalExpr-containing conjuncts from PostScanFilter for
pushdown_filters=false; that recovered TPC-H but killed TPC-DS Q72
(4.91x faster -> no change) by removing row-level pruning for
CollectLeft's cheap bounds too.

Root cause: on PartitionMode::Partitioned, SharedBuildAccumulator emitted
a per-partition 'CASE hash(col) % N WHEN pid THEN bounds ELSE
lit(false) END' as the dynamic filter. On the probe scan this evaluates
hash + modulo + CASE branch per row -- the profile hotspot
(expressions::case::PartialResultIndex::merge_n at 1.11% self-time on
TPC-H Q9 vs 0% on main).

The routing existed to keep the per-partition bounds exact -- a probe
row X with hash(X) % N == P would only be checked against partition P's
bounds. That's exact but redundant with the downstream hash lookup
(which is also per-partition and exact). The lookup filters exactly
what CASE was filtering, at a lower per-row cost, so the CASE routing
buys nothing on the probe scan.

This commit, when the membership gate is off (the production default
after the split-membership commit), emits the union of per-partition
bounds instead:

  col >= min(min_0, ..., min_{N-1}) AND col <= max(max_0, ..., max_{N-1})

Same shape as PartitionMode::CollectLeft. A probe row can pass the
union and still miss its build partition, but the exact hash lookup
downstream drops it -- no wrong results. Empty partitions contribute
nothing to the union; if every partition is empty the filter is
lit(false); a canceled partition falls back to lit(true) (permissive,
we lack the info to safely narrow). Membership-opt-in retains the
historical CASE hash-routed form so InListExpr / HashTableLookupExpr
can be applied to the correct partition's build values.

With the expensive per-row form gone, the pushdown_filters=false
PostScanFilter is cheap again, so opener/mod.rs no longer needs to
filter dynamic conjuncts out of post_scan_conjuncts -- reverted.

Local TPC-H SF1 (release-nonlto, 5 iters, warm):
  - baseline (HEAD~2, pre-apache#22384) Q9: 40 ms (avg 46)
  - PR before any fix Q9: 80 ms (avg 82) -- 2.09x regression
  - PR + this fix Q9: 35 ms (avg 52) -- back at baseline, no CASE hotspot
  - Full TPC-H avg: baseline 27.65, this fix 26.99 ms (net -2%)

Snapshot in filter_pushdown.rs regenerated to reflect the union form
(the old snapshot's 'CASE hash_repartition % 12 WHEN 5 ...' is gone;
new form is 'a@0 >= aa AND a@0 <= ab AND b@1 >= ba AND b@1 <= bb').
- filter_pushdown.rs: enable enable_hash_join_dynamic_membership_filter in
  test_hashjoin_hash_table_pushdown_{collect_left,partitioned} (they
  specifically exercise HashTableLookupExpr; membership default is now false).
- filter_pushdown.rs: refresh test_hashjoin_dynamic_filter_pushdown_collect_left
  and the force_hash_collisions branch snapshots (bounds only, no IN (SET)
  since membership is off by default).
- clickbench.slt, preserve_file_partitioning.slt, projection_pushdown.slt,
  repartition_subset_satisfaction.slt: regenerated for post-apache#22384 plan
  display + membership-off default.
- configs.md: prettier reformat (trailing whitespace).
Previously the union-bounds fast path fired whenever
enable_hash_join_dynamic_membership_filter=false (the production
default). But that also relaxes the filter for pushdown_filters=true,
where arrow-rs RowFilter amortizes the per-row CASE hash-routed cost
via lazy decode of the remaining columns for filtered rows — the
tighter per-partition selectivity is worth paying for there.

This commit couples the fast path to the runtime pushdown_filters
setting: the SharedBuildAccumulator now mirrors
execution.parquet.pushdown_filters and picks the shape based on
where the filter will run:

  * pushdown_filters=false → probe scan applies the filter post-decode
    (PostScanFilter, Layer 3). Per-row cost dominates because there is
    no lazy decode to amortize it. Emit the cheap union-of-bounds
    predicate and skip membership entirely.

  * pushdown_filters=true  → probe scan applies the filter via arrow-rs
    RowFilter (Layer 2), which skips the decode of the remaining
    columns for rows that fail the predicate. Emit the historical
    per-partition CASE hash-routed form; respect the user's opt-in via
    enable_hash_join_dynamic_membership_filter for membership.

Effect matrix:

  pushdown_filters | enable_membership_filter | Partitioned filter shape
  -----------------+--------------------------+--------------------------------
  false (default)  | any                      | union bounds (fast path)
  true             | false                    | CASE hash-routed, bounds only
  true             | true                     | CASE hash-routed + membership

Tests:
- New helper make_partitioned_accumulator_pushdown_on_and_membership_{on,off}.
- New unit test partitioned_pushdown_on_membership_off_still_emits_case_no_membership
  — pushdown=true must keep CASE even with membership off.
- New unit test collect_left_pushdown_off_skips_membership_even_with_gate_on
  — pushdown=false must skip membership even with opt-in.
- Existing test fixtures updated to include pushdown_filters explicitly
  (existing coverage kept — bounds-only fixtures set pushdown_filters=false
  to match production default; membership-on fixtures set pushdown_filters=true).

Also refreshes projection_pushdown.slt for an unrelated main-branch
plan-shape change (apache#23459 CSE tweak) that surfaced post-rebase.
@zhuqi-lucas
zhuqi-lucas force-pushed the qizhu/help-22384-rebase branch from 5950f2c to bf00cbf Compare July 20, 2026 09:49
@zhuqi-lucas zhuqi-lucas changed the title perf(hash-join): union-bounds Partitioned dynamic filter (completes #22384, TPC-DS -27%) perf(hash-join): pushdown-aware dynamic filter shape (completes #22384, TPC-DS -27%) Jul 20, 2026
@zhuqi-lucas zhuqi-lucas changed the title perf(hash-join): pushdown-aware dynamic filter shape (completes #22384, TPC-DS -27%) perf(hash-join): pushdown-aware dynamic filter shape Jul 20, 2026
@zhuqi-lucas zhuqi-lucas changed the title perf(hash-join): pushdown-aware dynamic filter shape feat: support pushdown-aware dynamic filter Jul 20, 2026
The helper make_partitioned_accumulator_pushdown_on_and_membership_on
was added in bf00cbf but never called — clippy caught it as dead
code and failed CI. Add the missing test that guards the symmetric
invariant: pushdown_filters=true + membership=on must emit the full
historical CASE-hash-routed form with InListExpr inside each WHEN
branch (arrow-rs RowFilter lazy-decode scenario).
@codecov-commenter

codecov-commenter commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.87924% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.72%. Comparing base (4184b07) to head (61a9ebb).

Files with missing lines Patch % Lines
datafusion/datasource-parquet/src/push_decoder.rs 70.83% 6 Missing and 1 partial ⚠️
...physical-plan/src/joins/hash_join/shared_bounds.rs 98.39% 4 Missing and 2 partials ⚠️
...usion/datasource-parquet/src/decoder_projection.rs 95.86% 1 Missing and 4 partials ⚠️
datafusion/datasource-parquet/src/row_filter.rs 94.11% 3 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #23701      +/-   ##
==========================================
+ Coverage   80.70%   80.72%   +0.02%     
==========================================
  Files        1089     1089              
  Lines      368038   368664     +626     
  Branches   368038   368664     +626     
==========================================
+ Hits       297031   297622     +591     
- Misses      53308    53335      +27     
- Partials    17699    17707       +8     

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

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

@adriangb

Copy link
Copy Markdown
Contributor

run benchmark hj

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5023278971-1177-5f75r 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (f91ee0a) to 3b1ce16 (merge-base) diff using: hj
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 qizhu_help-22384-rebase
--------------------
Benchmark hj.json
--------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query                                                               ┃                               HEAD ┃            qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1_density=1_prob_hit=1_25*1.5M                               │        2.05 / 2.37 ±0.47 / 3.31 ms │        2.28 / 2.65 ±0.38 / 3.20 ms │  1.12x slower │
│ QQuery 2_density=0.026_prob_hit=1_25*1.5M                           │        4.17 / 4.32 ±0.19 / 4.70 ms │        4.46 / 4.55 ±0.12 / 4.78 ms │  1.05x slower │
│ QQuery 3_density=1_prob_hit=1_100K*60M                              │     85.12 / 86.95 ±1.42 / 89.05 ms │     89.75 / 90.48 ±0.59 / 91.23 ms │     no change │
│ QQuery 4_density=1_prob_hit=0.1_100K*60M                            │  195.47 / 199.45 ±3.80 / 205.34 ms │  193.88 / 196.35 ±2.26 / 200.42 ms │     no change │
│ QQuery 5_density=0.75_prob_hit=1_100K*60M                           │ 708.59 / 723.16 ±12.08 / 737.35 ms │ 701.78 / 721.07 ±13.69 / 740.04 ms │     no change │
│ QQuery 6_density=0.75_prob_hit=0.1_100K*60M                         │ 278.60 / 305.07 ±26.86 / 342.72 ms │ 276.39 / 289.31 ±15.95 / 318.75 ms │ +1.05x faster │
│ QQuery 7_density=0.5_prob_hit=1_100K*60M                            │ 854.92 / 878.03 ±26.82 / 929.46 ms │ 690.25 / 709.54 ±16.08 / 739.26 ms │ +1.24x faster │
│ QQuery 8_density=0.5_prob_hit=0.1_100K*60M                          │  273.85 / 280.62 ±6.01 / 291.20 ms │ 253.19 / 272.70 ±15.72 / 295.18 ms │     no change │
│ QQuery 9_density=0.2_prob_hit=1_100K*60M                            │ 779.58 / 863.34 ±43.61 / 904.35 ms │ 728.75 / 794.98 ±47.20 / 857.73 ms │ +1.09x faster │
│ QQuery 10_density=0.2_prob_hit=0.1_100K*60M                         │ 250.70 / 266.21 ±15.79 / 291.76 ms │ 251.56 / 266.68 ±19.96 / 303.09 ms │     no change │
│ QQuery 11_density=0.1_prob_hit=1_100K*60M                           │ 736.48 / 785.19 ±40.46 / 841.92 ms │  713.84 / 723.59 ±8.27 / 738.51 ms │ +1.09x faster │
│ QQuery 12_density=0.1_prob_hit=0.1_100K*60M                         │ 283.04 / 300.61 ±16.67 / 323.53 ms │ 250.72 / 266.16 ±11.18 / 278.53 ms │ +1.13x faster │
│ QQuery 13_density=0.01_prob_hit=1_100K*60M                          │ 725.32 / 801.91 ±61.86 / 889.98 ms │ 714.10 / 730.91 ±15.03 / 758.37 ms │ +1.10x faster │
│ QQuery 14_density=0.01_prob_hit=0.1_100K*60M                        │ 282.99 / 299.09 ±15.67 / 326.55 ms │ 281.87 / 318.24 ±33.22 / 370.68 ms │  1.06x slower │
│ QQuery 15_density=0.2_prob_hit=0.1_100K_(20%_dups)*60M              │ 255.45 / 274.01 ±33.80 / 341.51 ms │ 275.17 / 309.55 ±43.34 / 394.87 ms │  1.13x slower │
│ QQuery 16_density=1_prob_hit=1_25*1.5M_RightSemi                    │        2.37 / 2.52 ±0.10 / 2.68 ms │        2.79 / 2.93 ±0.12 / 3.06 ms │  1.16x slower │
│ QQuery 17_density=1_prob_hit=1_100K*60M_RightSemi                   │  90.50 / 101.31 ±19.33 / 139.91 ms │ 100.66 / 111.17 ±11.60 / 130.38 ms │  1.10x slower │
│ QQuery 18_density=1_prob_hit=0.1_100K*60M_RightSemi                 │ 103.27 / 109.32 ±11.44 / 132.20 ms │ 139.24 / 147.40 ±13.93 / 175.21 ms │  1.35x slower │
│ QQuery 19_density=1_prob_hit=1_25*1.5M_RightAnti                    │        1.92 / 2.00 ±0.05 / 2.07 ms │        2.05 / 2.10 ±0.05 / 2.20 ms │     no change │
│ QQuery 20_density=1_prob_hit=1_100K*60M_RightAnti                   │     80.58 / 81.06 ±0.59 / 82.19 ms │     79.83 / 80.58 ±0.49 / 81.25 ms │     no change │
│ QQuery 21_density=1_prob_hit=0.1_100K*60M_RightAnti                 │  116.60 / 117.36 ±0.54 / 118.14 ms │  113.96 / 115.61 ±1.46 / 118.35 ms │     no change │
│ QQuery 22_density=1_prob_hit=0.01_100K_(fanout_100)*60M_RightSemi   │     92.49 / 94.37 ±1.48 / 96.23 ms │   99.39 / 100.52 ±1.07 / 101.90 ms │  1.07x slower │
│ QQuery 23_density=1_prob_hit=1_32K_(fanout~78)*2.3M_long_keys_count │  165.18 / 166.87 ±2.11 / 171.03 ms │ 161.51 / 198.76 ±19.10 / 214.64 ms │  1.19x slower │
└─────────────────────────────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 6745.12ms │
│ Total Time (qizhu_help-22384-rebase)   │ 6455.80ms │
│ Average Time (HEAD)                    │  293.27ms │
│ Average Time (qizhu_help-22384-rebase) │  280.69ms │
│ Queries Faster                         │         6 │
│ Queries Slower                         │         9 │
│ Queries with No Change                 │         8 │
│ Queries with Failure                   │         0 │
└────────────────────────────────────────┴───────────┘

Resource Usage

hj — base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 2.6 GiB
Avg memory 1.4 GiB
CPU user 346.4s
CPU sys 11.7s
Peak spill 0 B

hj — branch

Metric Value
Wall time 35.0s
Peak memory 2.0 GiB
Avg memory 1.3 GiB
CPU user 328.0s
CPU sys 11.1s
Peak spill 0 B

File an issue against this benchmark runner

@zhuqi-lucas

zhuqi-lucas commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark hj

Comparing HEAD and qizhu_help-22384-rebase
--------------------
Benchmark hj.json
--------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ QueryHEAD ┃            qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1_density=1_prob_hit=1_25*1.5M2.05 / 2.37 ±0.47 / 3.31 ms │        2.28 / 2.65 ±0.38 / 3.20 ms │  1.12x slower │
│ QQuery 2_density=0.026_prob_hit=1_25*1.5M4.17 / 4.32 ±0.19 / 4.70 ms │        4.46 / 4.55 ±0.12 / 4.78 ms │  1.05x slower │
│ QQuery 3_density=1_prob_hit=1_100K*60M85.12 / 86.95 ±1.42 / 89.05 ms │     89.75 / 90.48 ±0.59 / 91.23 ms │     no change │
│ QQuery 4_density=1_prob_hit=0.1_100K*60M195.47 / 199.45 ±3.80 / 205.34 ms │  193.88 / 196.35 ±2.26 / 200.42 ms │     no change │
│ QQuery 5_density=0.75_prob_hit=1_100K*60M708.59 / 723.16 ±12.08 / 737.35 ms │ 701.78 / 721.07 ±13.69 / 740.04 ms │     no change │
│ QQuery 6_density=0.75_prob_hit=0.1_100K*60M278.60 / 305.07 ±26.86 / 342.72 ms │ 276.39 / 289.31 ±15.95 / 318.75 ms │ +1.05x faster │
│ QQuery 7_density=0.5_prob_hit=1_100K*60M854.92 / 878.03 ±26.82 / 929.46 ms │ 690.25 / 709.54 ±16.08 / 739.26 ms │ +1.24x faster │
│ QQuery 8_density=0.5_prob_hit=0.1_100K*60M273.85 / 280.62 ±6.01 / 291.20 ms │ 253.19 / 272.70 ±15.72 / 295.18 ms │     no change │
│ QQuery 9_density=0.2_prob_hit=1_100K*60M779.58 / 863.34 ±43.61 / 904.35 ms │ 728.75 / 794.98 ±47.20 / 857.73 ms │ +1.09x faster │
│ QQuery 10_density=0.2_prob_hit=0.1_100K*60M250.70 / 266.21 ±15.79 / 291.76 ms │ 251.56 / 266.68 ±19.96 / 303.09 ms │     no change │
│ QQuery 11_density=0.1_prob_hit=1_100K*60M736.48 / 785.19 ±40.46 / 841.92 ms │  713.84 / 723.59 ±8.27 / 738.51 ms │ +1.09x faster │
│ QQuery 12_density=0.1_prob_hit=0.1_100K*60M283.04 / 300.61 ±16.67 / 323.53 ms │ 250.72 / 266.16 ±11.18 / 278.53 ms │ +1.13x faster │
│ QQuery 13_density=0.01_prob_hit=1_100K*60M725.32 / 801.91 ±61.86 / 889.98 ms │ 714.10 / 730.91 ±15.03 / 758.37 ms │ +1.10x faster │
│ QQuery 14_density=0.01_prob_hit=0.1_100K*60M282.99 / 299.09 ±15.67 / 326.55 ms │ 281.87 / 318.24 ±33.22 / 370.68 ms │  1.06x slower │
│ QQuery 15_density=0.2_prob_hit=0.1_100K_(20%_dups)*60M255.45 / 274.01 ±33.80 / 341.51 ms │ 275.17 / 309.55 ±43.34 / 394.87 ms │  1.13x slower │
│ QQuery 16_density=1_prob_hit=1_25*1.5M_RightSemi2.37 / 2.52 ±0.10 / 2.68 ms │        2.79 / 2.93 ±0.12 / 3.06 ms │  1.16x slower │
│ QQuery 17_density=1_prob_hit=1_100K*60M_RightSemi90.50 / 101.31 ±19.33 / 139.91 ms │ 100.66 / 111.17 ±11.60 / 130.38 ms │  1.10x slower │
│ QQuery 18_density=1_prob_hit=0.1_100K*60M_RightSemi103.27 / 109.32 ±11.44 / 132.20 ms │ 139.24 / 147.40 ±13.93 / 175.21 ms │  1.35x slower │
│ QQuery 19_density=1_prob_hit=1_25*1.5M_RightAnti1.92 / 2.00 ±0.05 / 2.07 ms │        2.05 / 2.10 ±0.05 / 2.20 ms │     no change │
│ QQuery 20_density=1_prob_hit=1_100K*60M_RightAnti80.58 / 81.06 ±0.59 / 82.19 ms │     79.83 / 80.58 ±0.49 / 81.25 ms │     no change │
│ QQuery 21_density=1_prob_hit=0.1_100K*60M_RightAnti116.60 / 117.36 ±0.54 / 118.14 ms │  113.96 / 115.61 ±1.46 / 118.35 ms │     no change │
│ QQuery 22_density=1_prob_hit=0.01_100K_(fanout_100)*60M_RightSemi92.49 / 94.37 ±1.48 / 96.23 ms │   99.39 / 100.52 ±1.07 / 101.90 ms │  1.07x slower │
│ QQuery 23_density=1_prob_hit=1_32K_(fanout~78)*2.3M_long_keys_count165.18 / 166.87 ±2.11 / 171.03 ms │ 161.51 / 198.76 ±19.10 / 214.64 ms │  1.19x slower │
└─────────────────────────────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)6745.12ms │
│ Total Time (qizhu_help-22384-rebase)6455.80ms │
│ Average Time (HEAD)293.27ms │
│ Average Time (qizhu_help-22384-rebase)280.69ms │
│ Queries Faster6 │
│ Queries Slower9 │
│ Queries with No Change8 │
│ Queries with Failure0 │
└────────────────────────────────────────┴───────────┘

Thanks @adriangb ! Net for HJ is still positive (Total -4.3%, Avg -4.3%).

The 9 regressions all share one pattern: density=1 queries where bounds prune 0 rows, so Layer 3 becomes pure per-row tax. Q18 RightSemi is worst (1.35x) since HashJoin's hash lookup already does the equivalent semantic filter.

The 6 wins are all on low-density (0.01–0.5) where Layer 3 actually prunes.

I will investigate a better solution in this PR.

zhuqi-lucas and others added 2 commits July 20, 2026 23:16
Adds a per-file adaptive skip to PostScanFilter (Layer 3, the
pushdown_filters=false row-level path introduced by apache#22384). After
observing POST_SCAN_FILTER_SAMPLE_ROWS (65536) rows, if the filter
has pruned fewer than POST_SCAN_FILTER_MIN_SELECTIVITY (2%) of them,
it permanently disables itself for the rest of the file — subsequent
batches take a batch-clone fast path.

Rationale: on the hj benchmark, the density=1 pattern (Q1 Inner,
Q16-18/Q22 RightSemi, Q23 Inner high-fanout) shows Layer 3 running
its predicate on tens of millions of probe rows only to prune zero
— pure per-row tax with no downstream savings, because the
downstream HashJoin hash lookup is going to do the exact match on
the same rows anyway. Adaptive skip detects this after two decoded
batches and stops paying the tax; the downstream operator is
unchanged and produces the same result.

Correctness: PostScanFilter is a semantics-preserving optimization
(the downstream operator does the exact filtering), so disabling
it never produces wrong results — the filter never NEEDED to run,
it was only there to save downstream work.

Scope: this is a deliberately-small per-file MVP. @adriangb's apache#22883
EPIC (Adaptive predicate evaluation) has a full framework with
OptionalFilterPhysicalExpr + a cross-scan SelectivityTracker; this
commit can be superseded by that when it lands.

Local TPC-H SF1 (release-nonlto, 3 iters, avg ms):
  - baseline (main, pre-apache#22384): 27.65
  - PR + union bounds only:      26.99
  - PR + this adaptive skip:     25.98  (net -6% vs baseline)
  - Q1 individually: 56.01 (baseline) -> 44.30 (this commit),
    i.e. 21% faster than baseline where Layer 3 previously added tax

Tests:
  - adaptive_disables_when_selectivity_is_zero
  - adaptive_stays_enabled_when_selectivity_is_high
  - adaptive_does_not_disable_before_sample_threshold
  - adaptive_disable_short_circuits_evaluation

Also reverts the RightSemi/RightAnti gate in
HashJoinExec::allow_join_dynamic_filter_pushdown — adaptive skip
subsumes it (a density=1 Semi/Anti probe scan trips the gate the
same way an Inner one does).
@zhuqi-lucas

Copy link
Copy Markdown
Contributor Author

run benchmark hj

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5023896633-1179-vmtts 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (61a9ebb) to 4184b07 (merge-base) diff using: hj
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 qizhu_help-22384-rebase
--------------------
Benchmark hj.json
--------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query                                                               ┃                               HEAD ┃            qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1_density=1_prob_hit=1_25*1.5M                               │        2.07 / 2.34 ±0.44 / 3.21 ms │        2.18 / 2.54 ±0.57 / 3.68 ms │  1.09x slower │
│ QQuery 2_density=0.026_prob_hit=1_25*1.5M                           │        4.25 / 4.42 ±0.10 / 4.51 ms │        4.24 / 4.36 ±0.08 / 4.46 ms │     no change │
│ QQuery 3_density=1_prob_hit=1_100K*60M                              │     85.95 / 87.55 ±1.57 / 90.50 ms │     85.04 / 86.51 ±0.99 / 87.65 ms │     no change │
│ QQuery 4_density=1_prob_hit=0.1_100K*60M                            │  192.97 / 196.70 ±2.32 / 200.21 ms │  192.98 / 198.91 ±5.51 / 208.14 ms │     no change │
│ QQuery 5_density=0.75_prob_hit=1_100K*60M                           │ 711.33 / 745.34 ±36.54 / 813.92 ms │ 730.46 / 740.72 ±10.18 / 757.15 ms │     no change │
│ QQuery 6_density=0.75_prob_hit=0.1_100K*60M                         │ 276.39 / 296.56 ±18.02 / 325.92 ms │ 279.02 / 295.94 ±21.86 / 338.40 ms │     no change │
│ QQuery 7_density=0.5_prob_hit=1_100K*60M                            │ 732.15 / 749.31 ±14.11 / 766.13 ms │ 726.19 / 751.72 ±29.19 / 803.28 ms │     no change │
│ QQuery 8_density=0.5_prob_hit=0.1_100K*60M                          │ 253.03 / 275.95 ±24.14 / 314.31 ms │ 249.62 / 274.46 ±20.20 / 302.95 ms │     no change │
│ QQuery 9_density=0.2_prob_hit=1_100K*60M                            │ 732.74 / 754.05 ±10.76 / 761.76 ms │ 720.22 / 744.24 ±24.69 / 785.56 ms │     no change │
│ QQuery 10_density=0.2_prob_hit=0.1_100K*60M                         │ 265.10 / 287.49 ±18.62 / 310.30 ms │ 263.27 / 273.89 ±12.40 / 297.17 ms │     no change │
│ QQuery 11_density=0.1_prob_hit=1_100K*60M                           │ 744.02 / 758.42 ±16.94 / 790.63 ms │ 716.06 / 740.63 ±20.70 / 776.46 ms │     no change │
│ QQuery 12_density=0.1_prob_hit=0.1_100K*60M                         │ 250.51 / 265.31 ±14.83 / 292.64 ms │ 254.77 / 279.27 ±19.60 / 301.92 ms │  1.05x slower │
│ QQuery 13_density=0.01_prob_hit=1_100K*60M                          │ 759.83 / 768.64 ±10.38 / 785.76 ms │ 733.66 / 757.67 ±18.27 / 782.88 ms │     no change │
│ QQuery 14_density=0.01_prob_hit=0.1_100K*60M                        │ 273.64 / 313.33 ±38.82 / 380.32 ms │ 270.72 / 298.49 ±23.84 / 339.91 ms │     no change │
│ QQuery 15_density=0.2_prob_hit=0.1_100K_(20%_dups)*60M              │ 262.13 / 286.81 ±25.44 / 328.17 ms │ 254.34 / 279.41 ±20.00 / 311.19 ms │     no change │
│ QQuery 16_density=1_prob_hit=1_25*1.5M_RightSemi                    │        2.53 / 2.66 ±0.11 / 2.82 ms │        2.71 / 2.77 ±0.05 / 2.83 ms │     no change │
│ QQuery 17_density=1_prob_hit=1_100K*60M_RightSemi                   │  90.92 / 108.07 ±20.53 / 141.68 ms │  89.16 / 100.28 ±14.04 / 126.58 ms │ +1.08x faster │
│ QQuery 18_density=1_prob_hit=0.1_100K*60M_RightSemi                 │  104.22 / 104.61 ±0.30 / 105.14 ms │  139.53 / 145.15 ±7.71 / 160.41 ms │  1.39x slower │
│ QQuery 19_density=1_prob_hit=1_25*1.5M_RightAnti                    │        1.94 / 2.03 ±0.10 / 2.22 ms │        2.01 / 2.12 ±0.07 / 2.19 ms │     no change │
│ QQuery 20_density=1_prob_hit=1_100K*60M_RightAnti                   │     80.52 / 81.39 ±1.02 / 83.19 ms │     80.65 / 81.57 ±0.85 / 83.07 ms │     no change │
│ QQuery 21_density=1_prob_hit=0.1_100K*60M_RightAnti                 │  114.11 / 116.31 ±2.31 / 120.70 ms │  113.57 / 114.54 ±0.96 / 116.33 ms │     no change │
│ QQuery 22_density=1_prob_hit=0.01_100K_(fanout_100)*60M_RightSemi   │     93.11 / 94.08 ±0.70 / 95.21 ms │    97.51 / 98.81 ±1.10 / 100.44 ms │  1.05x slower │
│ QQuery 23_density=1_prob_hit=1_32K_(fanout~78)*2.3M_long_keys_count │  164.13 / 166.15 ±1.20 / 167.60 ms │  193.10 / 199.75 ±5.14 / 206.51 ms │  1.20x slower │
└─────────────────────────────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 6467.52ms │
│ Total Time (qizhu_help-22384-rebase)   │ 6473.74ms │
│ Average Time (HEAD)                    │  281.20ms │
│ Average Time (qizhu_help-22384-rebase) │  281.47ms │
│ Queries Faster                         │         1 │
│ Queries Slower                         │         5 │
│ Queries with No Change                 │        17 │
│ Queries with Failure                   │         0 │
└────────────────────────────────────────┴───────────┘

Resource Usage

hj — base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 2.8 GiB
Avg memory 1.3 GiB
CPU user 326.9s
CPU sys 10.9s
Peak spill 0 B

hj — branch

Metric Value
Wall time 35.0s
Peak memory 2.9 GiB
Avg memory 1.3 GiB
CPU user 328.6s
CPU sys 11.2s
Peak spill 0 B

File an issue against this benchmark runner

…ers=false

Right-Semi joins already implement the exact 'probe key ∈ build set'
check as their core operation via the downstream hash lookup. Applying
the bounds-based dynamic filter to those probe rows is semantically
redundant, and — without arrow-rs RowFilter's lazy-decode amortization
(i.e. pushdown_filters=false) — the per-batch PostScanFilter tax
exceeds the marginal hash-lookup savings on TPC-H-shaped workloads.

The apache#23701 hj benchmark surfaced this: density=1 RightSemi cases
(Q16 25×1.5M, Q17/Q18 100K×60M, Q22 fanout=100 100K×60M) showed
5–35% regression because the bounds filter prunes 0 rows while the
filter still evaluates on every probe row.

Skip the dynamic filter for RightSemi when pushdown_filters=false.
Keep it when pushdown_filters=true so RowFilter's two-phase decode
can still amortize the cost on selective Semi joins.

RightAnti is already excluded by the existing probe_preserved gate
(on_lr_is_preserved reports (true, false) for it), so this new gate
is redundant for that type — no separate check needed.

Tests:
- test_dynamic_filter_pushdown_rejects_right_semi_when_pushdown_off
- test_dynamic_filter_pushdown_keeps_right_semi_when_pushdown_on
@zhuqi-lucas

Copy link
Copy Markdown
Contributor Author

run benchmark hj

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5024251059-1181-4mjpt 6.12.85+ #1 SMP Mon May 11 08:17:35 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 qizhu/help-22384-rebase (3ca3cda) to 4184b07 (merge-base) diff using: hj
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 qizhu_help-22384-rebase
--------------------
Benchmark hj.json
--------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query                                                               ┃                               HEAD ┃            qizhu_help-22384-rebase ┃        Change ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1_density=1_prob_hit=1_25*1.5M                               │        2.01 / 2.26 ±0.40 / 3.05 ms │        2.18 / 2.47 ±0.40 / 3.25 ms │  1.09x slower │
│ QQuery 2_density=0.026_prob_hit=1_25*1.5M                           │        4.01 / 4.22 ±0.18 / 4.53 ms │        4.00 / 4.15 ±0.17 / 4.46 ms │     no change │
│ QQuery 3_density=1_prob_hit=1_100K*60M                              │     85.31 / 86.76 ±0.99 / 87.90 ms │     88.43 / 88.71 ±0.26 / 89.20 ms │     no change │
│ QQuery 4_density=1_prob_hit=0.1_100K*60M                            │  194.38 / 197.25 ±2.42 / 200.77 ms │  192.92 / 194.50 ±1.53 / 196.80 ms │     no change │
│ QQuery 5_density=0.75_prob_hit=1_100K*60M                           │  705.37 / 712.11 ±7.82 / 726.81 ms │ 694.43 / 731.15 ±32.08 / 787.80 ms │     no change │
│ QQuery 6_density=0.75_prob_hit=0.1_100K*60M                         │ 278.60 / 304.19 ±14.90 / 322.98 ms │ 276.35 / 293.46 ±17.26 / 324.23 ms │     no change │
│ QQuery 7_density=0.5_prob_hit=1_100K*60M                            │  700.03 / 713.63 ±9.93 / 729.46 ms │ 696.28 / 707.83 ±10.32 / 725.52 ms │     no change │
│ QQuery 8_density=0.5_prob_hit=0.1_100K*60M                          │ 252.18 / 264.26 ±11.40 / 278.01 ms │ 250.95 / 262.69 ±11.19 / 283.26 ms │     no change │
│ QQuery 9_density=0.2_prob_hit=1_100K*60M                            │ 696.38 / 716.53 ±10.97 / 729.72 ms │  719.61 / 735.22 ±8.50 / 743.73 ms │     no change │
│ QQuery 10_density=0.2_prob_hit=0.1_100K*60M                         │ 253.34 / 261.67 ±10.02 / 279.05 ms │ 249.97 / 267.74 ±15.12 / 287.49 ms │     no change │
│ QQuery 11_density=0.1_prob_hit=1_100K*60M                           │ 706.55 / 721.63 ±14.45 / 739.63 ms │ 722.41 / 752.72 ±43.56 / 838.82 ms │     no change │
│ QQuery 12_density=0.1_prob_hit=0.1_100K*60M                         │ 247.19 / 283.27 ±26.21 / 316.19 ms │ 255.64 / 271.02 ±12.15 / 286.40 ms │     no change │
│ QQuery 13_density=0.01_prob_hit=1_100K*60M                          │ 743.05 / 787.68 ±44.75 / 870.19 ms │ 728.50 / 745.68 ±19.56 / 783.29 ms │ +1.06x faster │
│ QQuery 14_density=0.01_prob_hit=0.1_100K*60M                        │ 284.98 / 303.23 ±17.08 / 331.98 ms │ 274.94 / 307.95 ±23.28 / 326.94 ms │     no change │
│ QQuery 15_density=0.2_prob_hit=0.1_100K_(20%_dups)*60M              │ 252.36 / 272.98 ±17.97 / 303.40 ms │ 260.45 / 286.83 ±16.71 / 306.34 ms │  1.05x slower │
│ QQuery 16_density=1_prob_hit=1_25*1.5M_RightSemi                    │        2.47 / 2.53 ±0.06 / 2.61 ms │        2.20 / 2.27 ±0.06 / 2.38 ms │ +1.11x faster │
│ QQuery 17_density=1_prob_hit=1_100K*60M_RightSemi                   │  90.34 / 106.30 ±13.11 / 120.50 ms │    87.81 / 92.27 ±7.23 / 106.65 ms │ +1.15x faster │
│ QQuery 18_density=1_prob_hit=0.1_100K*60M_RightSemi                 │  103.62 / 104.12 ±0.53 / 105.00 ms │ 105.41 / 117.47 ±22.66 / 162.77 ms │  1.13x slower │
│ QQuery 19_density=1_prob_hit=1_25*1.5M_RightAnti                    │        1.89 / 2.07 ±0.20 / 2.45 ms │        1.97 / 2.07 ±0.08 / 2.15 ms │     no change │
│ QQuery 20_density=1_prob_hit=1_100K*60M_RightAnti                   │     80.35 / 80.98 ±0.76 / 82.47 ms │     80.08 / 80.57 ±0.58 / 81.64 ms │     no change │
│ QQuery 21_density=1_prob_hit=0.1_100K*60M_RightAnti                 │  112.33 / 113.77 ±1.41 / 116.41 ms │  113.86 / 115.33 ±1.25 / 117.09 ms │     no change │
│ QQuery 22_density=1_prob_hit=0.01_100K_(fanout_100)*60M_RightSemi   │     91.85 / 92.39 ±0.52 / 93.33 ms │     91.13 / 92.21 ±0.78 / 93.16 ms │     no change │
│ QQuery 23_density=1_prob_hit=1_32K_(fanout~78)*2.3M_long_keys_count │  164.39 / 165.28 ±0.81 / 166.50 ms │  194.86 / 200.46 ±4.60 / 208.92 ms │  1.21x slower │
└─────────────────────────────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                      ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                      │ 6299.14ms │
│ Total Time (qizhu_help-22384-rebase)   │ 6354.77ms │
│ Average Time (HEAD)                    │  273.88ms │
│ Average Time (qizhu_help-22384-rebase) │  276.29ms │
│ Queries Faster                         │         3 │
│ Queries Slower                         │         4 │
│ Queries with No Change                 │        16 │
│ Queries with Failure                   │         0 │
└────────────────────────────────────────┴───────────┘

Resource Usage

hj — base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 2.5 GiB
Avg memory 1.3 GiB
CPU user 319.7s
CPU sys 10.6s
Peak spill 0 B

hj — branch

Metric Value
Wall time 35.0s
Peak memory 2.8 GiB
Avg memory 1.3 GiB
CPU user 320.1s
CPU sys 10.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor

@zhuqi-lucas I wonder how this compares against previous proposals of tracking selectivity & compute time and disabling dynamic filters if they are not pulling their weight? Either at the expression level (#22234) or at the scan level (#22237).

It seems that this PR is now both disabling the membership pushdown by default (enable_hash_join_dynamic_membership_filter = false) and changing the shape of the filter. I think we should evaluate that in separate changes. And neither of them seem like they need to be stacked on #22384?

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

Labels

auto detected api change Auto detected API change common Related to common crate core Core DataFusion crate datasource Changes to the datasource crate documentation Improvements or additions to documentation physical-plan Changes to the physical-plan crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants