Skip to content

perf: bulk-append contiguous buffered runs in sort merge join#23673

Open
andygrove wants to merge 1 commit into
apache:mainfrom
andygrove:smj-bulk-range-append
Open

perf: bulk-append contiguous buffered runs in sort merge join#23673
andygrove wants to merge 1 commit into
apache:mainfrom
andygrove:smj-bulk-range-append

Conversation

@andygrove

Copy link
Copy Markdown
Member

Which issue does this PR close?

  • N/A

Rationale for this change

The MaterializingSortMergeJoinStream (used for inner/left/right/full joins) produces output one row at a time in join_partial. When a single streamed row matches a run of buffered rows — i.e. a high fan-out join — each matched row incurs:

  • a VecDeque index lookup in scanning_idx(),
  • two more VecDeque index computations inside scanning_advance(), and
  • two individual UInt64Builder::append_value calls.

The buffered rows that match within a single buffered batch always form a contiguous index range, so this per-row work is unnecessary overhead that scales with the number of output rows.

What changes are included in this PR?

  • Add StreamedBatch::append_output_range, which appends a contiguous run of buffered indices against the current streamed index in bulk (append_value_n + append_slice) instead of one pair at a time. A reusable scratch buffer (buffered_index_scratch) materializes the index range, and a len == 1 fast path keeps the common one-row-per-key case free of scratch-buffer overhead.
  • Add BufferedData::scanning_advance_by(n) and scanning_batch_remaining() so the scan cursor can advance by a whole run at once. join_partial now computes the run length (capped by the remaining output-batch capacity) and appends the whole run in a single step. The FULL-join null-joined branch is likewise updated to extend a range rather than pushing per row.

No behavior change — output is identical, only the way indices are accumulated changes.

Benchmark results (cargo bench --bench sort_merge_join)

Benchmark Before After Change
inner_1to10 (1:10 fan-out, 1M output rows) 13.28 ms 10.18 ms ~23% faster
inner_1to1 2.76 ms 2.68 ms neutral
left_1to1_unmatched 2.73 ms 2.67 ms neutral

The semi/anti benchmarks use a different stream (BitwiseSortMergeJoinStream) that is unchanged.

Are these changes tested?

Covered by existing tests:

  • 64 sort-merge-join unit tests in datafusion-physical-plan pass.
  • The sort_merge_join.slt sqllogictest passes.

Are there any user-facing changes?

No.

The materializing sort-merge-join stream advanced one output row at a
time in join_partial. When a streamed row matches a run of buffered rows
(high fan-out), each matched row cost a VecDeque index lookup in
scanning_idx plus two more in scanning_advance, along with two individual
builder appends.

The matched buffered rows within a batch form a contiguous index range,
so append the whole run at once via append_output_range (append_value_n +
append_slice) and advance the scan cursor by the run length. A len == 1
fast path keeps the common one-row-per-key case free of scratch-buffer
overhead.

Benchmarks (sort_merge_join): inner join with 1:10 fan-out improves ~23%
(13.28ms -> 10.18ms); 1:1 cases are neutral.
@github-actions github-actions Bot added the physical-plan Changes to the physical-plan crate label Jul 17, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.36066% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 80.67%. Comparing base (1e58928) to head (a7fa061).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
.../src/joins/sort_merge_join/materializing_stream.rs 98.36% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #23673   +/-   ##
=======================================
  Coverage   80.67%   80.67%           
=======================================
  Files        1086     1086           
  Lines      366800   366853   +53     
  Branches   366800   366853   +53     
=======================================
+ Hits       295912   295962   +50     
+ Misses      53260    53256    -4     
- Partials    17628    17635    +7     

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

@andygrove andygrove added the performance Make DataFusion faster label Jul 17, 2026
@andygrove

Copy link
Copy Markdown
Member Author

run benchmark sort_merge_join

@adriangbot

Copy link
Copy Markdown

@andygrove

Copy link
Copy Markdown
Member Author

@mbutrovich @comphead could you trigger the benchmark run for me? I'm not on the list.

@comphead

Copy link
Copy Markdown
Contributor

run benchmark sort_merge_join,tpch,tpcds

@adriangbot

Copy link
Copy Markdown

Hi @comphead, thanks for the request (#23673 (comment)).

Usage:

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

Any benchmark name is accepted: bench.sh suite names (e.g. tpch, clickbench_partitioned, wide_schema) and Criterion bench targets (e.g. sql_planner) are resolved automatically. A name that matches neither fails on the runner.

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

env:
# shared env is inherited by BOTH the build and the run, so build
# flags go here. Builds default to no debuginfo for speed; opt back
# in for hung-job gdb dumps and cap jobs to stay within memory:
CARGO_PROFILE_RELEASE_DEBUG: "1"
CARGO_BUILD_JOBS: "1"
baseline:
ref: v45.0.0
env:
# per-side env only reaches the benchmark run, not the build
DATAFUSION_RUNTIME_MEMORY_LIMIT: 1G
changed:
ref: v46.0.0
env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 2G

File an issue against this benchmark runner

@comphead

Copy link
Copy Markdown
Contributor

run benchmark sort_merge_join tpch tpcds

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5007079211-1131-sc4nt 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 smj-bulk-range-append (a7fa061) to 1e58928 (merge-base) diff using: sort_merge_join
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-c5007079211-1132-9jt5l 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 smj-bulk-range-append (a7fa061) to 1e58928 (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-c5007079211-1133-4vlc5 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 smj-bulk-range-append (a7fa061) to 1e58928 (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 for this request failed.

Last 20 lines of output:

Click to expand
  Downloaded crossbeam-deque v0.8.6
  Downloaded ciborium-ll v0.2.2
  Downloaded ciborium-io v0.2.2
  Downloaded cfg-if v1.0.4
  Downloaded aws-smithy-observability v0.3.0
  Downloaded async-recursion v1.1.1
  Downloaded criterion-plot v0.8.2
  Downloaded compression-core v0.4.32
  Downloaded cfg_aliases v0.2.1
  Downloaded aws-smithy-runtime-api-macros v1.1.0
  Downloaded atomic-waker v1.1.2
  Downloaded async-stream v0.3.6
  Downloaded async-ffi v0.5.0
  Downloaded anstyle v1.0.14
  Downloaded anstream v1.0.0
  Downloaded aws-lc-sys v0.40.0
error: target `sort_merge_join` in package `datafusion-physical-plan` requires the features: `test_utils`
Consider enabling them by passing, e.g., `--features="test_utils"`
error: target `sort_merge_join` in package `datafusion-physical-plan` requires the features: `test_utils`
Consider enabling them by passing, e.g., `--features="test_utils"`

File an issue against this benchmark runner

@comphead

Copy link
Copy Markdown
Contributor

run benchmark tpch tpcds

env:
PREFER_HASH_JOIN: false

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5007120053-1134-4sqkf 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 smj-bulk-range-append (a7fa061) to 1e58928 (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-c5007120053-1135-f8brh 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 smj-bulk-range-append (a7fa061) to 1e58928 (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 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 smj-bulk-range-append
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃          smj-bulk-range-append ┃    Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1  │ 38.34 / 39.13 ±1.26 / 41.61 ms │ 37.94 / 39.09 ±1.47 / 41.96 ms │ no change │
│ QQuery 2  │ 19.23 / 19.59 ±0.25 / 19.86 ms │ 18.99 / 19.71 ±0.74 / 21.13 ms │ no change │
│ QQuery 3  │ 31.24 / 33.37 ±1.18 / 34.76 ms │ 30.53 / 32.30 ±1.42 / 33.78 ms │ no change │
│ QQuery 4  │ 17.32 / 17.58 ±0.14 / 17.69 ms │ 17.35 / 18.21 ±0.78 / 19.16 ms │ no change │
│ QQuery 5  │ 38.04 / 40.22 ±1.15 / 41.48 ms │ 39.77 / 40.62 ±1.03 / 42.57 ms │ no change │
│ QQuery 6  │ 16.19 / 16.39 ±0.19 / 16.70 ms │ 16.27 / 16.82 ±0.92 / 18.66 ms │ no change │
│ QQuery 7  │ 43.92 / 44.86 ±0.67 / 45.86 ms │ 44.10 / 44.88 ±0.62 / 45.82 ms │ no change │
│ QQuery 8  │ 42.57 / 43.66 ±0.75 / 44.77 ms │ 42.54 / 42.77 ±0.16 / 43.05 ms │ no change │
│ QQuery 9  │ 49.84 / 50.81 ±0.59 / 51.53 ms │ 48.85 / 50.50 ±1.65 / 53.59 ms │ no change │
│ QQuery 10 │ 42.09 / 42.32 ±0.23 / 42.75 ms │ 42.24 / 42.60 ±0.34 / 43.07 ms │ no change │
│ QQuery 11 │ 13.27 / 13.80 ±0.68 / 15.12 ms │ 13.31 / 13.53 ±0.15 / 13.76 ms │ no change │
│ QQuery 12 │ 23.48 / 24.53 ±1.12 / 26.63 ms │ 23.61 / 24.50 ±1.18 / 26.82 ms │ no change │
│ QQuery 13 │ 32.17 / 33.72 ±1.59 / 36.69 ms │ 31.46 / 33.21 ±1.53 / 36.00 ms │ no change │
│ QQuery 14 │ 23.22 / 23.37 ±0.10 / 23.49 ms │ 23.50 / 23.99 ±0.56 / 25.09 ms │ no change │
│ QQuery 15 │ 31.04 / 31.53 ±0.63 / 32.75 ms │ 31.19 / 31.53 ±0.32 / 31.96 ms │ no change │
│ QQuery 16 │ 14.20 / 14.38 ±0.12 / 14.51 ms │ 13.99 / 14.20 ±0.20 / 14.56 ms │ no change │
│ QQuery 17 │ 70.87 / 71.48 ±0.86 / 73.18 ms │ 71.34 / 71.58 ±0.17 / 71.81 ms │ no change │
│ QQuery 18 │ 58.64 / 61.04 ±2.39 / 65.50 ms │ 59.59 / 60.71 ±1.24 / 62.28 ms │ no change │
│ QQuery 19 │ 32.98 / 33.29 ±0.34 / 33.90 ms │ 33.11 / 33.62 ±0.62 / 34.70 ms │ no change │
│ QQuery 20 │ 31.47 / 32.27 ±0.77 / 33.66 ms │ 31.87 / 32.09 ±0.21 / 32.41 ms │ no change │
│ QQuery 21 │ 54.95 / 56.97 ±1.50 / 59.15 ms │ 55.31 / 56.44 ±1.09 / 58.30 ms │ no change │
│ QQuery 22 │ 14.00 / 14.18 ±0.13 / 14.36 ms │ 14.13 / 14.45 ±0.41 / 15.23 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                    ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                    │ 758.49ms │
│ Total Time (smj-bulk-range-append)   │ 757.33ms │
│ Average Time (HEAD)                  │  34.48ms │
│ Average Time (smj-bulk-range-append) │  34.42ms │
│ Queries Faster                       │        0 │
│ Queries Slower                       │        0 │
│ Queries with No Change               │       22 │
│ Queries with Failure                 │        0 │
└──────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

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

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.3 GiB
Avg memory 537.9 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 smj-bulk-range-append
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃          smj-bulk-range-append ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 39.33 / 41.29 ±1.53 / 42.77 ms │ 38.82 / 39.63 ±1.04 / 41.67 ms │     no change │
│ QQuery 2  │ 19.55 / 19.92 ±0.30 / 20.29 ms │ 19.55 / 20.35 ±0.87 / 22.03 ms │     no change │
│ QQuery 3  │ 31.00 / 32.67 ±1.22 / 34.32 ms │ 31.76 / 33.35 ±1.28 / 34.92 ms │     no change │
│ QQuery 4  │ 17.95 / 18.01 ±0.04 / 18.05 ms │ 17.84 / 18.47 ±0.71 / 19.40 ms │     no change │
│ QQuery 5  │ 38.44 / 41.07 ±2.41 / 45.08 ms │ 38.69 / 40.44 ±1.15 / 41.93 ms │     no change │
│ QQuery 6  │ 16.55 / 16.81 ±0.25 / 17.29 ms │ 16.81 / 16.87 ±0.05 / 16.93 ms │     no change │
│ QQuery 7  │ 44.66 / 48.39 ±2.98 / 53.33 ms │ 44.65 / 47.75 ±2.87 / 52.46 ms │     no change │
│ QQuery 8  │ 43.93 / 44.68 ±1.06 / 46.70 ms │ 43.48 / 43.87 ±0.42 / 44.63 ms │     no change │
│ QQuery 9  │ 51.39 / 52.60 ±1.02 / 53.96 ms │ 50.06 / 51.59 ±1.22 / 53.15 ms │     no change │
│ QQuery 10 │ 44.05 / 44.71 ±1.15 / 47.01 ms │ 43.21 / 44.65 ±1.35 / 46.62 ms │     no change │
│ QQuery 11 │ 14.19 / 14.39 ±0.11 / 14.50 ms │ 13.90 / 14.26 ±0.50 / 15.24 ms │     no change │
│ QQuery 12 │ 24.08 / 25.75 ±2.34 / 30.40 ms │ 23.96 / 24.26 ±0.23 / 24.59 ms │ +1.06x faster │
│ QQuery 13 │ 33.46 / 34.64 ±1.12 / 36.10 ms │ 32.73 / 34.97 ±1.67 / 37.53 ms │     no change │
│ QQuery 14 │ 24.65 / 24.82 ±0.19 / 25.19 ms │ 23.93 / 24.19 ±0.30 / 24.76 ms │     no change │
│ QQuery 15 │ 32.26 / 33.47 ±1.64 / 36.67 ms │ 31.87 / 32.24 ±0.33 / 32.74 ms │     no change │
│ QQuery 16 │ 14.74 / 15.11 ±0.29 / 15.56 ms │ 14.38 / 14.75 ±0.25 / 15.07 ms │     no change │
│ QQuery 17 │ 76.03 / 77.42 ±1.24 / 78.93 ms │ 73.23 / 74.89 ±0.97 / 76.10 ms │     no change │
│ QQuery 18 │ 62.37 / 63.57 ±0.87 / 64.57 ms │ 60.82 / 62.23 ±0.98 / 63.35 ms │     no change │
│ QQuery 19 │ 34.22 / 34.86 ±0.60 / 35.78 ms │ 33.42 / 34.13 ±1.28 / 36.70 ms │     no change │
│ QQuery 20 │ 32.82 / 33.25 ±0.44 / 34.01 ms │ 32.58 / 33.04 ±0.37 / 33.54 ms │     no change │
│ QQuery 21 │ 58.36 / 59.78 ±1.29 / 61.80 ms │ 56.62 / 58.48 ±1.67 / 61.07 ms │     no change │
│ QQuery 22 │ 14.51 / 14.84 ±0.37 / 15.54 ms │ 14.59 / 15.35 ±1.40 / 18.15 ms │     no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary                    ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)                    │ 792.04ms │
│ Total Time (smj-bulk-range-append)   │ 779.76ms │
│ Average Time (HEAD)                  │  36.00ms │
│ Average Time (smj-bulk-range-append) │  35.44ms │
│ Queries Faster                       │        1 │
│ Queries Slower                       │        0 │
│ Queries with No Change               │       21 │
│ Queries with Failure                 │        0 │
└──────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 507.5 MiB
CPU user 22.9s
CPU sys 2.0s
Peak spill 0 B

tpch — branch

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

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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 smj-bulk-range-append
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                 smj-bulk-range-append ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           5.63 / 6.20 ±0.97 / 8.13 ms │           5.85 / 6.41 ±0.87 / 8.15 ms │     no change │
│ QQuery 2  │        82.05 / 82.39 ±0.24 / 82.71 ms │        83.38 / 84.03 ±0.58 / 84.88 ms │     no change │
│ QQuery 3  │        29.64 / 30.06 ±0.24 / 30.31 ms │        30.85 / 31.12 ±0.25 / 31.51 ms │     no change │
│ QQuery 4  │     503.50 / 506.36 ±2.23 / 509.31 ms │    520.17 / 553.79 ±20.37 / 577.46 ms │  1.09x slower │
│ QQuery 5  │        52.57 / 53.08 ±0.31 / 53.43 ms │        52.69 / 53.11 ±0.23 / 53.39 ms │     no change │
│ QQuery 6  │        37.30 / 37.73 ±0.39 / 38.34 ms │        36.84 / 37.37 ±0.51 / 38.31 ms │     no change │
│ QQuery 7  │        93.88 / 95.47 ±1.01 / 96.63 ms │       96.08 / 97.59 ±1.69 / 100.90 ms │     no change │
│ QQuery 8  │        37.61 / 37.92 ±0.24 / 38.30 ms │        37.56 / 37.83 ±0.23 / 38.23 ms │     no change │
│ QQuery 9  │        52.54 / 55.21 ±1.98 / 58.65 ms │        55.32 / 57.01 ±0.98 / 58.11 ms │     no change │
│ QQuery 10 │        64.12 / 64.53 ±0.25 / 64.90 ms │        64.44 / 66.13 ±2.24 / 70.51 ms │     no change │
│ QQuery 11 │     315.40 / 321.51 ±7.64 / 336.39 ms │     313.92 / 318.21 ±2.54 / 320.59 ms │     no change │
│ QQuery 12 │        29.37 / 29.66 ±0.20 / 29.98 ms │        29.31 / 29.64 ±0.38 / 30.29 ms │     no change │
│ QQuery 13 │     119.65 / 120.42 ±0.96 / 122.24 ms │     120.22 / 120.72 ±0.29 / 121.09 ms │     no change │
│ QQuery 14 │     416.28 / 423.95 ±6.32 / 435.02 ms │     413.11 / 419.70 ±5.07 / 428.12 ms │     no change │
│ QQuery 15 │        57.66 / 58.70 ±1.00 / 60.49 ms │        57.93 / 59.55 ±0.88 / 60.27 ms │     no change │
│ QQuery 16 │           6.69 / 6.90 ±0.27 / 7.41 ms │           6.77 / 6.95 ±0.23 / 7.37 ms │     no change │
│ QQuery 17 │        80.20 / 81.96 ±1.56 / 84.24 ms │        80.08 / 81.34 ±0.76 / 82.24 ms │     no change │
│ QQuery 18 │     124.59 / 126.64 ±1.24 / 128.14 ms │     125.04 / 125.70 ±0.63 / 126.74 ms │     no change │
│ QQuery 19 │        42.36 / 43.05 ±0.49 / 43.88 ms │        42.44 / 43.89 ±1.87 / 47.58 ms │     no change │
│ QQuery 20 │        38.29 / 41.53 ±2.03 / 44.07 ms │        36.92 / 38.22 ±0.90 / 39.46 ms │ +1.09x faster │
│ QQuery 21 │        19.16 / 19.39 ±0.13 / 19.55 ms │        18.04 / 18.36 ±0.26 / 18.83 ms │ +1.06x faster │
│ QQuery 22 │        69.13 / 73.28 ±3.12 / 76.34 ms │        64.48 / 65.61 ±1.15 / 67.72 ms │ +1.12x faster │
│ QQuery 23 │    350.39 / 366.31 ±14.86 / 391.87 ms │    349.69 / 362.35 ±12.12 / 385.37 ms │     no change │
│ QQuery 24 │     226.78 / 230.58 ±3.46 / 236.83 ms │     225.63 / 230.35 ±6.14 / 242.36 ms │     no change │
│ QQuery 25 │     113.75 / 115.84 ±1.94 / 118.50 ms │     112.49 / 115.90 ±4.00 / 123.71 ms │     no change │
│ QQuery 26 │        57.99 / 58.65 ±0.53 / 59.37 ms │        58.82 / 59.05 ±0.20 / 59.31 ms │     no change │
│ QQuery 27 │           6.37 / 6.49 ±0.17 / 6.83 ms │           6.15 / 6.31 ±0.21 / 6.71 ms │     no change │
│ QQuery 28 │        60.79 / 61.40 ±0.34 / 61.72 ms │        58.07 / 61.50 ±1.78 / 63.29 ms │     no change │
│ QQuery 29 │      99.27 / 100.57 ±1.16 / 102.18 ms │     100.22 / 103.18 ±2.35 / 107.45 ms │     no change │
│ QQuery 30 │        33.09 / 33.52 ±0.35 / 34.06 ms │        33.11 / 33.60 ±0.31 / 34.08 ms │     no change │
│ QQuery 31 │     112.78 / 113.21 ±0.57 / 114.31 ms │     113.66 / 117.06 ±2.87 / 121.69 ms │     no change │
│ QQuery 32 │        20.89 / 21.57 ±0.98 / 23.49 ms │        22.86 / 23.87 ±1.04 / 25.84 ms │  1.11x slower │
│ QQuery 33 │        37.69 / 38.57 ±0.53 / 39.29 ms │        38.97 / 40.07 ±0.72 / 40.91 ms │     no change │
│ QQuery 34 │        10.14 / 10.30 ±0.18 / 10.65 ms │        10.47 / 10.95 ±0.49 / 11.81 ms │  1.06x slower │
│ QQuery 35 │        72.97 / 73.29 ±0.25 / 73.64 ms │        78.79 / 80.42 ±0.95 / 81.59 ms │  1.10x slower │
│ QQuery 36 │           5.83 / 5.96 ±0.20 / 6.36 ms │           6.53 / 6.75 ±0.17 / 6.94 ms │  1.13x slower │
│ QQuery 37 │           6.87 / 7.02 ±0.07 / 7.07 ms │           7.71 / 7.97 ±0.19 / 8.26 ms │  1.13x slower │
│ QQuery 38 │        62.45 / 63.80 ±1.16 / 65.77 ms │        68.30 / 69.30 ±0.75 / 70.55 ms │  1.09x slower │
│ QQuery 39 │        91.76 / 92.42 ±0.63 / 93.46 ms │        91.33 / 93.96 ±2.11 / 96.92 ms │     no change │
│ QQuery 40 │        23.69 / 24.10 ±0.30 / 24.48 ms │        24.01 / 24.20 ±0.13 / 24.37 ms │     no change │
│ QQuery 41 │        11.56 / 11.77 ±0.19 / 12.13 ms │        11.63 / 12.13 ±0.46 / 12.91 ms │     no change │
│ QQuery 42 │        24.12 / 24.40 ±0.19 / 24.69 ms │        24.67 / 25.22 ±0.46 / 25.87 ms │     no change │
│ QQuery 43 │           5.07 / 5.16 ±0.09 / 5.33 ms │           5.04 / 5.14 ±0.14 / 5.42 ms │     no change │
│ QQuery 44 │           9.46 / 9.62 ±0.10 / 9.75 ms │         9.56 / 11.02 ±2.74 / 16.49 ms │  1.14x slower │
│ QQuery 45 │        39.06 / 40.42 ±1.42 / 42.81 ms │        39.41 / 40.40 ±0.62 / 41.06 ms │     no change │
│ QQuery 46 │        12.14 / 12.34 ±0.28 / 12.87 ms │        11.87 / 12.70 ±0.55 / 13.50 ms │     no change │
│ QQuery 47 │     228.68 / 232.03 ±2.35 / 234.80 ms │     229.93 / 233.63 ±3.03 / 238.77 ms │     no change │
│ QQuery 48 │        95.73 / 96.07 ±0.28 / 96.42 ms │        96.78 / 97.66 ±0.91 / 98.93 ms │     no change │
│ QQuery 49 │        76.65 / 78.75 ±1.94 / 82.19 ms │        76.77 / 78.46 ±1.84 / 81.95 ms │     no change │
│ QQuery 50 │        59.57 / 59.82 ±0.21 / 60.18 ms │        58.94 / 59.39 ±0.47 / 59.96 ms │     no change │
│ QQuery 51 │        92.37 / 94.44 ±1.48 / 96.87 ms │       91.91 / 95.47 ±5.09 / 105.58 ms │     no change │
│ QQuery 52 │        24.31 / 24.91 ±0.50 / 25.71 ms │        24.19 / 24.55 ±0.20 / 24.73 ms │     no change │
│ QQuery 53 │        29.75 / 30.57 ±1.01 / 32.52 ms │        29.95 / 30.18 ±0.23 / 30.59 ms │     no change │
│ QQuery 54 │        56.30 / 56.71 ±0.64 / 57.99 ms │        55.55 / 55.82 ±0.37 / 56.56 ms │     no change │
│ QQuery 55 │        23.74 / 24.00 ±0.24 / 24.44 ms │        23.42 / 23.75 ±0.22 / 24.02 ms │     no change │
│ QQuery 56 │        39.03 / 39.95 ±0.69 / 41.02 ms │        38.95 / 39.25 ±0.34 / 39.90 ms │     no change │
│ QQuery 57 │     177.78 / 180.72 ±3.54 / 187.25 ms │     182.13 / 184.82 ±1.98 / 187.29 ms │     no change │
│ QQuery 58 │     116.87 / 118.67 ±1.80 / 121.95 ms │     117.84 / 121.34 ±2.93 / 126.13 ms │     no change │
│ QQuery 59 │     118.00 / 118.80 ±0.60 / 119.76 ms │     120.31 / 122.46 ±2.38 / 126.84 ms │     no change │
│ QQuery 60 │        39.87 / 42.02 ±3.23 / 48.38 ms │        40.97 / 42.44 ±1.01 / 44.00 ms │     no change │
│ QQuery 61 │        12.47 / 12.60 ±0.15 / 12.88 ms │        12.52 / 12.63 ±0.13 / 12.89 ms │     no change │
│ QQuery 62 │        46.49 / 46.97 ±0.38 / 47.57 ms │        47.04 / 47.41 ±0.30 / 47.95 ms │     no change │
│ QQuery 63 │        29.94 / 30.18 ±0.18 / 30.44 ms │        30.49 / 30.63 ±0.10 / 30.79 ms │     no change │
│ QQuery 64 │     412.25 / 419.56 ±6.12 / 429.24 ms │     422.05 / 430.91 ±8.15 / 446.28 ms │     no change │
│ QQuery 65 │     132.39 / 137.40 ±4.35 / 143.97 ms │     132.77 / 135.69 ±2.42 / 139.53 ms │     no change │
│ QQuery 66 │        83.56 / 84.73 ±1.02 / 86.03 ms │        81.71 / 85.55 ±2.55 / 89.55 ms │     no change │
│ QQuery 67 │     266.07 / 271.96 ±5.42 / 281.48 ms │    251.11 / 262.61 ±10.90 / 281.44 ms │     no change │
│ QQuery 68 │        12.43 / 12.63 ±0.23 / 13.04 ms │        12.01 / 12.21 ±0.23 / 12.54 ms │     no change │
│ QQuery 69 │        58.82 / 59.84 ±0.69 / 60.59 ms │        58.16 / 58.77 ±0.51 / 59.57 ms │     no change │
│ QQuery 70 │     107.45 / 114.34 ±6.64 / 123.44 ms │     106.06 / 112.06 ±9.36 / 130.68 ms │     no change │
│ QQuery 71 │        36.08 / 36.83 ±0.58 / 37.53 ms │        36.08 / 36.52 ±0.27 / 36.85 ms │     no change │
│ QQuery 72 │ 2191.28 / 2286.07 ±65.58 / 2364.18 ms │ 2180.58 / 2243.73 ±66.97 / 2363.23 ms │     no change │
│ QQuery 73 │         9.84 / 10.12 ±0.39 / 10.89 ms │         9.82 / 10.16 ±0.25 / 10.50 ms │     no change │
│ QQuery 74 │     172.37 / 179.33 ±6.61 / 191.10 ms │     173.32 / 177.75 ±3.40 / 183.29 ms │     no change │
│ QQuery 75 │     149.22 / 151.30 ±1.06 / 152.10 ms │     150.59 / 153.75 ±4.32 / 162.28 ms │     no change │
│ QQuery 76 │        35.64 / 36.00 ±0.25 / 36.27 ms │        35.70 / 36.52 ±0.54 / 37.29 ms │     no change │
│ QQuery 77 │        61.49 / 62.14 ±0.53 / 62.85 ms │        62.06 / 63.05 ±1.48 / 65.98 ms │     no change │
│ QQuery 78 │     197.40 / 202.08 ±3.59 / 206.70 ms │     200.10 / 203.10 ±2.23 / 205.70 ms │     no change │
│ QQuery 79 │        68.06 / 69.44 ±1.50 / 72.32 ms │        68.04 / 69.85 ±2.35 / 74.43 ms │     no change │
│ QQuery 80 │      99.64 / 101.47 ±1.50 / 104.20 ms │      99.42 / 100.83 ±1.13 / 102.59 ms │     no change │
│ QQuery 81 │        26.28 / 26.45 ±0.11 / 26.62 ms │        26.53 / 27.71 ±1.92 / 31.55 ms │     no change │
│ QQuery 82 │        16.65 / 16.76 ±0.08 / 16.89 ms │        16.92 / 17.12 ±0.13 / 17.28 ms │     no change │
│ QQuery 83 │        41.27 / 43.96 ±3.01 / 49.32 ms │        40.70 / 41.21 ±0.49 / 42.09 ms │ +1.07x faster │
│ QQuery 84 │        30.67 / 31.19 ±0.27 / 31.38 ms │        30.83 / 32.07 ±1.76 / 35.54 ms │     no change │
│ QQuery 85 │     107.51 / 108.63 ±0.73 / 109.64 ms │     107.25 / 108.73 ±1.18 / 110.21 ms │     no change │
│ QQuery 86 │        26.38 / 28.84 ±3.81 / 36.37 ms │        26.00 / 26.54 ±0.32 / 26.82 ms │ +1.09x faster │
│ QQuery 87 │        70.35 / 71.54 ±1.55 / 74.60 ms │        62.85 / 66.04 ±3.89 / 73.51 ms │ +1.08x faster │
│ QQuery 88 │        65.55 / 66.12 ±0.45 / 66.68 ms │        64.69 / 65.23 ±0.49 / 66.07 ms │     no change │
│ QQuery 89 │        37.07 / 37.79 ±0.53 / 38.66 ms │        36.99 / 37.75 ±1.11 / 39.88 ms │     no change │
│ QQuery 90 │        18.30 / 20.47 ±4.10 / 28.66 ms │        18.09 / 18.42 ±0.18 / 18.66 ms │ +1.11x faster │
│ QQuery 91 │        47.83 / 49.28 ±1.65 / 52.07 ms │        49.26 / 50.14 ±0.77 / 51.34 ms │     no change │
│ QQuery 92 │        32.21 / 32.56 ±0.29 / 33.09 ms │        31.56 / 33.82 ±3.68 / 41.17 ms │     no change │
│ QQuery 93 │        52.01 / 52.84 ±0.96 / 54.67 ms │        52.78 / 53.51 ±0.78 / 54.99 ms │     no change │
│ QQuery 94 │        40.56 / 40.86 ±0.26 / 41.18 ms │        40.55 / 41.76 ±0.94 / 43.36 ms │     no change │
│ QQuery 95 │        85.57 / 88.86 ±3.36 / 94.58 ms │        86.20 / 88.03 ±1.25 / 89.66 ms │     no change │
│ QQuery 96 │        25.10 / 25.44 ±0.42 / 26.24 ms │        25.54 / 25.81 ±0.17 / 26.04 ms │     no change │
│ QQuery 97 │        48.56 / 48.85 ±0.32 / 49.44 ms │        49.15 / 50.30 ±1.11 / 52.18 ms │     no change │
│ QQuery 98 │        43.90 / 44.97 ±0.68 / 46.03 ms │        44.76 / 46.18 ±1.21 / 48.39 ms │     no change │
│ QQuery 99 │        72.18 / 73.29 ±1.04 / 75.27 ms │        72.09 / 74.45 ±3.26 / 80.91 ms │     no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                    ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                    │ 10274.38ms │
│ Total Time (smj-bulk-range-append)   │ 10303.44ms │
│ Average Time (HEAD)                  │   103.78ms │
│ Average Time (smj-bulk-range-append) │   104.08ms │
│ Queries Faster                       │          7 │
│ Queries Slower                       │          8 │
│ Queries with No Change               │         84 │
│ Queries with Failure                 │          0 │
└──────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 55.0s
Peak memory 2.1 GiB
Avg memory 1.4 GiB
CPU user 231.9s
CPU sys 5.9s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 55.0s
Peak memory 2.1 GiB
Avg memory 1.4 GiB
CPU user 230.6s
CPU sys 6.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 smj-bulk-range-append
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                   HEAD ┃                  smj-bulk-range-append ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │         24.47 / 25.16 ±1.12 / 27.38 ms │         24.30 / 24.94 ±1.01 / 26.96 ms │     no change │
│ QQuery 2  │         80.96 / 81.63 ±0.57 / 82.35 ms │         80.69 / 80.99 ±0.35 / 81.65 ms │     no change │
│ QQuery 3  │         51.56 / 51.77 ±0.14 / 51.94 ms │         51.42 / 51.68 ±0.18 / 51.97 ms │     no change │
│ QQuery 4  │     804.04 / 824.96 ±20.11 / 863.16 ms │     800.24 / 820.19 ±13.80 / 838.77 ms │     no change │
│ QQuery 5  │      106.94 / 112.93 ±4.82 / 119.75 ms │      106.14 / 108.67 ±2.70 / 113.76 ms │     no change │
│ QQuery 6  │         71.09 / 71.58 ±0.48 / 72.27 ms │         69.72 / 69.89 ±0.12 / 70.01 ms │     no change │
│ QQuery 7  │      124.08 / 128.04 ±4.45 / 135.84 ms │     124.12 / 130.90 ±10.42 / 151.64 ms │     no change │
│ QQuery 8  │         67.12 / 67.56 ±0.31 / 68.02 ms │         67.01 / 67.58 ±0.36 / 67.99 ms │     no change │
│ QQuery 9  │         53.56 / 56.08 ±1.52 / 58.03 ms │         54.09 / 59.67 ±7.94 / 75.44 ms │  1.06x slower │
│ QQuery 10 │      136.13 / 138.42 ±2.25 / 142.67 ms │      140.38 / 143.56 ±2.50 / 147.27 ms │     no change │
│ QQuery 11 │      430.29 / 443.20 ±9.83 / 456.61 ms │     427.41 / 438.89 ±10.97 / 454.22 ms │     no change │
│ QQuery 12 │         33.37 / 35.98 ±3.39 / 42.64 ms │         34.12 / 39.41 ±6.42 / 48.64 ms │  1.10x slower │
│ QQuery 13 │      125.81 / 127.58 ±1.22 / 129.57 ms │      126.67 / 127.74 ±0.89 / 128.84 ms │     no change │
│ QQuery 14 │     837.62 / 849.62 ±10.79 / 869.92 ms │      832.00 / 846.24 ±9.13 / 857.50 ms │     no change │
│ QQuery 15 │         56.80 / 59.30 ±1.72 / 61.62 ms │         56.29 / 59.79 ±4.27 / 68.03 ms │     no change │
│ QQuery 16 │         79.39 / 81.28 ±1.41 / 83.06 ms │         80.96 / 82.67 ±1.89 / 86.16 ms │     no change │
│ QQuery 17 │      170.99 / 175.12 ±3.40 / 180.83 ms │      172.87 / 176.77 ±2.81 / 180.60 ms │     no change │
│ QQuery 18 │      151.91 / 160.62 ±6.96 / 170.28 ms │      152.09 / 157.49 ±3.26 / 160.94 ms │     no change │
│ QQuery 19 │         76.81 / 77.26 ±0.49 / 78.19 ms │         75.83 / 76.97 ±0.76 / 78.01 ms │     no change │
│ QQuery 20 │         46.44 / 50.67 ±5.70 / 61.17 ms │         45.96 / 48.00 ±3.29 / 54.52 ms │ +1.06x faster │
│ QQuery 21 │      416.92 / 425.44 ±5.76 / 431.89 ms │      404.63 / 414.20 ±7.75 / 428.13 ms │     no change │
│ QQuery 22 │      100.82 / 102.78 ±1.30 / 104.50 ms │      100.14 / 101.54 ±0.81 / 102.54 ms │     no change │
│ QQuery 23 │      583.48 / 588.56 ±3.11 / 592.22 ms │      560.00 / 569.90 ±6.74 / 578.99 ms │     no change │
│ QQuery 24 │      350.84 / 358.22 ±5.65 / 363.31 ms │      351.07 / 359.27 ±9.12 / 376.68 ms │     no change │
│ QQuery 25 │      194.71 / 199.25 ±5.08 / 208.18 ms │      189.48 / 192.84 ±4.03 / 200.01 ms │     no change │
│ QQuery 26 │      101.89 / 103.58 ±1.01 / 104.80 ms │      102.46 / 105.05 ±1.53 / 107.14 ms │     no change │
│ QQuery 27 │      124.34 / 129.70 ±7.90 / 145.16 ms │      124.21 / 125.91 ±2.66 / 131.13 ms │     no change │
│ QQuery 28 │         57.93 / 61.21 ±2.28 / 63.27 ms │         57.79 / 61.97 ±2.11 / 63.51 ms │     no change │
│ QQuery 29 │      170.37 / 174.41 ±6.71 / 187.79 ms │      169.04 / 172.48 ±2.67 / 176.98 ms │     no change │
│ QQuery 30 │         47.66 / 48.32 ±0.62 / 49.39 ms │         47.58 / 48.31 ±0.47 / 48.90 ms │     no change │
│ QQuery 31 │      245.20 / 252.11 ±8.23 / 265.82 ms │      244.25 / 247.77 ±3.83 / 255.15 ms │     no change │
│ QQuery 32 │         69.57 / 70.41 ±0.71 / 71.55 ms │         70.85 / 72.97 ±1.65 / 74.82 ms │     no change │
│ QQuery 33 │         72.32 / 73.37 ±0.80 / 74.41 ms │         72.53 / 73.62 ±0.72 / 74.66 ms │     no change │
│ QQuery 34 │         70.98 / 72.09 ±0.84 / 72.98 ms │         69.63 / 71.29 ±2.45 / 76.15 ms │     no change │
│ QQuery 35 │      126.12 / 127.21 ±0.80 / 128.56 ms │      125.48 / 128.26 ±3.37 / 134.08 ms │     no change │
│ QQuery 36 │         87.78 / 91.73 ±4.20 / 98.91 ms │         87.06 / 89.12 ±2.47 / 93.94 ms │     no change │
│ QQuery 37 │         33.55 / 33.84 ±0.18 / 34.12 ms │         33.76 / 34.21 ±0.31 / 34.69 ms │     no change │
│ QQuery 38 │       99.99 / 103.72 ±6.35 / 116.41 ms │      100.41 / 100.73 ±0.29 / 101.14 ms │     no change │
│ QQuery 39 │  1674.72 / 1694.53 ±12.54 / 1711.06 ms │  1642.73 / 1656.68 ±10.05 / 1672.98 ms │     no change │
│ QQuery 40 │      107.10 / 110.96 ±6.07 / 123.05 ms │     107.06 / 114.69 ±11.14 / 136.67 ms │     no change │
│ QQuery 41 │         11.84 / 11.99 ±0.24 / 12.47 ms │         11.62 / 11.84 ±0.21 / 12.24 ms │     no change │
│ QQuery 42 │         50.70 / 52.62 ±3.21 / 59.01 ms │         50.31 / 51.18 ±0.80 / 52.48 ms │     no change │
│ QQuery 43 │         58.17 / 58.45 ±0.29 / 58.93 ms │         56.97 / 62.08 ±5.57 / 72.55 ms │  1.06x slower │
│ QQuery 44 │         12.72 / 13.05 ±0.36 / 13.75 ms │         12.39 / 12.69 ±0.31 / 13.22 ms │     no change │
│ QQuery 45 │         47.47 / 48.08 ±0.45 / 48.66 ms │         47.30 / 47.98 ±0.64 / 49.09 ms │     no change │
│ QQuery 46 │      120.38 / 123.82 ±4.24 / 131.80 ms │      121.03 / 124.61 ±4.15 / 131.25 ms │     no change │
│ QQuery 47 │      370.90 / 373.84 ±2.37 / 376.85 ms │      364.45 / 377.16 ±7.32 / 384.68 ms │     no change │
│ QQuery 48 │      130.29 / 135.06 ±3.07 / 139.74 ms │     125.63 / 134.62 ±10.90 / 150.58 ms │     no change │
│ QQuery 49 │         81.17 / 82.49 ±1.09 / 83.86 ms │         81.25 / 84.96 ±5.38 / 95.66 ms │     no change │
│ QQuery 50 │         87.34 / 89.20 ±0.95 / 89.89 ms │         89.41 / 91.24 ±1.74 / 93.86 ms │     no change │
│ QQuery 51 │      126.60 / 129.12 ±3.01 / 134.93 ms │      124.64 / 128.68 ±4.00 / 136.27 ms │     no change │
│ QQuery 52 │         50.46 / 50.91 ±0.38 / 51.55 ms │         50.39 / 51.08 ±0.90 / 52.82 ms │     no change │
│ QQuery 53 │         56.13 / 58.62 ±2.56 / 62.83 ms │         55.36 / 56.26 ±0.53 / 56.86 ms │     no change │
│ QQuery 54 │       99.24 / 100.02 ±0.79 / 101.28 ms │       98.44 / 103.57 ±4.78 / 111.23 ms │     no change │
│ QQuery 55 │         47.57 / 48.22 ±0.41 / 48.73 ms │         47.89 / 49.02 ±0.94 / 50.24 ms │     no change │
│ QQuery 56 │         73.46 / 75.42 ±2.22 / 79.65 ms │         73.04 / 74.62 ±2.08 / 78.63 ms │     no change │
│ QQuery 57 │      225.12 / 230.52 ±5.08 / 239.98 ms │      223.56 / 230.04 ±5.03 / 237.40 ms │     no change │
│ QQuery 58 │      192.05 / 200.48 ±9.55 / 216.33 ms │      192.57 / 201.28 ±8.15 / 211.61 ms │     no change │
│ QQuery 59 │      123.18 / 126.13 ±4.51 / 135.13 ms │      123.54 / 126.61 ±3.09 / 130.69 ms │     no change │
│ QQuery 60 │         74.11 / 77.12 ±3.26 / 83.42 ms │         73.03 / 75.39 ±2.09 / 79.17 ms │     no change │
│ QQuery 61 │      101.88 / 102.77 ±1.06 / 104.33 ms │      102.12 / 104.85 ±2.72 / 109.82 ms │     no change │
│ QQuery 62 │         67.71 / 73.93 ±5.84 / 84.05 ms │         66.56 / 66.93 ±0.19 / 67.12 ms │ +1.10x faster │
│ QQuery 63 │         56.40 / 57.52 ±0.76 / 58.55 ms │         55.62 / 60.61 ±7.50 / 75.26 ms │  1.05x slower │
│ QQuery 64 │     669.85 / 679.94 ±10.78 / 695.39 ms │      679.33 / 686.09 ±5.26 / 693.50 ms │     no change │
│ QQuery 65 │      113.26 / 119.20 ±7.71 / 133.66 ms │      112.52 / 114.98 ±3.82 / 122.56 ms │     no change │
│ QQuery 66 │      172.60 / 177.29 ±5.91 / 188.65 ms │      173.58 / 177.17 ±4.68 / 186.36 ms │     no change │
│ QQuery 67 │      136.40 / 139.79 ±2.68 / 144.09 ms │      138.18 / 140.92 ±3.12 / 146.77 ms │     no change │
│ QQuery 68 │      127.26 / 130.51 ±2.50 / 134.08 ms │      128.54 / 133.84 ±6.08 / 144.68 ms │     no change │
│ QQuery 69 │      129.90 / 133.91 ±5.72 / 145.05 ms │      128.90 / 129.52 ±0.32 / 129.79 ms │     no change │
│ QQuery 70 │      210.60 / 214.15 ±2.76 / 217.75 ms │     206.36 / 215.32 ±12.02 / 238.76 ms │     no change │
│ QQuery 71 │         66.74 / 67.28 ±0.56 / 68.34 ms │         67.16 / 69.24 ±2.20 / 73.16 ms │     no change │
│ QQuery 72 │ 6936.86 / 7453.44 ±367.53 / 7963.96 ms │ 6231.84 / 6639.25 ±228.72 / 6845.95 ms │ +1.12x faster │
│ QQuery 73 │     68.85 / 148.16 ±101.77 / 322.01 ms │     69.38 / 220.39 ±249.57 / 713.25 ms │  1.49x slower │
│ QQuery 74 │     284.29 / 302.46 ±14.82 / 319.06 ms │     280.50 / 301.66 ±19.31 / 327.83 ms │     no change │
│ QQuery 75 │     220.12 / 235.09 ±11.00 / 247.78 ms │     221.99 / 228.49 ±10.56 / 249.38 ms │     no change │
│ QQuery 76 │         38.95 / 39.38 ±0.41 / 40.09 ms │         39.50 / 41.11 ±1.98 / 44.98 ms │     no change │
│ QQuery 77 │      106.77 / 115.63 ±8.48 / 129.25 ms │      103.77 / 109.32 ±6.35 / 121.47 ms │ +1.06x faster │
│ QQuery 78 │     293.86 / 303.84 ±10.79 / 323.66 ms │     286.53 / 307.73 ±15.63 / 334.31 ms │     no change │
│ QQuery 79 │      128.32 / 138.67 ±8.68 / 153.44 ms │      127.34 / 132.80 ±4.67 / 139.53 ms │     no change │
│ QQuery 80 │      232.24 / 240.34 ±7.06 / 251.06 ms │      236.23 / 248.42 ±7.09 / 254.61 ms │     no change │
│ QQuery 81 │         45.02 / 51.52 ±8.39 / 66.83 ms │         45.37 / 46.84 ±1.00 / 47.96 ms │ +1.10x faster │
│ QQuery 82 │         46.57 / 49.08 ±3.57 / 55.98 ms │         46.19 / 46.80 ±0.51 / 47.38 ms │     no change │
│ QQuery 83 │         55.88 / 59.97 ±4.63 / 66.98 ms │         55.58 / 63.63 ±6.36 / 72.45 ms │  1.06x slower │
│ QQuery 84 │         46.83 / 48.07 ±0.84 / 49.34 ms │         46.75 / 48.62 ±2.31 / 52.85 ms │     no change │
│ QQuery 85 │      138.06 / 144.19 ±7.93 / 159.82 ms │      133.62 / 138.88 ±6.46 / 151.24 ms │     no change │
│ QQuery 86 │         28.06 / 30.82 ±2.33 / 34.54 ms │         28.02 / 29.76 ±1.45 / 31.42 ms │     no change │
│ QQuery 87 │      102.16 / 106.09 ±4.07 / 113.49 ms │      102.43 / 104.38 ±2.32 / 108.38 ms │     no change │
│ QQuery 88 │      166.92 / 172.28 ±5.72 / 179.95 ms │      167.13 / 171.79 ±4.84 / 178.22 ms │     no change │
│ QQuery 89 │         61.42 / 63.17 ±1.40 / 65.51 ms │         60.85 / 63.38 ±2.42 / 67.21 ms │     no change │
│ QQuery 90 │         26.61 / 30.02 ±5.87 / 41.72 ms │         26.99 / 33.69 ±7.62 / 43.34 ms │  1.12x slower │
│ QQuery 91 │         54.24 / 56.72 ±3.58 / 63.84 ms │         53.60 / 56.15 ±2.84 / 60.91 ms │     no change │
│ QQuery 92 │         49.79 / 51.50 ±2.13 / 55.45 ms │         50.77 / 53.75 ±3.32 / 60.18 ms │     no change │
│ QQuery 93 │      223.36 / 228.49 ±4.37 / 236.04 ms │      219.97 / 229.96 ±7.35 / 240.20 ms │     no change │
│ QQuery 94 │         64.00 / 70.98 ±6.14 / 78.59 ms │         62.55 / 73.15 ±8.88 / 88.89 ms │     no change │
│ QQuery 95 │      161.79 / 172.29 ±5.83 / 178.38 ms │      155.15 / 168.23 ±7.95 / 175.65 ms │     no change │
│ QQuery 96 │         45.99 / 49.59 ±2.99 / 55.06 ms │         46.86 / 48.42 ±2.28 / 52.94 ms │     no change │
│ QQuery 97 │         80.63 / 83.68 ±3.50 / 90.41 ms │         80.80 / 82.96 ±1.51 / 85.42 ms │     no change │
│ QQuery 98 │         67.41 / 70.39 ±2.54 / 74.86 ms │         66.62 / 68.94 ±1.72 / 71.12 ms │     no change │
│ QQuery 99 │      142.84 / 151.95 ±7.22 / 160.34 ms │      142.90 / 151.69 ±7.80 / 160.68 ms │     no change │
└───────────┴────────────────────────────────────────┴────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                    ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                    │ 23089.48ms │
│ Total Time (smj-bulk-range-append)   │ 22257.40ms │
│ Average Time (HEAD)                  │   233.23ms │
│ Average Time (smj-bulk-range-append) │   224.82ms │
│ Queries Faster                       │          5 │
│ Queries Slower                       │          7 │
│ Queries with No Change               │         87 │
│ Queries with Failure                 │          0 │
└──────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 120.0s
Peak memory 24.9 GiB
Avg memory 4.0 GiB
CPU user 648.2s
CPU sys 33.0s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 115.0s
Peak memory 25.0 GiB
Avg memory 4.2 GiB
CPU user 604.0s
CPU sys 33.2s
Peak spill 0 B

File an issue against this benchmark runner

@andygrove

Copy link
Copy Markdown
Member Author

hmmm... benchmark results seem pretty mixed so far

@comphead

Copy link
Copy Markdown
Contributor

run benchmark tpch10

env:
    PREFER_HASH_JOIN: false

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5007334032-1136-s66lc 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 smj-bulk-range-append (a7fa061) to 1e58928 (merge-base) diff using: tpch10
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

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

Comparing HEAD and smj-bulk-range-append
--------------------
Benchmark tpch_sf10.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query     ┃                               HEAD ┃              smj-bulk-range-append ┃       Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1  │  310.00 / 312.22 ±1.59 / 314.97 ms │  311.10 / 312.58 ±1.16 / 314.52 ms │    no change │
│ QQuery 2  │  104.85 / 106.73 ±2.92 / 112.53 ms │  104.84 / 107.91 ±3.37 / 114.00 ms │    no change │
│ QQuery 3  │  234.70 / 236.72 ±2.06 / 240.50 ms │  230.49 / 233.10 ±2.84 / 238.14 ms │    no change │
│ QQuery 4  │  113.45 / 114.86 ±1.18 / 116.94 ms │  113.85 / 114.47 ±0.62 / 115.63 ms │    no change │
│ QQuery 5  │ 350.66 / 361.11 ±13.32 / 386.47 ms │  373.08 / 388.84 ±9.43 / 401.91 ms │ 1.08x slower │
│ QQuery 6  │  126.31 / 131.02 ±3.85 / 138.01 ms │  135.22 / 137.11 ±2.38 / 141.72 ms │    no change │
│ QQuery 7  │ 457.66 / 474.15 ±12.35 / 488.81 ms │  534.54 / 542.82 ±5.48 / 551.15 ms │ 1.14x slower │
│ QQuery 8  │ 389.86 / 404.06 ±10.29 / 418.95 ms │  410.66 / 414.31 ±4.22 / 419.80 ms │    no change │
│ QQuery 9  │ 547.74 / 561.88 ±12.38 / 583.11 ms │ 549.52 / 570.99 ±17.43 / 591.90 ms │    no change │
│ QQuery 10 │  296.35 / 307.18 ±6.74 / 314.09 ms │  300.02 / 305.09 ±3.77 / 310.15 ms │    no change │
│ QQuery 11 │     84.53 / 89.48 ±5.10 / 98.20 ms │    85.01 / 90.17 ±7.27 / 104.49 ms │    no change │
│ QQuery 12 │  175.93 / 179.66 ±2.21 / 181.76 ms │  179.43 / 183.59 ±5.88 / 195.18 ms │    no change │
│ QQuery 13 │  276.99 / 289.00 ±6.89 / 296.78 ms │ 298.73 / 309.93 ±10.42 / 327.16 ms │ 1.07x slower │
│ QQuery 14 │  172.72 / 173.73 ±0.82 / 175.12 ms │  179.67 / 185.52 ±6.72 / 198.55 ms │ 1.07x slower │
│ QQuery 15 │  304.62 / 307.29 ±2.69 / 311.00 ms │  307.09 / 315.68 ±5.02 / 322.04 ms │    no change │
│ QQuery 16 │     65.47 / 67.61 ±1.65 / 69.67 ms │     63.01 / 65.95 ±1.85 / 68.14 ms │    no change │
│ QQuery 17 │ 623.42 / 656.97 ±39.01 / 707.35 ms │ 619.66 / 642.34 ±24.87 / 689.00 ms │    no change │
│ QQuery 18 │  685.02 / 693.63 ±9.39 / 705.77 ms │ 657.53 / 688.73 ±21.22 / 723.42 ms │    no change │
│ QQuery 19 │ 244.21 / 259.30 ±17.07 / 283.64 ms │ 246.22 / 256.96 ±11.21 / 271.84 ms │    no change │
│ QQuery 20 │ 273.56 / 294.29 ±13.67 / 310.59 ms │  280.56 / 290.73 ±7.41 / 299.78 ms │    no change │
│ QQuery 21 │  659.48 / 664.77 ±5.07 / 672.27 ms │ 654.76 / 667.92 ±10.44 / 684.09 ms │    no change │
│ QQuery 22 │     61.35 / 63.02 ±1.34 / 65.10 ms │     61.71 / 64.50 ±2.47 / 68.77 ms │    no change │
└───────────┴────────────────────────────────────┴────────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                    ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                    │ 6748.67ms │
│ Total Time (smj-bulk-range-append)   │ 6889.25ms │
│ Average Time (HEAD)                  │  306.76ms │
│ Average Time (smj-bulk-range-append) │  313.15ms │
│ Queries Faster                       │         0 │
│ Queries Slower                       │         4 │
│ Queries with No Change               │        18 │
│ Queries with Failure                 │         0 │
└──────────────────────────────────────┴───────────┘

Resource Usage

tpch10 — base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 4.9 GiB
Avg memory 1.5 GiB
CPU user 342.1s
CPU sys 20.2s
Peak spill 0 B

tpch10 — branch

Metric Value
Wall time 35.0s
Peak memory 5.0 GiB
Avg memory 1.6 GiB
CPU user 344.7s
CPU sys 20.8s
Peak spill 0 B

File an issue against this benchmark runner

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

Labels

performance Make DataFusion faster physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants