Skip to content

Use fallible MutableBuffer methods in fallible APIs - #11973

Draft
Rich-T-kid wants to merge 5 commits into
apache:mainfrom
Rich-T-kid:rich-T-kid/mutable-array-data-fallible
Draft

Rich-T-kid wants to merge 5 commits into
apache:mainfrom
Rich-T-kid:rich-T-kid/mutable-array-data-fallible

Conversation

@Rich-T-kid

@Rich-T-kid Rich-T-kid commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Which issue does this PR address?

Closes #11900, following #11912.

What changes are included in this PR?

Replace panicking buffer calls inside existing fallible APIs with their direct fallible equivalents:

  • Use OffsetBuffer::try_new_zeroed(0) for the empty try_from_repeated_length case.
  • Use MutableBuffer::try_extend_from_slice for sparse and dense union type IDs.
  • Map allocation failures from the union transform call sites to ArrowError::MemoryError.

There are no changes to MutableArrayData orchestration or output semantics.

@github-actions github-actions Bot added the arrow-core Core crates related to representing arrow data label Oct 28, 2026
@Rich-T-kid Rich-T-kid changed the title Make MutableArrayData buffer growth fallible Make MutableArrayData extension fallible Oct 28, 2026
@Rich-T-kid
Rich-T-kid force-pushed the rich-T-kid/mutable-array-data-fallible branch 2 times, most recently from 8f3cd54 to ba91f64 Compare October 29, 2026 14:04
@Rich-T-kid
Rich-T-kid force-pushed the rich-T-kid/mutable-array-data-fallible branch 3 times, most recently from 21c11b4 to 9db65b0 Compare October 30, 2026 14:07
@Rich-T-kid
Rich-T-kid force-pushed the rich-T-kid/mutable-array-data-fallible branch from 9db65b0 to dd8c427 Compare November 5, 2026 23:11
@Rich-T-kid
Rich-T-kid marked this pull request as ready for review November 5, 2026 23:13
@Rich-T-kid
Rich-T-kid force-pushed the rich-T-kid/mutable-array-data-fallible branch from dd8c427 to e2861aa Compare November 6, 2026 02:29
@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark mutable_array

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark zip_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: mutable_array

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark mutable_array
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark filter_kernels

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark interleave_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: zip_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark zip_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark concatenate_kernel

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark merge_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: interleave_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark interleave_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: filter_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark filter_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark take_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: merge_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark merge_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: concatenate_kernel

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: mutable_array

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark mutable_array
shards: 1
Details
group                                 base                                   changed
-----                                 ----                                   -------
mutable dict 1024                     1.00     53.3±1.13µs        ? ?/sec    1.15     61.4±0.85µs        ? ?/sec
mutable dict short slices 1024        1.00     17.8±0.06µs        ? ?/sec    1.02     18.1±0.08µs        ? ?/sec
mutable str 1024                      1.01     44.9±4.03ms        ? ?/sec    1.00     44.3±3.05ms        ? ?/sec
mutable str nulls 1024                1.03     14.6±1.49ms        ? ?/sec    1.00     14.2±1.15ms        ? ?/sec
mutable str_view 1024                 1.00    286.3±2.05µs        ? ?/sec    1.01    289.8±2.46µs        ? ?/sec
mutable str_view short slices 1024    1.00     16.5±0.06µs        ? ?/sec    1.02     16.8±0.07µs        ? ?/sec

Per-runner information
mutable_array — shard 1/1

Node: gk3-benchmark-cluster-nap-17zlehta-9030ffee-2pz8

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

uname:

Linux bench-c6675304183-4536-d52ht 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench mutable_array
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
Resource Usage

base (merge-base)

Metric Value
Wall time 70.0s
Peak memory 167.4 MiB
Avg memory 85.2 MiB
CPU user 43.2s
CPU sys 20.6s
Peak spill 0 B

branch

Metric Value
Wall time 65.0s
Peak memory 171.3 MiB
Avg memory 81.8 MiB
CPU user 43.5s
CPU sys 19.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: concatenate_kernel

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1
Details
group                                                        base                                   changed
-----                                                        ----                                   -------
concat 1024 arrays boolean 4                                 1.00     10.9±0.29µs        ? ?/sec    1.01     11.0±0.30µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 1                   1.00     15.9±0.11µs        ? ?/sec    1.01     16.0±0.08µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 nulls 1             1.02     17.9±0.23µs        ? ?/sec    1.00     17.6±0.21µs        ? ?/sec
concat 1024 arrays i32 4                                     1.00      7.1±0.01µs        ? ?/sec    1.00      7.1±0.02µs        ? ?/sec
concat 1024 arrays str 4                                     1.00     22.5±0.06µs        ? ?/sec    1.02     22.8±0.04µs        ? ?/sec
concat boolean 1024                                          1.01    218.3±4.42ns        ? ?/sec    1.00    216.1±2.70ns        ? ?/sec
concat boolean 8192 over 100 arrays                          1.00      3.8±0.10µs        ? ?/sec    1.00      3.8±0.11µs        ? ?/sec
concat boolean nulls 1024                                    1.00    364.2±9.30ns        ? ?/sec    1.03    375.7±2.56ns        ? ?/sec
concat boolean nulls 8192 over 100 arrays                    1.00      8.2±0.25µs        ? ?/sec    1.00      8.2±0.24µs        ? ?/sec
concat fixed size lists                                      1.00    225.7±1.56µs        ? ?/sec    1.01    228.7±1.99µs        ? ?/sec
concat i32 1024                                              1.00    307.8±1.89ns        ? ?/sec    1.00    308.0±2.35ns        ? ?/sec
concat i32 8192 over 100 arrays                              1.00     94.1±0.91µs        ? ?/sec    1.00     94.2±0.37µs        ? ?/sec
concat i32 nulls 1024                                        1.00    509.9±1.67ns        ? ?/sec    1.01    516.7±2.72ns        ? ?/sec
concat i32 nulls 8192 over 100 arrays                        1.00    100.8±0.34µs        ? ?/sec    1.00    101.2±0.44µs        ? ?/sec
concat run_end i32 logical=1024 physical=128 x8              1.00      3.7±0.01µs        ? ?/sec    1.02      3.8±0.01µs        ? ?/sec
concat run_end i32 logical=8192 physical=1024 x10            1.00     23.7±0.03µs        ? ?/sec    1.01     24.0±0.02µs        ? ?/sec
concat run_end i32 small logical=32 physical=4 x4            1.00    918.5±4.87ns        ? ?/sec    1.00    918.6±5.98ns        ? ?/sec
concat str 1024                                              1.00      6.0±0.02µs        ? ?/sec    1.04      6.2±0.01µs        ? ?/sec
concat str 8192 over 100 arrays                              1.01     49.0±0.47ms        ? ?/sec    1.00     48.6±0.46ms        ? ?/sec
concat str nulls 1024                                        1.01      3.3±0.00µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
concat str nulls 8192 over 100 arrays                        1.00     23.6±0.21ms        ? ?/sec    1.07     25.1±0.28ms        ? ?/sec
concat str_dict 1024                                         1.00      2.0±0.01µs        ? ?/sec    1.01      2.1±0.01µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=12 count=12    1.00    201.5±0.88µs        ? ?/sec    1.04    209.2±2.86µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=16 count=12    1.00    208.0±1.09µs        ? ?/sec    1.02    212.6±2.97µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=24 count=12    1.00    214.6±1.17µs        ? ?/sec    1.02    218.1±3.02µs        ? ?/sec
concat str_dict_sparse 1024                                  1.02      8.6±0.08µs        ? ?/sec    1.00      8.4±0.01µs        ? ?/sec
concat struct with int32 and dicts size=1024 count=2         1.00      4.8±0.02µs        ? ?/sec    1.01      4.8±0.02µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0        1.00     24.7±0.14µs        ? ?/sec    1.10     27.1±0.55µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0.2      1.00     25.7±0.26µs        ? ?/sec    1.08     27.7±0.49µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0          1.00     50.7±0.13µs        ? ?/sec    1.01     51.2±0.39µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0.2        1.00     51.7±0.21µs        ? ?/sec    1.02     52.8±0.55µs        ? ?/sec
concat utf8_view str_len=128 null_density=0                  1.00     51.3±0.17µs        ? ?/sec    1.01     52.0±0.31µs        ? ?/sec
concat utf8_view str_len=128 null_density=0.2                1.00     52.4±0.17µs        ? ?/sec    1.00     52.6±0.26µs        ? ?/sec
concat utf8_view str_len=20 null_density=0                   1.00     50.8±0.11µs        ? ?/sec    1.02     51.7±0.30µs        ? ?/sec
concat utf8_view str_len=20 null_density=0.2                 1.00     51.9±0.15µs        ? ?/sec    1.01     52.4±0.71µs        ? ?/sec

Per-runner information
concatenate_kernel — shard 1/1

Node: gk3-benchmark-cluster-nap-17zlehta-9030ffee-twwq

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

uname:

Linux bench-c6675306574-4541-rqs47 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench concatenate_kernel
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
Resource Usage

base (merge-base)

Metric Value
Wall time 335.1s
Peak memory 327.2 MiB
Avg memory 76.5 MiB
CPU user 307.2s
CPU sys 22.9s
Peak spill 0 B

branch

Metric Value
Wall time 325.1s
Peak memory 314.1 MiB
Avg memory 77.1 MiB
CPU user 304.7s
CPU sys 18.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: take_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: interleave_kernels

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark interleave_kernels
shards: 1
Details
group                                                                                        base                                   changed
-----                                                                                        ----                                   -------
interleave bool(0.0) 100 [0..100, 100..230, 450..1000]                                       1.00    308.4±0.88ns        ? ?/sec    1.01    310.5±0.91ns        ? ?/sec
interleave bool(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                             1.00  1742.6±12.30ns        ? ?/sec    1.02  1770.8±18.68ns        ? ?/sec
interleave bool(0.0) 1024 [0..100, 100..230, 450..1000]                                      1.00  1725.7±12.56ns        ? ?/sec    1.01  1743.2±14.21ns        ? ?/sec
interleave bool(0.0) 400 [0..100, 100..230, 450..1000]                                       1.01   780.2±12.45ns        ? ?/sec    1.00    772.1±5.88ns        ? ?/sec
interleave bool(0.1) 100 [0..100, 100..230, 450..1000]                                       1.00    521.0±6.55ns        ? ?/sec    1.01    527.9±8.77ns        ? ?/sec
interleave bool(0.1) 1024 [0..100, 100..230, 450..1000, 0..1000]                             1.00      3.7±0.02µs        ? ?/sec    1.00      3.6±0.01µs        ? ?/sec
interleave bool(0.1) 1024 [0..100, 100..230, 450..1000]                                      1.00      3.6±0.03µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
interleave bool(0.1) 400 [0..100, 100..230, 450..1000]                                       1.00  1533.9±15.60ns        ? ?/sec    1.01  1542.1±16.05ns        ? ?/sec
interleave dict(20, 0.0) 100 [0..100, 100..230, 450..1000]                                   1.00    625.0±4.78ns        ? ?/sec    1.00    627.1±3.43ns        ? ?/sec
interleave dict(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                         1.01  1843.1±13.07ns        ? ?/sec    1.00  1827.3±11.25ns        ? ?/sec
interleave dict(20, 0.0) 1024 [0..100, 100..230, 450..1000]                                  1.00   1799.3±4.58ns        ? ?/sec    1.00  1806.2±12.91ns        ? ?/sec
interleave dict(20, 0.0) 400 [0..100, 100..230, 450..1000]                                   1.00   1004.2±6.29ns        ? ?/sec    1.00   1006.2±5.60ns        ? ?/sec
interleave dict_distinct 100                                                                 1.03      2.0±0.01µs        ? ?/sec    1.00   1988.9±6.56ns        ? ?/sec
interleave dict_distinct 1024                                                                1.06      6.6±0.02µs        ? ?/sec    1.00      6.3±0.01µs        ? ?/sec
interleave dict_distinct 2048                                                                1.00      3.5±0.02µs        ? ?/sec    1.00      3.5±0.02µs        ? ?/sec
interleave dict_sparse(20, 0.0) 100 [0..100, 100..230, 450..1000]                            1.01   1536.6±5.11ns        ? ?/sec    1.00   1523.2±2.61ns        ? ?/sec
interleave dict_sparse(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                  1.01      3.1±0.01µs        ? ?/sec    1.00      3.0±0.01µs        ? ?/sec
interleave dict_sparse(20, 0.0) 1024 [0..100, 100..230, 450..1000]                           1.01      2.8±0.01µs        ? ?/sec    1.00      2.7±0.01µs        ? ?/sec
interleave dict_sparse(20, 0.0) 400 [0..100, 100..230, 450..1000]                            1.00   1926.6±7.00ns        ? ?/sec    1.00   1919.7±5.21ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 100 [0..100, 100..230, 450..1000]                 1.02    499.9±5.28ns        ? ?/sec    1.00    489.8±2.46ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]       1.00      3.0±0.01µs        ? ?/sec    1.00      3.0±0.00µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 1024 [0..100, 100..230, 450..1000]                1.00      2.9±0.00µs        ? ?/sec    1.01      3.0±0.01µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 400 [0..100, 100..230, 450..1000]                 1.01   1283.2±7.64ns        ? ?/sec    1.00   1264.4±4.63ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 100 [0..100, 100..230, 450..1000]                 1.00      2.3±0.05µs        ? ?/sec    1.00      2.3±0.04µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 1024 [0..100, 100..230, 450..1000, 0..1000]       1.00     19.1±0.49µs        ? ?/sec    1.00     19.1±0.46µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 1024 [0..100, 100..230, 450..1000]                1.00     19.1±0.49µs        ? ?/sec    1.00     19.1±0.46µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 400 [0..100, 100..230, 450..1000]                 1.00      7.7±0.18µs        ? ?/sec    1.00      7.7±0.18µs        ? ?/sec
interleave i32(0.0) 100 [0..100, 100..230, 450..1000]                                        1.00    212.6±1.97ns        ? ?/sec    1.00    212.5±2.01ns        ? ?/sec
interleave i32(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                              1.00    958.1±4.18ns        ? ?/sec    1.00    959.1±3.78ns        ? ?/sec
interleave i32(0.0) 1024 [0..100, 100..230, 450..1000]                                       1.00    952.8±4.17ns        ? ?/sec    1.00    949.2±3.70ns        ? ?/sec
interleave i32(0.0) 400 [0..100, 100..230, 450..1000]                                        1.01    466.1±4.08ns        ? ?/sec    1.00    463.7±3.30ns        ? ?/sec
interleave i32(0.5) 100 [0..100, 100..230, 450..1000]                                        1.01    441.7±5.74ns        ? ?/sec    1.00    439.1±4.62ns        ? ?/sec
interleave i32(0.5) 1024 [0..100, 100..230, 450..1000, 0..1000]                              1.00      2.9±0.01µs        ? ?/sec    1.00      2.9±0.01µs        ? ?/sec
interleave i32(0.5) 1024 [0..100, 100..230, 450..1000]                                       1.00      2.9±0.01µs        ? ?/sec    1.02      2.9±0.01µs        ? ?/sec
interleave i32(0.5) 400 [0..100, 100..230, 450..1000]                                        1.01   1259.5±8.41ns        ? ?/sec    1.00   1250.6±5.61ns        ? ?/sec
interleave list<i64>(0.0,0.0,20) 100 [0..100, 100..230, 450..1000]                           1.00    848.2±6.62ns        ? ?/sec    1.01    857.0±3.93ns        ? ?/sec
interleave list<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.01      6.7±0.04µs        ? ?/sec    1.00      6.6±0.01µs        ? ?/sec
interleave list<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000]                          1.00      6.6±0.01µs        ? ?/sec    1.00      6.6±0.02µs        ? ?/sec
interleave list<i64>(0.0,0.0,20) 400 [0..100, 100..230, 450..1000]                           1.01      2.8±0.01µs        ? ?/sec    1.00      2.8±0.00µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 100 [0..100, 100..230, 450..1000]                           1.00      2.5±0.01µs        ? ?/sec    1.00      2.5±0.01µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.00     20.2±0.04µs        ? ?/sec    1.00     20.3±0.07µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000]                          1.00     20.5±0.06µs        ? ?/sec    1.00     20.6±0.08µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 400 [0..100, 100..230, 450..1000]                           1.00      8.2±0.02µs        ? ?/sec    1.00      8.2±0.02µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 100 [0..100, 100..230, 450..1000]                      1.00      2.3±0.01µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000, 0..1000]            1.02     14.6±0.03µs        ? ?/sec    1.00     14.4±0.03µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000]                     1.01     14.4±0.03µs        ? ?/sec    1.00     14.2±0.02µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 400 [0..100, 100..230, 450..1000]                      1.01      6.3±0.01µs        ? ?/sec    1.00      6.2±0.01µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 100 [0..100, 100..230, 450..1000]                      1.00      3.6±0.01µs        ? ?/sec    1.07      3.9±0.02µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000, 0..1000]            1.00     25.1±0.14µs        ? ?/sec    1.08     27.0±0.24µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000]                     1.00     25.3±0.14µs        ? ?/sec    1.07     27.1±0.25µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 400 [0..100, 100..230, 450..1000]                      1.00     10.7±0.04µs        ? ?/sec    1.07     11.4±0.10µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 100 [0..100, 100..230, 450..1000]              1.00      2.4±0.01µs        ? ?/sec    1.01      2.4±0.01µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 1024 [0..100, 100..230, 450..1000, 0..1000]    1.00      5.9±0.02µs        ? ?/sec    1.00      5.9±0.03µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 1024 [0..100, 100..230, 450..1000]             1.00      5.7±0.01µs        ? ?/sec    1.01      5.7±0.03µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 400 [0..100, 100..230, 450..1000]              1.00      2.8±0.01µs        ? ?/sec    1.01      2.9±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 100 [0..100, 100..230, 450..1000]                          1.00      2.5±0.01µs        ? ?/sec    1.00      2.5±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 1024 [0..100, 100..230, 450..1000, 0..1000]                1.00     18.8±0.01µs        ? ?/sec    1.01     19.0±0.04µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 1024 [0..100, 100..230, 450..1000]                         1.00     18.8±0.05µs        ? ?/sec    1.01     18.9±0.08µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 400 [0..100, 100..230, 450..1000]                          1.00      7.8±0.01µs        ? ?/sec    1.00      7.8±0.02µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 100 [0..100, 100..230, 450..1000]                          1.00      2.6±0.00µs        ? ?/sec    1.00      2.6±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 1024 [0..100, 100..230, 450..1000, 0..1000]                1.01     19.3±0.03µs        ? ?/sec    1.00     19.2±0.03µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 1024 [0..100, 100..230, 450..1000]                         1.00     18.9±0.03µs        ? ?/sec    1.00     18.9±0.03µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 400 [0..100, 100..230, 450..1000]                          1.00      7.8±0.01µs        ? ?/sec    1.00      7.8±0.02µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 100 [0..100, 100..230, 450..1000]                1.00      3.5±0.01µs        ? ?/sec    1.01      3.5±0.01µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 1024 [0..100, 100..230, 450..1000, 0..1000]      1.00     19.7±0.02µs        ? ?/sec    1.00     19.8±0.06µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 1024 [0..100, 100..230, 450..1000]               1.00     19.3±0.02µs        ? ?/sec    1.00     19.3±0.06µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 400 [0..100, 100..230, 450..1000]                1.00      8.6±0.01µs        ? ?/sec    1.02      8.8±0.02µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 100 [0..100, 100..230, 450..1000]                           1.00      2.8±0.00µs        ? ?/sec    1.02      2.8±0.01µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.00     18.4±0.02µs        ? ?/sec    1.01     18.5±0.06µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 1024 [0..100, 100..230, 450..1000]                          1.00     18.2±0.02µs        ? ?/sec    1.00     18.1±0.06µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 400 [0..100, 100..230, 450..1000]                           1.00      7.8±0.01µs        ? ?/sec    1.00      7.8±0.02µs        ? ?/sec
interleave str(20, 0.0) 100 [0..100, 100..230, 450..1000]                                    1.00    600.0±1.40ns        ? ?/sec    1.00    598.4±0.78ns        ? ?/sec
interleave str(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                          1.00      4.6±0.01µs        ? ?/sec    1.01      4.6±0.00µs        ? ?/sec
interleave str(20, 0.0) 1024 [0..100, 100..230, 450..1000]                                   1.00      4.6±0.01µs        ? ?/sec    1.00      4.6±0.01µs        ? ?/sec
interleave str(20, 0.0) 400 [0..100, 100..230, 450..1000]                                    1.00   1892.5±3.02ns        ? ?/sec    1.00   1886.2±2.86ns        ? ?/sec
interleave str(20, 0.5) 100 [0..100, 100..230, 450..1000]                                    1.00    739.7±1.32ns        ? ?/sec    1.00    740.2±1.32ns        ? ?/sec
interleave str(20, 0.5) 1024 [0..100, 100..230, 450..1000, 0..1000]                          1.00      5.9±0.02µs        ? ?/sec    1.00      5.9±0.01µs        ? ?/sec
interleave str(20, 0.5) 1024 [0..100, 100..230, 450..1000]                                   1.00      5.9±0.02µs        ? ?/sec    1.00      5.9±0.01µs        ? ?/sec
interleave str(20, 0.5) 400 [0..100, 100..230, 450..1000]                                    1.00      2.5±0.01µs        ? ?/sec    1.00      2.5±0.01µs        ? ?/sec
interleave str_view(0.0) 100 [0..100, 100..230, 450..1000]                                   1.00    484.7±6.83ns        ? ?/sec    1.00    483.5±1.17ns        ? ?/sec
interleave str_view(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                         1.02      2.3±0.02µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
interleave str_view(0.0) 1024 [0..100, 100..230, 450..1000]                                  1.01      2.3±0.01µs        ? ?/sec    1.00      2.2±0.01µs        ? ?/sec
interleave str_view(0.0) 400 [0..100, 100..230, 450..1000]                                   1.00   1055.0±8.20ns        ? ?/sec    1.00   1051.1±2.50ns        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 100 [0..100, 100..230, 450..1000]                       1.02    644.0±2.79ns        ? ?/sec    1.00    631.6±6.09ns        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]             1.01      2.2±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 1024 [0..100, 100..230, 450..1000]                      1.04      2.2±0.00µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 400 [0..100, 100..230, 450..1000]                       1.05   1216.0±3.36ns        ? ?/sec    1.00  1155.4±10.60ns        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 100 [0..100, 100..230, 450..1000]                   1.02   1040.5±1.99ns        ? ?/sec    1.00   1019.9±3.31ns        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]         1.00      5.8±0.01µs        ? ?/sec    1.00      5.8±0.02µs        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 1024 [0..100, 100..230, 450..1000]                  1.00      5.8±0.01µs        ? ?/sec    1.00      5.8±0.01µs        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 400 [0..100, 100..230, 450..1000]                   1.00      2.6±0.00µs        ? ?/sec    1.00      2.6±0.00µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 100 [0..100, 100..230, 450..1000]              1.00   1394.6±4.02ns        ? ?/sec    1.00   1394.8±7.91ns        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 1024 [0..100, 100..230, 450..1000, 0..1000]    1.00      9.6±0.02µs        ? ?/sec    1.00      9.6±0.02µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 1024 [0..100, 100..230, 450..1000]             1.00      9.5±0.03µs        ? ?/sec    1.00      9.5±0.07µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 400 [0..100, 100..230, 450..1000]              1.00      4.0±0.01µs        ? ?/sec    1.00      4.1±0.01µs        ? ?/sec
list_ranges/primitive/15/no_nulls                                                            1.00     29.9±0.06µs        ? ?/sec    1.02     30.6±0.56µs        ? ?/sec
list_ranges/primitive/15/nulls                                                               1.00     87.2±0.48µs        ? ?/sec    1.00     87.3±0.52µs        ? ?/sec
list_ranges/struct/15/no_nulls                                                               1.00    131.0±0.12µs        ? ?/sec    1.00    131.2±0.32µs        ? ?/sec
list_ranges/struct/15/nulls                                                                  1.00    428.8±0.36µs        ? ?/sec    1.01    431.8±0.83µs        ? ?/sec

Per-runner information
interleave_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-1ltj1dko-fe0a3f66-5ms7

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

uname:

Linux bench-c6675305990-4538-wtjhq 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench interleave_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 960.2s
Peak memory 21.0 MiB
Avg memory 19.8 MiB
CPU user 953.9s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 950.2s
Peak memory 20.2 MiB
Avg memory 18.7 MiB
CPU user 947.1s
CPU sys 0.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: take_kernels

Comparing rich-T-kid/mutable-array-data-fallible (e2861aa) to a1e8df8 (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1
Details
group                                                                       base                                   changed
-----                                                                       ----                                   -------
take bool 1024                                                              1.00    604.5±0.68ns        ? ?/sec    1.01    608.5±1.45ns        ? ?/sec
take bool 512                                                               1.00    351.0±0.89ns        ? ?/sec    1.00    350.0±0.51ns        ? ?/sec
take bool null indices 1024                                                 1.00   727.3±11.75ns        ? ?/sec    1.17    849.7±2.22ns        ? ?/sec
take bool null values 1024                                                  1.00   1083.2±1.04ns        ? ?/sec    1.00   1081.7±0.76ns        ? ?/sec
take bool null values null indices 1024                                     1.00   1124.1±0.76ns        ? ?/sec    1.00   1125.6±1.27ns        ? ?/sec
take check bounds i32 1024                                                  1.02    687.2±0.95ns        ? ?/sec    1.00    672.4±1.28ns        ? ?/sec
take check bounds i32 512                                                   1.02    466.2±1.23ns        ? ?/sec    1.00    456.0±1.03ns        ? ?/sec
take check bounds i32 null indices 1024                                     1.00    937.4±0.98ns        ? ?/sec    1.00    935.0±1.18ns        ? ?/sec
take check bounds i32 null indices out of bounds 1024                       1.00  1667.1±18.02ns        ? ?/sec    1.10  1840.2±41.72ns        ? ?/sec
take dense union 1024                                                       1.01      7.8±0.02µs        ? ?/sec    1.00      7.7±0.02µs        ? ?/sec
take dense union 512                                                        1.00      5.1±0.02µs        ? ?/sec    1.01      5.1±0.02µs        ? ?/sec
take fixed_size_list<i32>[22] 1024                                          1.00      3.3±0.00µs        ? ?/sec    1.04      3.4±0.00µs        ? ?/sec
take fixed_size_list<i32>[22] null indices 1024                             1.02      6.3±0.01µs        ? ?/sec    1.00      6.2±0.00µs        ? ?/sec
take fixed_size_list<i32>[22] null values 1024                              1.00      7.4±0.01µs        ? ?/sec    1.01      7.5±0.00µs        ? ?/sec
take fixed_size_list<i32>[8] 1024                                           1.00      2.5±0.00µs        ? ?/sec    1.00      2.5±0.00µs        ? ?/sec
take fixed_size_list<i32>[8] null indices 1024                              1.04      4.2±0.01µs        ? ?/sec    1.00      4.0±0.00µs        ? ?/sec
take fixed_size_list<i32>[8] null values 1024                               1.01      5.2±0.00µs        ? ?/sec    1.00      5.2±0.00µs        ? ?/sec
take fsb value len: 12, indices: 1024                                       1.00   1725.2±0.84ns        ? ?/sec    1.00   1722.1±1.17ns        ? ?/sec
take fsb value len: 12, null values, indices: 1024                          1.00      2.3±0.00µs        ? ?/sec    1.00      2.3±0.00µs        ? ?/sec
take fsb value optimized len: 16, indices: 1024                             1.00    588.0±1.07ns        ? ?/sec    1.01    591.5±1.59ns        ? ?/sec
take fsb value optimized len: 16, null values, indices: 1024                1.00   1180.2±1.79ns        ? ?/sec    1.00   1185.8±1.79ns        ? ?/sec
take i32 1024                                                               1.03    535.5±1.17ns        ? ?/sec    1.00    521.7±0.99ns        ? ?/sec
take i32 512                                                                1.02    357.8±0.98ns        ? ?/sec    1.00    351.6±1.20ns        ? ?/sec
take i32 null indices 1024                                                  1.00    859.8±0.98ns        ? ?/sec    1.00    861.7±5.85ns        ? ?/sec
take i32 null values 1024                                                   1.00   1118.9±1.93ns        ? ?/sec    1.01   1124.6±1.98ns        ? ?/sec
take i32 null values null indices 1024                                      1.00   1538.9±1.84ns        ? ?/sec    1.05   1609.4±2.70ns        ? ?/sec
take list i32 1024                                                          1.00      4.9±0.06µs        ? ?/sec    1.01      5.0±0.05µs        ? ?/sec
take list i32 512                                                           1.00      2.7±0.03µs        ? ?/sec    1.00      2.7±0.02µs        ? ?/sec
take list i32 null indices 1024                                             1.00      3.3±0.11µs        ? ?/sec    1.01      3.3±0.12µs        ? ?/sec
take list i32 null values 1024                                              1.00      3.9±0.11µs        ? ?/sec    1.01      4.0±0.12µs        ? ?/sec
take list i32 null values null indices 1024                                 1.00      6.9±0.04µs        ? ?/sec    1.12      7.7±0.05µs        ? ?/sec
take listview i32 1024                                                      1.00    992.5±1.43ns        ? ?/sec    1.17   1158.1±2.20ns        ? ?/sec
take listview i32 512                                                       1.05    635.1±2.77ns        ? ?/sec    1.00    603.2±1.32ns        ? ?/sec
take listview i32 null indices 1024                                         1.00   1617.2±3.19ns        ? ?/sec    1.03   1671.6±1.50ns        ? ?/sec
take listview i32 null values 1024                                          1.00   1585.3±2.87ns        ? ?/sec    1.06   1675.5±3.90ns        ? ?/sec
take listview i32 null values null indices 1024                             1.00      2.4±0.00µs        ? ?/sec    1.03      2.4±0.00µs        ? ?/sec
take map<str, i32> 1024                                                     1.00     33.4±0.08µs        ? ?/sec    1.42     47.4±0.23µs        ? ?/sec
take map<str, i32> 512                                                      1.00     19.1±0.03µs        ? ?/sec    1.36     25.9±0.11µs        ? ?/sec
take map<str, i32> null indices 1024                                        1.00     19.7±0.02µs        ? ?/sec    1.36     26.7±0.08µs        ? ?/sec
take map<str, i32> null values 1024                                         1.00     20.0±0.01µs        ? ?/sec    1.32     26.4±0.08µs        ? ?/sec
take primitive run logical len: 1024, physical len: 512, indices: 1024      1.01     18.5±0.02µs        ? ?/sec    1.00     18.3±0.02µs        ? ?/sec
take sparse union 1024                                                      1.00      7.7±0.01µs        ? ?/sec    1.01      7.8±0.01µs        ? ?/sec
take sparse union 512                                                       1.01      4.8±0.01µs        ? ?/sec    1.00      4.8±0.01µs        ? ?/sec
take str 1024                                                               1.00      8.0±0.00µs        ? ?/sec    1.02      8.2±0.00µs        ? ?/sec
take str 512                                                                1.00      3.7±0.00µs        ? ?/sec    1.03      3.8±0.00µs        ? ?/sec
take str null indices 1024                                                  1.00      4.3±0.06µs        ? ?/sec    1.01      4.4±0.06µs        ? ?/sec
take str null indices 512                                                   1.00      2.1±0.03µs        ? ?/sec    1.01      2.1±0.03µs        ? ?/sec
take str null values 1024                                                   1.00      4.5±0.05µs        ? ?/sec    1.00      4.5±0.05µs        ? ?/sec
take str null values null indices 1024                                      1.00      3.1±0.02µs        ? ?/sec    1.05      3.3±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 128, indices: 1024         1.00     23.6±0.03µs        ? ?/sec    1.00     23.5±0.01µs        ? ?/sec
take string run logical len: 1024, physical len: 512, indices: 1024         1.00     24.0±0.02µs        ? ?/sec    1.00     24.1±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 512, null indices: 1024    1.00     16.3±0.06µs        ? ?/sec    1.00     16.3±0.06µs        ? ?/sec
take stringview 1024                                                        1.01    661.3±0.58ns        ? ?/sec    1.00    657.6±0.46ns        ? ?/sec
take stringview 512                                                         1.00    402.4±0.35ns        ? ?/sec    1.01    406.3±0.39ns        ? ?/sec
take stringview null indices 1024                                           1.01    856.3±1.84ns        ? ?/sec    1.00    846.8±0.55ns        ? ?/sec
take stringview null indices 512                                            1.00    504.6±0.69ns        ? ?/sec    1.02    514.0±1.82ns        ? ?/sec
take stringview null values 1024                                            1.00   1233.3±4.74ns        ? ?/sec    1.00   1232.6±0.94ns        ? ?/sec
take stringview null values null indices 1024                               1.00   1499.5±5.10ns        ? ?/sec    1.06   1586.6±3.40ns        ? ?/sec
take_record_batch 5 primitive cols no nulls 1024                            1.00      2.9±0.01µs        ? ?/sec    1.01      2.9±0.00µs        ? ?/sec
take_record_batch 6 string/binary cols no nulls 1024                        1.00     26.7±0.04µs        ? ?/sec    1.01     27.0±0.04µs        ? ?/sec
take_record_batch 7 mixed cols null values 1024                             1.00     13.8±0.09µs        ? ?/sec    1.00     13.8±0.19µs        ? ?/sec
take_record_batch 7 mixed cols null values null indices 1024                1.00     13.8±0.07µs        ? ?/sec    1.00     13.8±0.07µs        ? ?/sec

Per-runner information
take_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-17zlehta-9030ffee-twwq

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

uname:

Linux bench-c6675307639-4542-92bkc 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench take_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 595.1s
Peak memory 19.7 MiB
Avg memory 16.1 MiB
CPU user 588.4s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 590.1s
Peak memory 19.8 MiB
Avg memory 16.1 MiB
CPU user 587.7s
CPU sys 0.0s
Peak spill 0 B

File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark concatenate_kernel

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: zip_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark zip_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark filter_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: concatenate_kernel

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark interleave_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: filter_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark filter_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark mutable_array

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark take_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: interleave_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark interleave_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark merge_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: mutable_array

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark mutable_array
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: take_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: mutable_array

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark mutable_array
shards: 1
Details
group                                 base                                   changed
-----                                 ----                                   -------
mutable dict 1024                     1.08     53.9±1.40µs        ? ?/sec    1.00     49.9±2.80µs        ? ?/sec
mutable dict short slices 1024        1.52     18.0±0.09µs        ? ?/sec    1.00     11.8±0.02µs        ? ?/sec
mutable str 1024                      1.00     47.0±2.91ms        ? ?/sec    1.00     47.0±2.82ms        ? ?/sec
mutable str nulls 1024                1.01     15.7±1.18ms        ? ?/sec    1.00     15.6±1.17ms        ? ?/sec
mutable str_view 1024                 2.20    310.4±7.65µs        ? ?/sec    1.00    141.0±4.20µs        ? ?/sec
mutable str_view short slices 1024    1.45     16.8±0.13µs        ? ?/sec    1.00     11.5±0.04µs        ? ?/sec

Per-runner information
mutable_array — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-r7t5

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

uname:

Linux bench-c6884427706-5098-gnkmj 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench mutable_array
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
Resource Usage

base (merge-base)

Metric Value
Wall time 70.0s
Peak memory 164.3 MiB
Avg memory 89.8 MiB
CPU user 44.1s
CPU sys 21.6s
Peak spill 0 B

branch

Metric Value
Wall time 60.0s
Peak memory 166.0 MiB
Avg memory 78.7 MiB
CPU user 38.5s
CPU sys 18.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: concatenate_kernel

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1
Details
group                                                        base                                   changed
-----                                                        ----                                   -------
concat 1024 arrays boolean 4                                 1.00     11.0±0.35µs        ? ?/sec    1.00     11.0±0.34µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 1                   1.00     15.9±0.07µs        ? ?/sec    1.00     15.8±0.08µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 nulls 1             1.00     17.8±0.21µs        ? ?/sec    1.00     17.9±0.22µs        ? ?/sec
concat 1024 arrays i32 4                                     1.00      7.1±0.02µs        ? ?/sec    1.01      7.2±0.07µs        ? ?/sec
concat 1024 arrays str 4                                     1.00     22.9±0.05µs        ? ?/sec    1.02     23.4±0.10µs        ? ?/sec
concat boolean 1024                                          1.02    218.7±4.81ns        ? ?/sec    1.00    215.1±1.76ns        ? ?/sec
concat boolean 8192 over 100 arrays                          1.00      3.8±0.08µs        ? ?/sec    1.00      3.8±0.09µs        ? ?/sec
concat boolean nulls 1024                                    1.00   364.4±10.19ns        ? ?/sec    1.02    373.1±2.23ns        ? ?/sec
concat boolean nulls 8192 over 100 arrays                    1.00      8.3±0.25µs        ? ?/sec    1.00      8.3±0.24µs        ? ?/sec
concat fixed size lists                                      1.00    236.7±4.66µs        ? ?/sec    1.00    237.6±3.84µs        ? ?/sec
concat i32 1024                                              1.00    308.9±2.78ns        ? ?/sec    1.00    307.7±2.11ns        ? ?/sec
concat i32 8192 over 100 arrays                              1.00    101.1±0.66µs        ? ?/sec    1.01    102.4±0.66µs        ? ?/sec
concat i32 nulls 1024                                        1.02    518.4±5.01ns        ? ?/sec    1.00    509.7±2.25ns        ? ?/sec
concat i32 nulls 8192 over 100 arrays                        1.00    108.0±0.99µs        ? ?/sec    1.01    108.8±1.05µs        ? ?/sec
concat run_end i32 logical=1024 physical=128 x8              1.00      3.8±0.02µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
concat run_end i32 logical=8192 physical=1024 x10            1.00     23.6±0.02µs        ? ?/sec    1.02     24.1±0.02µs        ? ?/sec
concat run_end i32 small logical=32 physical=4 x4            1.00    916.4±4.51ns        ? ?/sec    1.00    916.1±6.90ns        ? ?/sec
concat str 1024                                              1.08      6.4±0.02µs        ? ?/sec    1.00      5.9±0.01µs        ? ?/sec
concat str 8192 over 100 arrays                              1.04     52.8±0.72ms        ? ?/sec    1.00     50.7±0.68ms        ? ?/sec
concat str nulls 1024                                        1.00      3.2±0.00µs        ? ?/sec    1.00      3.2±0.00µs        ? ?/sec
concat str nulls 8192 over 100 arrays                        1.05     26.7±0.38ms        ? ?/sec    1.00     25.5±0.49ms        ? ?/sec
concat str_dict 1024                                         1.01      2.1±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=12 count=12    1.00    205.1±1.21µs        ? ?/sec    1.01    207.7±0.93µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=16 count=12    1.00    206.9±0.91µs        ? ?/sec    1.04    216.0±1.73µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=24 count=12    1.00    216.2±1.65µs        ? ?/sec    1.01    217.9±1.24µs        ? ?/sec
concat str_dict_sparse 1024                                  1.03      8.7±0.20µs        ? ?/sec    1.00      8.4±0.02µs        ? ?/sec
concat struct with int32 and dicts size=1024 count=2         1.00      4.9±0.02µs        ? ?/sec    1.00      4.9±0.01µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0        1.00     25.4±0.56µs        ? ?/sec    1.07     27.1±0.68µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0.2      1.00     27.9±0.80µs        ? ?/sec    1.01     28.1±0.56µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0          1.00     51.9±0.50µs        ? ?/sec    1.00     52.0±0.96µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0.2        1.00     53.0±0.53µs        ? ?/sec    1.01     53.4±0.80µs        ? ?/sec
concat utf8_view str_len=128 null_density=0                  1.03     53.4±1.59µs        ? ?/sec    1.00     51.6±0.46µs        ? ?/sec
concat utf8_view str_len=128 null_density=0.2                1.02     53.9±0.86µs        ? ?/sec    1.00     52.8±0.50µs        ? ?/sec
concat utf8_view str_len=20 null_density=0                   1.02     52.4±0.61µs        ? ?/sec    1.00     51.4±0.48µs        ? ?/sec
concat utf8_view str_len=20 null_density=0.2                 1.01     53.4±0.67µs        ? ?/sec    1.00     53.0±0.69µs        ? ?/sec

Per-runner information
concatenate_kernel — shard 1/1

Node: gk3-benchmark-cluster-nap-1mlzckca-c7d66e25-q7f2

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

uname:

Linux bench-c6884424804-5095-xn9rn 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench concatenate_kernel
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
Resource Usage

base (merge-base)

Metric Value
Wall time 330.1s
Peak memory 310.8 MiB
Avg memory 30.2 MiB
CPU user 308.7s
CPU sys 15.5s
Peak spill 0 B

branch

Metric Value
Wall time 325.1s
Peak memory 311.0 MiB
Avg memory 74.1 MiB
CPU user 305.6s
CPU sys 14.8s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: merge_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark merge_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark concatenate_kernel

@Rich-T-kid
Rich-T-kid marked this pull request as draft November 14, 2026 21:48
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: take_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1
Details
group                                                                       base                                   changed
-----                                                                       ----                                   -------
take bool 1024                                                              1.01    605.3±1.10ns        ? ?/sec    1.00    599.9±0.43ns        ? ?/sec
take bool 512                                                               1.01    350.1±0.94ns        ? ?/sec    1.00    347.2±0.49ns        ? ?/sec
take bool null indices 1024                                                 1.00    724.3±1.50ns        ? ?/sec    1.09    791.2±1.01ns        ? ?/sec
take bool null values 1024                                                  1.00   1084.3±2.53ns        ? ?/sec    1.00   1081.2±0.95ns        ? ?/sec
take bool null values null indices 1024                                     1.00   1122.3±5.74ns        ? ?/sec    1.01   1136.7±1.13ns        ? ?/sec
take check bounds i32 1024                                                  1.06    692.8±1.70ns        ? ?/sec    1.00    651.4±1.40ns        ? ?/sec
take check bounds i32 512                                                   1.05    471.1±1.39ns        ? ?/sec    1.00    449.5±1.51ns        ? ?/sec
take check bounds i32 null indices 1024                                     1.01    945.4±2.78ns        ? ?/sec    1.00    935.3±2.80ns        ? ?/sec
take check bounds i32 null indices out of bounds 1024                       1.07  1823.4±17.70ns        ? ?/sec    1.00  1698.2±39.20ns        ? ?/sec
take dense union 1024                                                       1.00      7.5±0.02µs        ? ?/sec    1.01      7.6±0.02µs        ? ?/sec
take dense union 512                                                        1.00      5.0±0.01µs        ? ?/sec    1.04      5.2±0.01µs        ? ?/sec
take fixed_size_list<i32>[22] 1024                                          1.00      3.2±0.01µs        ? ?/sec    1.07      3.5±0.01µs        ? ?/sec
take fixed_size_list<i32>[22] null indices 1024                             1.00      6.3±0.01µs        ? ?/sec    1.02      6.4±0.02µs        ? ?/sec
take fixed_size_list<i32>[22] null values 1024                              1.00      7.3±0.01µs        ? ?/sec    1.03      7.5±0.01µs        ? ?/sec
take fixed_size_list<i32>[8] 1024                                           1.00      2.6±0.01µs        ? ?/sec    1.02      2.6±0.01µs        ? ?/sec
take fixed_size_list<i32>[8] null indices 1024                              1.00      4.2±0.01µs        ? ?/sec    1.01      4.3±0.01µs        ? ?/sec
take fixed_size_list<i32>[8] null values 1024                               1.00      5.2±0.01µs        ? ?/sec    1.01      5.3±0.01µs        ? ?/sec
take fsb value len: 12, indices: 1024                                       1.08   1863.3±1.28ns        ? ?/sec    1.00   1725.7±5.95ns        ? ?/sec
take fsb value len: 12, null values, indices: 1024                          1.04      2.5±0.00µs        ? ?/sec    1.00      2.4±0.00µs        ? ?/sec
take fsb value optimized len: 16, indices: 1024                             1.00    654.1±0.89ns        ? ?/sec    1.00    654.2±1.02ns        ? ?/sec
take fsb value optimized len: 16, null values, indices: 1024                1.00   1176.9±1.67ns        ? ?/sec    1.00   1180.0±5.60ns        ? ?/sec
take i32 1024                                                               1.05    533.5±1.33ns        ? ?/sec    1.00    510.3±0.74ns        ? ?/sec
take i32 512                                                                1.01    353.0±1.14ns        ? ?/sec    1.00    348.6±0.87ns        ? ?/sec
take i32 null indices 1024                                                  1.01    862.9±3.05ns        ? ?/sec    1.00    856.1±3.44ns        ? ?/sec
take i32 null values 1024                                                   1.02   1123.2±4.75ns        ? ?/sec    1.00   1102.9±2.09ns        ? ?/sec
take i32 null values null indices 1024                                      1.00   1545.0±3.89ns        ? ?/sec    1.04   1601.2±3.22ns        ? ?/sec
take list i32 1024                                                          1.00      4.9±0.01µs        ? ?/sec    1.00      4.9±0.01µs        ? ?/sec
take list i32 512                                                           1.00      2.7±0.00µs        ? ?/sec    1.00      2.7±0.01µs        ? ?/sec
take list i32 null indices 1024                                             1.00      3.8±0.21µs        ? ?/sec    1.02      3.8±0.27µs        ? ?/sec
take list i32 null values 1024                                              1.00      4.5±0.21µs        ? ?/sec    1.00      4.5±0.24µs        ? ?/sec
take list i32 null values null indices 1024                                 1.00      6.9±0.05µs        ? ?/sec    1.06      7.3±0.07µs        ? ?/sec
take listview i32 1024                                                      1.00    994.5±5.02ns        ? ?/sec    1.12   1118.2±2.14ns        ? ?/sec
take listview i32 512                                                       1.02    620.9±1.76ns        ? ?/sec    1.00    610.6±0.98ns        ? ?/sec
take listview i32 null indices 1024                                         1.00   1619.9±4.48ns        ? ?/sec    1.03   1670.9±5.15ns        ? ?/sec
take listview i32 null values 1024                                          1.00   1548.2±1.76ns        ? ?/sec    1.06   1642.1±4.56ns        ? ?/sec
take listview i32 null values null indices 1024                             1.00      2.4±0.00µs        ? ?/sec    1.02      2.4±0.01µs        ? ?/sec
take map<str, i32> 1024                                                     1.08     33.4±0.09µs        ? ?/sec    1.00     30.8±0.07µs        ? ?/sec
take map<str, i32> 512                                                      1.06     19.0±0.06µs        ? ?/sec    1.00     18.0±0.03µs        ? ?/sec
take map<str, i32> null indices 1024                                        1.05     19.5±0.03µs        ? ?/sec    1.00     18.5±0.04µs        ? ?/sec
take map<str, i32> null values 1024                                         1.06     19.8±0.02µs        ? ?/sec    1.00     18.7±0.03µs        ? ?/sec
take primitive run logical len: 1024, physical len: 512, indices: 1024      1.00     17.9±0.01µs        ? ?/sec    1.01     18.2±0.01µs        ? ?/sec
take sparse union 1024                                                      1.00      7.7±0.02µs        ? ?/sec    1.00      7.8±0.01µs        ? ?/sec
take sparse union 512                                                       1.02      4.8±0.01µs        ? ?/sec    1.00      4.7±0.01µs        ? ?/sec
take str 1024                                                               1.00      8.0±0.01µs        ? ?/sec    1.02      8.2±0.01µs        ? ?/sec
take str 512                                                                1.00      3.7±0.00µs        ? ?/sec    1.03      3.8±0.00µs        ? ?/sec
take str null indices 1024                                                  1.00      4.3±0.06µs        ? ?/sec    1.03      4.4±0.07µs        ? ?/sec
take str null indices 512                                                   1.00      2.1±0.03µs        ? ?/sec    1.02      2.1±0.04µs        ? ?/sec
take str null values 1024                                                   1.00      4.4±0.05µs        ? ?/sec    1.01      4.5±0.06µs        ? ?/sec
take str null values null indices 1024                                      1.00      3.1±0.02µs        ? ?/sec    1.06      3.3±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 128, indices: 1024         1.00     23.3±0.02µs        ? ?/sec    1.01     23.5±0.03µs        ? ?/sec
take string run logical len: 1024, physical len: 512, indices: 1024         1.00     23.7±0.02µs        ? ?/sec    1.02     24.1±0.09µs        ? ?/sec
take string run logical len: 1024, physical len: 512, null indices: 1024    1.00     16.3±0.06µs        ? ?/sec    1.00     16.3±0.07µs        ? ?/sec
take stringview 1024                                                        1.00    663.6±2.36ns        ? ?/sec    1.00    665.2±1.14ns        ? ?/sec
take stringview 512                                                         1.00    402.5±0.57ns        ? ?/sec    1.02    409.8±0.41ns        ? ?/sec
take stringview null indices 1024                                           1.00    849.5±1.85ns        ? ?/sec    1.00    848.5±2.44ns        ? ?/sec
take stringview null indices 512                                            1.00    504.6±1.19ns        ? ?/sec    1.01    508.0±1.02ns        ? ?/sec
take stringview null values 1024                                            1.00   1227.9±0.77ns        ? ?/sec    1.00   1228.8±1.57ns        ? ?/sec
take stringview null values null indices 1024                               1.00   1499.6±2.45ns        ? ?/sec    1.05   1567.6±2.24ns        ? ?/sec
take_record_batch 5 primitive cols no nulls 1024                            1.00      2.9±0.00µs        ? ?/sec    1.00      2.9±0.01µs        ? ?/sec
take_record_batch 6 string/binary cols no nulls 1024                        1.00     26.8±0.02µs        ? ?/sec    1.02     27.2±0.04µs        ? ?/sec
take_record_batch 7 mixed cols null values 1024                             1.00     13.8±0.08µs        ? ?/sec    1.00     13.7±0.08µs        ? ?/sec
take_record_batch 7 mixed cols null values null indices 1024                1.05     13.9±0.04µs        ? ?/sec    1.00     13.2±0.04µs        ? ?/sec

Per-runner information
take_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-vlt2

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

uname:

Linux bench-c6884428426-5099-nzmms 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench take_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 595.1s
Peak memory 19.6 MiB
Avg memory 16.2 MiB
CPU user 590.5s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 595.1s
Peak memory 19.9 MiB
Avg memory 16.2 MiB
CPU user 593.7s
CPU sys 0.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: concatenate_kernel

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@Rich-T-kid

Copy link
Copy Markdown
Contributor Author

run benchmark take_kernels

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: interleave_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark interleave_kernels
shards: 1
Details
group                                                                                        base                                   changed
-----                                                                                        ----                                   -------
interleave bool(0.0) 100 [0..100, 100..230, 450..1000]                                       1.00    308.9±0.88ns        ? ?/sec    1.01    311.7±3.38ns        ? ?/sec
interleave bool(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                             1.01  1749.3±11.35ns        ? ?/sec    1.00  1734.3±11.58ns        ? ?/sec
interleave bool(0.0) 1024 [0..100, 100..230, 450..1000]                                      1.00  1759.5±20.00ns        ? ?/sec    1.00  1756.5±20.83ns        ? ?/sec
interleave bool(0.0) 400 [0..100, 100..230, 450..1000]                                       1.00   773.0±13.20ns        ? ?/sec    1.00   770.9±13.18ns        ? ?/sec
interleave bool(0.1) 100 [0..100, 100..230, 450..1000]                                       1.00   530.9±10.44ns        ? ?/sec    1.00    529.5±9.73ns        ? ?/sec
interleave bool(0.1) 1024 [0..100, 100..230, 450..1000, 0..1000]                             1.00      3.6±0.03µs        ? ?/sec    1.00      3.6±0.02µs        ? ?/sec
interleave bool(0.1) 1024 [0..100, 100..230, 450..1000]                                      1.00      3.6±0.03µs        ? ?/sec    1.01      3.7±0.02µs        ? ?/sec
interleave bool(0.1) 400 [0..100, 100..230, 450..1000]                                       1.00  1541.1±16.12ns        ? ?/sec    1.00  1540.4±17.86ns        ? ?/sec
interleave dict(20, 0.0) 100 [0..100, 100..230, 450..1000]                                   1.00    634.2±4.30ns        ? ?/sec    1.00    635.4±2.97ns        ? ?/sec
interleave dict(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                         1.00   1834.1±6.45ns        ? ?/sec    1.00  1833.1±10.79ns        ? ?/sec
interleave dict(20, 0.0) 1024 [0..100, 100..230, 450..1000]                                  1.00   1801.9±8.70ns        ? ?/sec    1.00  1809.8±10.16ns        ? ?/sec
interleave dict(20, 0.0) 400 [0..100, 100..230, 450..1000]                                   1.00   1021.2±5.32ns        ? ?/sec    1.00   1018.8±3.47ns        ? ?/sec
interleave dict_distinct 100                                                                 1.00      2.0±0.01µs        ? ?/sec    1.04      2.1±0.00µs        ? ?/sec
interleave dict_distinct 1024                                                                1.00      6.3±0.01µs        ? ?/sec    1.05      6.6±0.01µs        ? ?/sec
interleave dict_distinct 2048                                                                1.01      3.5±0.02µs        ? ?/sec    1.00      3.5±0.02µs        ? ?/sec
interleave dict_sparse(20, 0.0) 100 [0..100, 100..230, 450..1000]                            1.00   1517.7±2.91ns        ? ?/sec    1.01   1533.7±2.79ns        ? ?/sec
interleave dict_sparse(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                  1.00      3.0±0.01µs        ? ?/sec    1.01      3.1±0.01µs        ? ?/sec
interleave dict_sparse(20, 0.0) 1024 [0..100, 100..230, 450..1000]                           1.00      2.7±0.01µs        ? ?/sec    1.00      2.7±0.01µs        ? ?/sec
interleave dict_sparse(20, 0.0) 400 [0..100, 100..230, 450..1000]                            1.00   1919.0±6.31ns        ? ?/sec    1.01   1932.5±2.43ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 100 [0..100, 100..230, 450..1000]                 1.00    505.2±3.19ns        ? ?/sec    1.01    507.9±0.81ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]       1.01      3.0±0.00µs        ? ?/sec    1.00      3.0±0.00µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 1024 [0..100, 100..230, 450..1000]                1.01      3.0±0.01µs        ? ?/sec    1.00      3.0±0.00µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.0,0.0) 400 [0..100, 100..230, 450..1000]                 1.03   1322.6±7.24ns        ? ?/sec    1.00   1283.3±2.92ns        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 100 [0..100, 100..230, 450..1000]                 1.00      2.3±0.04µs        ? ?/sec    1.00      2.3±0.04µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 1024 [0..100, 100..230, 450..1000, 0..1000]       1.00     19.6±0.37µs        ? ?/sec    1.00     19.6±0.38µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 1024 [0..100, 100..230, 450..1000]                1.00     19.7±0.39µs        ? ?/sec    1.00     19.6±0.38µs        ? ?/sec
interleave fixed_size_list<i64,5>(0.1,0.1) 400 [0..100, 100..230, 450..1000]                 1.01      7.9±0.14µs        ? ?/sec    1.00      7.9±0.14µs        ? ?/sec
interleave i32(0.0) 100 [0..100, 100..230, 450..1000]                                        1.00    211.9±2.36ns        ? ?/sec    1.00    212.1±2.47ns        ? ?/sec
interleave i32(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                              1.00    952.2±5.01ns        ? ?/sec    1.01    962.2±3.55ns        ? ?/sec
interleave i32(0.0) 1024 [0..100, 100..230, 450..1000]                                       1.00    950.0±5.86ns        ? ?/sec    1.00    954.0±3.58ns        ? ?/sec
interleave i32(0.0) 400 [0..100, 100..230, 450..1000]                                        1.00    470.8±4.51ns        ? ?/sec    1.11    522.1±2.30ns        ? ?/sec
interleave i32(0.5) 100 [0..100, 100..230, 450..1000]                                        1.00    447.1±4.10ns        ? ?/sec    1.01    452.3±4.79ns        ? ?/sec
interleave i32(0.5) 1024 [0..100, 100..230, 450..1000, 0..1000]                              1.00      2.8±0.01µs        ? ?/sec    1.00      2.9±0.01µs        ? ?/sec
interleave i32(0.5) 1024 [0..100, 100..230, 450..1000]                                       1.00      2.9±0.01µs        ? ?/sec    1.02      2.9±0.01µs        ? ?/sec
interleave i32(0.5) 400 [0..100, 100..230, 450..1000]                                        1.00   1267.2±9.08ns        ? ?/sec    1.05   1332.3±5.90ns        ? ?/sec
interleave list<i64>(0.0,0.0,20) 100 [0..100, 100..230, 450..1000]                           1.01    866.4±4.15ns        ? ?/sec    1.00    858.8±5.31ns        ? ?/sec
interleave list<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.00      6.7±0.01µs        ? ?/sec    1.01      6.7±0.01µs        ? ?/sec
interleave list<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000]                          1.00      6.6±0.01µs        ? ?/sec    1.00      6.6±0.01µs        ? ?/sec
interleave list<i64>(0.0,0.0,20) 400 [0..100, 100..230, 450..1000]                           1.00      2.8±0.01µs        ? ?/sec    1.00      2.8±0.01µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 100 [0..100, 100..230, 450..1000]                           1.00      2.5±0.01µs        ? ?/sec    1.02      2.5±0.01µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.00     20.1±0.13µs        ? ?/sec    1.01     20.2±0.11µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000]                          1.00     20.3±0.14µs        ? ?/sec    1.00     20.4±0.14µs        ? ?/sec
interleave list<i64>(0.1,0.1,20) 400 [0..100, 100..230, 450..1000]                           1.00      8.2±0.05µs        ? ?/sec    1.01      8.2±0.05µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 100 [0..100, 100..230, 450..1000]                      1.01      2.3±0.01µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000, 0..1000]            1.01     14.5±0.02µs        ? ?/sec    1.00     14.3±0.04µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 1024 [0..100, 100..230, 450..1000]                     1.01     14.3±0.03µs        ? ?/sec    1.00     14.2±0.04µs        ? ?/sec
interleave list_view<i64>(0.0,0.0,20) 400 [0..100, 100..230, 450..1000]                      1.01      6.3±0.01µs        ? ?/sec    1.00      6.2±0.03µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 100 [0..100, 100..230, 450..1000]                      1.00      3.7±0.02µs        ? ?/sec    1.02      3.8±0.02µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000, 0..1000]            1.00     25.0±0.13µs        ? ?/sec    1.03     25.7±0.21µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 1024 [0..100, 100..230, 450..1000]                     1.00     25.1±0.15µs        ? ?/sec    1.03     25.8±0.21µs        ? ?/sec
interleave list_view<i64>(0.1,0.1,20) 400 [0..100, 100..230, 450..1000]                      1.00     10.7±0.05µs        ? ?/sec    1.02     10.9±0.08µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 100 [0..100, 100..230, 450..1000]              1.01      2.4±0.00µs        ? ?/sec    1.00      2.4±0.01µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 1024 [0..100, 100..230, 450..1000, 0..1000]    1.00      5.9±0.01µs        ? ?/sec    1.00      5.9±0.05µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 1024 [0..100, 100..230, 450..1000]             1.00      5.7±0.01µs        ? ?/sec    1.01      5.7±0.01µs        ? ?/sec
interleave list_view_overlapping<i64>(80x,20) 400 [0..100, 100..230, 450..1000]              1.00      2.8±0.01µs        ? ?/sec    1.00      2.8±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 100 [0..100, 100..230, 450..1000]                          1.01      2.5±0.01µs        ? ?/sec    1.00      2.5±0.00µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 1024 [0..100, 100..230, 450..1000, 0..1000]                1.01     19.0±0.05µs        ? ?/sec    1.00     18.8±0.02µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 1024 [0..100, 100..230, 450..1000]                         1.00     18.8±0.06µs        ? ?/sec    1.00     18.8±0.06µs        ? ?/sec
interleave map<utf8,i64>(0.0,5,8) 400 [0..100, 100..230, 450..1000]                          1.00      7.9±0.02µs        ? ?/sec    1.00      7.9±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 100 [0..100, 100..230, 450..1000]                          1.00      2.6±0.01µs        ? ?/sec    1.00      2.6±0.01µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 1024 [0..100, 100..230, 450..1000, 0..1000]                1.01     19.4±0.03µs        ? ?/sec    1.00     19.2±0.04µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 1024 [0..100, 100..230, 450..1000]                         1.01     19.0±0.05µs        ? ?/sec    1.00     18.9±0.04µs        ? ?/sec
interleave map<utf8,i64>(0.1,5,8) 400 [0..100, 100..230, 450..1000]                          1.04      8.1±0.03µs        ? ?/sec    1.00      7.8±0.01µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 100 [0..100, 100..230, 450..1000]                1.00      3.6±0.01µs        ? ?/sec    1.00      3.6±0.01µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 1024 [0..100, 100..230, 450..1000, 0..1000]      1.00     19.8±0.07µs        ? ?/sec    1.00     19.8±0.05µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 1024 [0..100, 100..230, 450..1000]               1.00     19.4±0.06µs        ? ?/sec    1.00     19.3±0.06µs        ? ?/sec
interleave ree_i32<dict<u32,utf8>>(64 runs) 400 [0..100, 100..230, 450..1000]                1.00      8.7±0.02µs        ? ?/sec    1.00      8.7±0.02µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 100 [0..100, 100..230, 450..1000]                           1.00      2.8±0.01µs        ? ?/sec    1.04      2.9±0.01µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 1024 [0..100, 100..230, 450..1000, 0..1000]                 1.00     18.5±0.07µs        ? ?/sec    1.01     18.6±0.06µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 1024 [0..100, 100..230, 450..1000]                          1.00     17.9±0.07µs        ? ?/sec    1.01     18.1±0.06µs        ? ?/sec
interleave ree_i32<i64>(64 runs) 400 [0..100, 100..230, 450..1000]                           1.00      7.8±0.02µs        ? ?/sec    1.01      7.9±0.02µs        ? ?/sec
interleave str(20, 0.0) 100 [0..100, 100..230, 450..1000]                                    1.00    596.9±1.16ns        ? ?/sec    1.00    595.3±2.75ns        ? ?/sec
interleave str(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                          1.00      4.6±0.01µs        ? ?/sec    1.00      4.6±0.01µs        ? ?/sec
interleave str(20, 0.0) 1024 [0..100, 100..230, 450..1000]                                   1.00      4.6±0.01µs        ? ?/sec    1.00      4.6±0.01µs        ? ?/sec
interleave str(20, 0.0) 400 [0..100, 100..230, 450..1000]                                    1.00   1896.1±3.76ns        ? ?/sec    1.00   1903.0±3.46ns        ? ?/sec
interleave str(20, 0.5) 100 [0..100, 100..230, 450..1000]                                    1.00    743.5±0.95ns        ? ?/sec    1.00    743.7±2.59ns        ? ?/sec
interleave str(20, 0.5) 1024 [0..100, 100..230, 450..1000, 0..1000]                          1.00      5.9±0.01µs        ? ?/sec    1.00      5.9±0.02µs        ? ?/sec
interleave str(20, 0.5) 1024 [0..100, 100..230, 450..1000]                                   1.00      5.9±0.03µs        ? ?/sec    1.00      5.9±0.01µs        ? ?/sec
interleave str(20, 0.5) 400 [0..100, 100..230, 450..1000]                                    1.00      2.4±0.01µs        ? ?/sec    1.01      2.5±0.01µs        ? ?/sec
interleave str_view(0.0) 100 [0..100, 100..230, 450..1000]                                   1.01    483.2±5.42ns        ? ?/sec    1.00    479.5±2.33ns        ? ?/sec
interleave str_view(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]                         1.00      2.3±0.01µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
interleave str_view(0.0) 1024 [0..100, 100..230, 450..1000]                                  1.00      2.2±0.02µs        ? ?/sec    1.01      2.3±0.01µs        ? ?/sec
interleave str_view(0.0) 400 [0..100, 100..230, 450..1000]                                   1.00   1049.1±5.93ns        ? ?/sec    1.01   1057.3±5.17ns        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 100 [0..100, 100..230, 450..1000]                       1.00   638.6±10.48ns        ? ?/sec    1.03    658.5±5.10ns        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]             1.00      2.1±0.01µs        ? ?/sec    1.02      2.2±0.01µs        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 1024 [0..100, 100..230, 450..1000]                      1.00      2.1±0.01µs        ? ?/sec    1.03      2.2±0.00µs        ? ?/sec
interleave struct(i32(0.0), i32(0.0) 400 [0..100, 100..230, 450..1000]                       1.00   1143.3±9.54ns        ? ?/sec    1.02   1171.6±7.34ns        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 100 [0..100, 100..230, 450..1000]                   1.00  1035.9±10.57ns        ? ?/sec    1.00   1037.9±2.88ns        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 1024 [0..100, 100..230, 450..1000, 0..1000]         1.00      5.8±0.01µs        ? ?/sec    1.00      5.9±0.01µs        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 1024 [0..100, 100..230, 450..1000]                  1.00      5.8±0.02µs        ? ?/sec    1.00      5.8±0.01µs        ? ?/sec
interleave struct(i32(0.0), str(20, 0.0) 400 [0..100, 100..230, 450..1000]                   1.00      2.6±0.01µs        ? ?/sec    1.00      2.6±0.01µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 100 [0..100, 100..230, 450..1000]              1.00   1388.6±7.82ns        ? ?/sec    1.01   1405.6±5.61ns        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 1024 [0..100, 100..230, 450..1000, 0..1000]    1.01      9.7±0.03µs        ? ?/sec    1.00      9.6±0.01µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 1024 [0..100, 100..230, 450..1000]             1.01      9.6±0.03µs        ? ?/sec    1.00      9.5±0.02µs        ? ?/sec
interleave struct(str(20, 0.0), str(20, 0.0)) 400 [0..100, 100..230, 450..1000]              1.00      4.1±0.02µs        ? ?/sec    1.00      4.0±0.01µs        ? ?/sec
list_ranges/primitive/15/no_nulls                                                            1.00     29.6±0.03µs        ? ?/sec    1.02     30.2±0.04µs        ? ?/sec
list_ranges/primitive/15/nulls                                                               1.00     86.0±0.56µs        ? ?/sec    1.01     86.9±0.48µs        ? ?/sec
list_ranges/struct/15/no_nulls                                                               1.00    131.2±0.60µs        ? ?/sec    1.00    131.0±0.35µs        ? ?/sec
list_ranges/struct/15/nulls                                                                  1.00    431.1±1.26µs        ? ?/sec    1.00    429.4±0.55µs        ? ?/sec

Per-runner information
interleave_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-xhn5

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

uname:

Linux bench-c6884426926-5097-47cbt 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench interleave_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 960.2s
Peak memory 20.1 MiB
Avg memory 19.1 MiB
CPU user 956.9s
CPU sys 0.1s
Peak spill 0 B

branch

Metric Value
Wall time 955.2s
Peak memory 20.8 MiB
Avg memory 19.9 MiB
CPU user 949.1s
CPU sys 0.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: concatenate_kernel

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark concatenate_kernel
shards: 1
Details
group                                                        base                                   changed
-----                                                        ----                                   -------
concat 1024 arrays boolean 4                                 1.00     10.9±0.31µs        ? ?/sec    1.01     11.0±0.28µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 1                   1.00     15.9±0.07µs        ? ?/sec    1.00     15.8±0.08µs        ? ?/sec
concat 1024 arrays fixed size list f32x3 nulls 1             1.00     17.7±0.21µs        ? ?/sec    1.00     17.7±0.19µs        ? ?/sec
concat 1024 arrays i32 4                                     1.00      7.1±0.01µs        ? ?/sec    1.02      7.3±0.05µs        ? ?/sec
concat 1024 arrays str 4                                     1.00     23.7±0.08µs        ? ?/sec    1.01     23.8±0.10µs        ? ?/sec
concat boolean 1024                                          1.02    219.3±4.89ns        ? ?/sec    1.00    214.7±2.24ns        ? ?/sec
concat boolean 8192 over 100 arrays                          1.03      3.8±0.10µs        ? ?/sec    1.00      3.7±0.10µs        ? ?/sec
concat boolean nulls 1024                                    1.00   368.2±10.74ns        ? ?/sec    1.01    371.0±2.52ns        ? ?/sec
concat boolean nulls 8192 over 100 arrays                    1.00      8.2±0.28µs        ? ?/sec    1.01      8.3±0.21µs        ? ?/sec
concat fixed size lists                                      1.00    229.8±3.00µs        ? ?/sec    1.03    236.5±4.66µs        ? ?/sec
concat i32 1024                                              1.00    310.5±2.64ns        ? ?/sec    1.00    310.7±5.08ns        ? ?/sec
concat i32 8192 over 100 arrays                              1.10    105.1±0.44µs        ? ?/sec    1.00     95.9±0.77µs        ? ?/sec
concat i32 nulls 1024                                        1.01    517.0±3.31ns        ? ?/sec    1.00    513.6±5.56ns        ? ?/sec
concat i32 nulls 8192 over 100 arrays                        1.09    111.1±1.46µs        ? ?/sec    1.00    102.0±1.10µs        ? ?/sec
concat run_end i32 logical=1024 physical=128 x8              1.00      3.7±0.01µs        ? ?/sec    1.03      3.8±0.01µs        ? ?/sec
concat run_end i32 logical=8192 physical=1024 x10            1.00     23.7±0.01µs        ? ?/sec    1.00     23.7±0.02µs        ? ?/sec
concat run_end i32 small logical=32 physical=4 x4            1.00    914.0±3.66ns        ? ?/sec    1.00    912.5±4.69ns        ? ?/sec
concat str 1024                                              1.00      5.9±0.01µs        ? ?/sec    1.08      6.4±0.01µs        ? ?/sec
concat str 8192 over 100 arrays                              1.00     52.4±0.61ms        ? ?/sec    1.03     53.9±0.74ms        ? ?/sec
concat str nulls 1024                                        1.00      3.2±0.01µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
concat str nulls 8192 over 100 arrays                        1.00     25.2±0.36ms        ? ?/sec    1.07     27.0±0.57ms        ? ?/sec
concat str_dict 1024                                         1.00      2.1±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=12 count=12    1.00    200.8±1.28µs        ? ?/sec    1.01    202.9±0.90µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=16 count=12    1.01    208.5±1.51µs        ? ?/sec    1.00    206.2±1.00µs        ? ?/sec
concat str_dict_slice rows=682 values_per_key=24 count=12    1.00    215.2±1.25µs        ? ?/sec    1.01    217.4±1.55µs        ? ?/sec
concat str_dict_sparse 1024                                  1.01      8.5±0.04µs        ? ?/sec    1.00      8.4±0.05µs        ? ?/sec
concat struct with int32 and dicts size=1024 count=2         1.00      4.9±0.02µs        ? ?/sec    1.00      4.9±0.02µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0        1.00     25.0±0.48µs        ? ?/sec    1.00     25.0±0.46µs        ? ?/sec
concat utf8_view all_inline str_len=12 null_density=0.2      1.02     27.3±0.51µs        ? ?/sec    1.00     26.8±0.53µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0          1.00     51.2±0.45µs        ? ?/sec    1.07     54.8±0.55µs        ? ?/sec
concat utf8_view mixed str_len=3..20 null_density=0.2        1.00     52.5±0.53µs        ? ?/sec    1.01     52.9±0.97µs        ? ?/sec
concat utf8_view str_len=128 null_density=0                  1.00     52.0±0.51µs        ? ?/sec    1.00     52.1±0.48µs        ? ?/sec
concat utf8_view str_len=128 null_density=0.2                1.01     53.7±0.61µs        ? ?/sec    1.00     53.3±0.67µs        ? ?/sec
concat utf8_view str_len=20 null_density=0                   1.05     54.8±0.59µs        ? ?/sec    1.00     52.0±0.60µs        ? ?/sec
concat utf8_view str_len=20 null_density=0.2                 1.00     52.7±0.62µs        ? ?/sec    1.00     52.9±0.40µs        ? ?/sec

Per-runner information
concatenate_kernel — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-vlt2

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

uname:

Linux bench-c6884621794-5101-s7962 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench concatenate_kernel
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
Resource Usage

base (merge-base)

Metric Value
Wall time 325.1s
Peak memory 318.1 MiB
Avg memory 29.5 MiB
CPU user 305.0s
CPU sys 15.1s
Peak spill 0 B

branch

Metric Value
Wall time 325.1s
Peak memory 303.3 MiB
Avg memory 74.4 MiB
CPU user 304.6s
CPU sys 15.8s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark starting (GKE) | trigger

Target: take_kernels

Sharding factor: 1 (1 workers).

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1

Results will be posted when all workers finish.


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: filter_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark filter_kernels
shards: 1
Details
group                                                                                  base                                   changed
-----                                                                                  ----                                   -------
filter boolean (kept 1/2)                                                              1.00      8.6±0.01µs        ? ?/sec    1.00      8.6±0.03µs        ? ?/sec
filter boolean high selectivity (kept 1023/1024)                                       1.00      2.4±0.00µs        ? ?/sec    1.02      2.5±0.01µs        ? ?/sec
filter boolean low selectivity (kept 1/1024)                                           1.01    679.1±0.91ns        ? ?/sec    1.00    674.8±0.97ns        ? ?/sec
filter boolean w NULLs (kept 1/2)                                                      1.01     17.2±0.01µs        ? ?/sec    1.00     17.1±0.02µs        ? ?/sec
filter boolean w NULLs high selectivity (kept 1023/1024)                               1.00      4.8±0.01µs        ? ?/sec    1.01      4.9±0.01µs        ? ?/sec
filter boolean w NULLs low selectivity (kept 1/1024)                                   1.01   1172.9±2.14ns        ? ?/sec    1.00   1164.4±1.33ns        ? ?/sec
filter context boolean (kept 1/2)                                                      1.00      8.5±0.01µs        ? ?/sec    1.00      8.5±0.01µs        ? ?/sec
filter context boolean high selectivity (kept 1023/1024)                               1.00   1563.1±9.40ns        ? ?/sec    1.01   1573.4±9.77ns        ? ?/sec
filter context boolean low selectivity (kept 1/1024)                                   1.00    213.2±1.29ns        ? ?/sec    1.02    216.6±3.56ns        ? ?/sec
filter context boolean w NULLs (kept 1/2)                                              1.01     17.1±0.05µs        ? ?/sec    1.00     16.9±0.01µs        ? ?/sec
filter context boolean w NULLs high selectivity (kept 1023/1024)                       1.00      3.2±0.02µs        ? ?/sec    1.01      3.2±0.02µs        ? ?/sec
filter context boolean w NULLs low selectivity (kept 1/1024)                           1.00    392.7±1.40ns        ? ?/sec    1.00    393.8±1.91ns        ? ?/sec
filter context decimal128 (kept 1/2)                                                   1.00     20.6±0.17µs        ? ?/sec    1.00     20.6±0.10µs        ? ?/sec
filter context decimal128 high selectivity (kept 1023/1024)                            1.04     20.7±0.40µs        ? ?/sec    1.00     20.0±0.30µs        ? ?/sec
filter context decimal128 low selectivity (kept 1/1024)                                1.02    146.5±0.58ns        ? ?/sec    1.00    144.3±0.71ns        ? ?/sec
filter context f32 w NULLs (kept 1/2)                                                  1.00     20.1±0.05µs        ? ?/sec    1.10     22.1±0.05µs        ? ?/sec
filter context f32 w NULLs high selectivity (kept 1023/1024)                           1.00      5.4±0.01µs        ? ?/sec    1.01      5.4±0.01µs        ? ?/sec
filter context f32 w NULLs low selectivity (kept 1/1024)                               1.00    316.3±2.13ns        ? ?/sec    1.01    319.6±3.42ns        ? ?/sec
filter context fixed_size_list<i32> w NULLs (kept 1/2)                                 1.00    697.7±3.97µs        ? ?/sec    1.00    694.9±4.09µs        ? ?/sec
filter context fixed_size_list<i32> w NULLs high selectivity (kept 1023/1024)          1.01     75.0±1.34µs        ? ?/sec    1.00     74.4±2.23µs        ? ?/sec
filter context fixed_size_list<i32> w NULLs low selectivity (kept 1/1024)              1.00      4.1±0.01µs        ? ?/sec    1.03      4.2±0.02µs        ? ?/sec
filter context fixed_size_list<struct<i64, utf8>> (kept 1/2)                           1.03  1653.5±61.88µs        ? ?/sec    1.00  1602.3±35.22µs        ? ?/sec
filter context fixed_size_list<struct<i64, utf8>> high selectivity (kept 1023/1024)    1.00   913.0±58.63µs        ? ?/sec    1.10  1000.4±47.60µs        ? ?/sec
filter context fixed_size_list<struct<i64, utf8>> low selectivity (kept 1/1024)        1.02      8.0±0.04µs        ? ?/sec    1.00      7.9±0.03µs        ? ?/sec
filter context fsb with value length 20 (kept 1/2)                                     1.00     46.7±0.44µs        ? ?/sec    1.00     46.8±0.56µs        ? ?/sec
filter context fsb with value length 20 high selectivity (kept 1023/1024)              1.03     26.1±1.00µs        ? ?/sec    1.00     25.4±0.51µs        ? ?/sec
filter context fsb with value length 20 low selectivity (kept 1/1024)                  1.01    295.4±1.20ns        ? ?/sec    1.00    293.0±1.37ns        ? ?/sec
filter context fsb with value length 20 w NULLs (kept 1/2)                             1.03     56.8±0.82µs        ? ?/sec    1.00     55.3±0.47µs        ? ?/sec
filter context fsb with value length 20 w NULLs high selectivity (kept 1023/1024)      1.00     26.6±0.75µs        ? ?/sec    1.02     27.1±0.48µs        ? ?/sec
filter context fsb with value length 20 w NULLs low selectivity (kept 1/1024)          1.01    486.5±3.04ns        ? ?/sec    1.00    482.9±3.43ns        ? ?/sec
filter context fsb with value length 5 (kept 1/2)                                      1.00     46.2±0.31µs        ? ?/sec    1.01     46.7±0.16µs        ? ?/sec
filter context fsb with value length 5 high selectivity (kept 1023/1024)               1.00      4.7±0.01µs        ? ?/sec    1.02      4.8±0.02µs        ? ?/sec
filter context fsb with value length 5 low selectivity (kept 1/1024)                   1.01    254.6±0.93ns        ? ?/sec    1.00    252.3±2.02ns        ? ?/sec
filter context fsb with value length 5 w NULLs (kept 1/2)                              1.00     52.9±0.04µs        ? ?/sec    1.03     54.7±0.46µs        ? ?/sec
filter context fsb with value length 5 w NULLs high selectivity (kept 1023/1024)       1.00      6.6±0.01µs        ? ?/sec    1.00      6.6±0.03µs        ? ?/sec
filter context fsb with value length 5 w NULLs low selectivity (kept 1/1024)           1.01    435.4±2.02ns        ? ?/sec    1.00    429.8±3.43ns        ? ?/sec
filter context fsb with value length 50 (kept 1/2)                                     1.06     97.5±2.78µs        ? ?/sec    1.00     91.9±3.15µs        ? ?/sec
filter context fsb with value length 50 high selectivity (kept 1023/1024)              1.00     82.2±5.61µs        ? ?/sec    1.02     84.2±6.10µs        ? ?/sec
filter context fsb with value length 50 low selectivity (kept 1/1024)                  1.00    319.6±1.17ns        ? ?/sec    1.00    320.1±0.78ns        ? ?/sec
filter context fsb with value length 50 w NULLs (kept 1/2)                             1.01    104.3±3.34µs        ? ?/sec    1.00    103.1±4.21µs        ? ?/sec
filter context fsb with value length 50 w NULLs high selectivity (kept 1023/1024)      1.00     77.6±3.97µs        ? ?/sec    1.11     86.2±5.42µs        ? ?/sec
filter context fsb with value length 50 w NULLs low selectivity (kept 1/1024)          1.02    519.5±3.67ns        ? ?/sec    1.00    507.6±3.06ns        ? ?/sec
filter context i32 (kept 1/2)                                                          1.09     13.5±0.58µs        ? ?/sec    1.00     12.3±0.02µs        ? ?/sec
filter context i32 high selectivity (kept 1023/1024)                                   1.03      3.8±0.01µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
filter context i32 low selectivity (kept 1/1024)                                       1.00    133.6±1.53ns        ? ?/sec    1.03    137.4±2.17ns        ? ?/sec
filter context i32 w NULLs (kept 1/2)                                                  1.01     21.1±0.08µs        ? ?/sec    1.00     20.8±0.03µs        ? ?/sec
filter context i32 w NULLs at end (kept 1/2)                                           1.07     22.4±0.04µs        ? ?/sec    1.00     21.0±0.03µs        ? ?/sec
filter context i32 w NULLs at end high selectivity (kept 1023/1024)                    1.00      5.4±0.01µs        ? ?/sec    1.01      5.4±0.01µs        ? ?/sec
filter context i32 w NULLs high selectivity (kept 1023/1024)                           1.01      5.4±0.02µs        ? ?/sec    1.00      5.4±0.01µs        ? ?/sec
filter context i32 w NULLs low selectivity (kept 1/1024)                               1.00    320.1±2.59ns        ? ?/sec    1.00    319.5±2.40ns        ? ?/sec
filter context i32 w NULLs, only valid (kept 1/4)                                      1.02     16.4±0.14µs        ? ?/sec    1.00     16.2±0.02µs        ? ?/sec
filter context i32 w NULLs, only valid high selectivity (kept 1023/2048)               1.00     20.9±0.04µs        ? ?/sec    1.00     20.9±0.03µs        ? ?/sec
filter context i32 w NULLs, only valid low selectivity (kept 1/2048)                   1.00    226.0±0.39ns        ? ?/sec    1.01    227.6±0.54ns        ? ?/sec
filter context list<i32> w NULLs (kept 1/2)                                            1.00    862.2±6.76µs        ? ?/sec    1.04    896.1±9.07µs        ? ?/sec
filter context list<i32> w NULLs high selectivity (kept 1023/1024)                     1.02    170.2±5.38µs        ? ?/sec    1.00    167.2±5.34µs        ? ?/sec
filter context list<i32> w NULLs low selectivity (kept 1/1024)                         1.03      4.9±0.04µs        ? ?/sec    1.00      4.7±0.04µs        ? ?/sec
filter context list<struct<i64, utf8>> w NULLs (kept 1/2)                              1.00      2.4±0.06ms        ? ?/sec    1.03      2.5±0.04ms        ? ?/sec
filter context list<struct<i64, utf8>> w NULLs high selectivity (kept 1023/1024)       1.00      7.2±0.30ms        ? ?/sec    1.01      7.3±0.24ms        ? ?/sec
filter context list<struct<i64, utf8>> w NULLs low selectivity (kept 1/1024)           1.00     11.0±0.06µs        ? ?/sec    1.01     11.1±0.07µs        ? ?/sec
filter context map<utf8, i64> w NULLs (kept 1/2)                                       1.02      2.3±0.04ms        ? ?/sec    1.00      2.2±0.06ms        ? ?/sec
filter context map<utf8, i64> w NULLs high selectivity (kept 1023/1024)                1.06      6.8±0.15ms        ? ?/sec    1.00      6.4±0.18ms        ? ?/sec
filter context map<utf8, i64> w NULLs low selectivity (kept 1/1024)                    1.05     10.0±0.05µs        ? ?/sec    1.00      9.5±0.04µs        ? ?/sec
filter context mixed string view w NULLs (kept 1/2)                                    1.04     29.9±0.28µs        ? ?/sec    1.00     28.8±0.22µs        ? ?/sec
filter context mixed string view w NULLs high selectivity (kept 1023/1024)             1.05     22.8±0.42µs        ? ?/sec    1.00     21.6±0.36µs        ? ?/sec
filter context mixed string view w NULLs low selectivity (kept 1/1024)                 1.00    322.8±1.78ns        ? ?/sec    1.00    322.6±2.23ns        ? ?/sec
filter context short string view w NULLs (kept 1/2)                                    1.01     29.7±0.42µs        ? ?/sec    1.00     29.3±0.38µs        ? ?/sec
filter context short string view w NULLs high selectivity (kept 1023/1024)             1.00     22.6±0.47µs        ? ?/sec    1.02     22.9±0.56µs        ? ?/sec
filter context short string view w NULLs low selectivity (kept 1/1024)                 1.00    323.6±1.78ns        ? ?/sec    1.01    326.3±1.70ns        ? ?/sec
filter context string dictionary (kept 1/2)                                            1.13     14.2±0.13µs        ? ?/sec    1.00     12.5±0.04µs        ? ?/sec
filter context string dictionary high selectivity (kept 1023/1024)                     1.00      3.7±0.01µs        ? ?/sec    1.01      3.8±0.01µs        ? ?/sec
filter context string dictionary low selectivity (kept 1/1024)                         1.02    198.8±1.88ns        ? ?/sec    1.00    195.9±2.44ns        ? ?/sec
filter context string dictionary w NULLs (kept 1/2)                                    1.00     22.2±0.31µs        ? ?/sec    1.02     22.7±0.17µs        ? ?/sec
filter context string dictionary w NULLs high selectivity (kept 1023/1024)             1.01      5.5±0.01µs        ? ?/sec    1.00      5.5±0.01µs        ? ?/sec
filter context string dictionary w NULLs low selectivity (kept 1/1024)                 1.00    395.4±3.16ns        ? ?/sec    1.00    394.2±3.34ns        ? ?/sec
filter context string w NULLs (kept 1/2)                                               1.01   389.5±10.85µs        ? ?/sec    1.00    384.1±5.92µs        ? ?/sec
filter context string w NULLs high selectivity (kept 1023/1024)                        1.00   406.9±25.37µs        ? ?/sec    1.03   420.2±27.68µs        ? ?/sec
filter context string w NULLs low selectivity (kept 1/1024)                            1.00    678.8±4.94ns        ? ?/sec    1.01    687.1±5.46ns        ? ?/sec
filter context u8 (kept 1/2)                                                           1.00     12.3±0.05µs        ? ?/sec    1.00     12.2±0.39µs        ? ?/sec
filter context u8 high selectivity (kept 1023/1024)                                    1.00   1050.7±3.34ns        ? ?/sec    1.05   1105.8±4.12ns        ? ?/sec
filter context u8 low selectivity (kept 1/1024)                                        1.00    124.4±1.46ns        ? ?/sec    1.02    127.2±2.69ns        ? ?/sec
filter context u8 w NULLs (kept 1/2)                                                   1.00     20.7±0.02µs        ? ?/sec    1.05     21.9±0.65µs        ? ?/sec
filter context u8 w NULLs high selectivity (kept 1023/1024)                            1.00      2.7±0.01µs        ? ?/sec    1.03      2.8±0.01µs        ? ?/sec
filter context u8 w NULLs low selectivity (kept 1/1024)                                1.00    301.6±3.24ns        ? ?/sec    1.00    300.7±2.41ns        ? ?/sec
filter decimal128 (kept 1/2)                                                           1.03     31.9±0.10µs        ? ?/sec    1.00     30.9±0.09µs        ? ?/sec
filter decimal128 high selectivity (kept 1023/1024)                                    1.05     21.9±0.26µs        ? ?/sec    1.00     20.8±0.25µs        ? ?/sec
filter decimal128 low selectivity (kept 1/1024)                                        1.00   1114.3±4.29ns        ? ?/sec    1.00   1114.8±4.31ns        ? ?/sec
filter f32 w NULLs (kept 1/2)                                                          1.00     37.0±0.07µs        ? ?/sec    1.02     37.6±0.05µs        ? ?/sec
filter fixed_size_list<i32> w NULLs (kept 1/2)                                         1.00    696.3±3.39µs        ? ?/sec    1.01    704.2±4.36µs        ? ?/sec
filter fixed_size_list<i32> w NULLs high selectivity (kept 1023/1024)                  1.00     74.0±1.11µs        ? ?/sec    1.06     78.1±2.51µs        ? ?/sec
filter fixed_size_list<i32> w NULLs low selectivity (kept 1/1024)                      1.00      4.2±0.01µs        ? ?/sec    1.03      4.4±0.01µs        ? ?/sec
filter fixed_size_list<struct<i64, utf8>> (kept 1/2)                                   1.04  1635.9±51.29µs        ? ?/sec    1.00  1579.8±60.99µs        ? ?/sec
filter fixed_size_list<struct<i64, utf8>> high selectivity (kept 1023/1024)            1.00   906.8±48.63µs        ? ?/sec    1.04   944.8±67.35µs        ? ?/sec
filter fixed_size_list<struct<i64, utf8>> low selectivity (kept 1/1024)                1.01      8.2±0.04µs        ? ?/sec    1.00      8.1±0.03µs        ? ?/sec
filter fsb with value length 20 (kept 1/2)                                             1.04     62.6±0.27µs        ? ?/sec    1.00     60.1±0.55µs        ? ?/sec
filter fsb with value length 20 high selectivity (kept 1023/1024)                      1.00     24.0±0.36µs        ? ?/sec    1.04     24.9±0.37µs        ? ?/sec
filter fsb with value length 20 low selectivity (kept 1/1024)                          1.00   1180.8±2.66ns        ? ?/sec    1.02   1199.1±4.43ns        ? ?/sec
filter fsb with value length 20 w NULLs (kept 1/2)                                     1.06     71.5±0.49µs        ? ?/sec    1.00     67.3±0.42µs        ? ?/sec
filter fsb with value length 20 w NULLs high selectivity (kept 1023/1024)              1.02     27.3±0.44µs        ? ?/sec    1.00     26.7±0.43µs        ? ?/sec
filter fsb with value length 20 w NULLs low selectivity (kept 1/1024)                  1.00   1703.0±4.73ns        ? ?/sec    1.00   1696.8±6.49ns        ? ?/sec
filter fsb with value length 5 (kept 1/2)                                              1.10     61.5±1.29µs        ? ?/sec    1.00     55.7±0.12µs        ? ?/sec
filter fsb with value length 5 high selectivity (kept 1023/1024)                       1.00      5.5±0.02µs        ? ?/sec    1.00      5.5±0.02µs        ? ?/sec
filter fsb with value length 5 low selectivity (kept 1/1024)                           1.01   1157.3±1.84ns        ? ?/sec    1.00   1140.9±4.73ns        ? ?/sec
filter fsb with value length 5 w NULLs (kept 1/2)                                      1.07     69.3±0.06µs        ? ?/sec    1.00     64.5±0.15µs        ? ?/sec
filter fsb with value length 5 w NULLs high selectivity (kept 1023/1024)               1.00      7.8±0.01µs        ? ?/sec    1.01      7.9±0.02µs        ? ?/sec
filter fsb with value length 5 w NULLs low selectivity (kept 1/1024)                   1.01   1648.5±3.14ns        ? ?/sec    1.00   1632.9±5.61ns        ? ?/sec
filter fsb with value length 50 (kept 1/2)                                             1.07   105.8±25.52µs        ? ?/sec    1.00     99.2±3.51µs        ? ?/sec
filter fsb with value length 50 high selectivity (kept 1023/1024)                      1.00     84.3±4.60µs        ? ?/sec    1.02     85.6±3.84µs        ? ?/sec
filter fsb with value length 50 low selectivity (kept 1/1024)                          1.01   1231.6±3.63ns        ? ?/sec    1.00   1221.2±5.07ns        ? ?/sec
filter fsb with value length 50 w NULLs (kept 1/2)                                     1.00    110.6±3.36µs        ? ?/sec    1.01    112.1±4.58µs        ? ?/sec
filter fsb with value length 50 w NULLs high selectivity (kept 1023/1024)              1.00     85.5±4.95µs        ? ?/sec    1.00     85.4±6.26µs        ? ?/sec
filter fsb with value length 50 w NULLs low selectivity (kept 1/1024)                  1.01   1737.2±5.69ns        ? ?/sec    1.00   1716.7±4.55ns        ? ?/sec
filter i32 (kept 1/2)                                                                  1.03     27.6±0.10µs        ? ?/sec    1.00     26.8±0.07µs        ? ?/sec
filter i32 high selectivity (kept 1023/1024)                                           1.03      4.4±0.02µs        ? ?/sec    1.00      4.3±0.01µs        ? ?/sec
filter i32 low selectivity (kept 1/1024)                                               1.00   1056.2±4.72ns        ? ?/sec    1.09   1146.3±5.22ns        ? ?/sec
filter list<i32> w NULLs (kept 1/2)                                                    1.00    869.3±7.35µs        ? ?/sec    1.03    893.1±9.97µs        ? ?/sec
filter list<i32> w NULLs high selectivity (kept 1023/1024)                             1.00    166.2±4.02µs        ? ?/sec    1.01    167.6±4.12µs        ? ?/sec
filter list<i32> w NULLs low selectivity (kept 1/1024)                                 1.02      5.0±0.01µs        ? ?/sec    1.00      5.0±0.02µs        ? ?/sec
filter list<struct<i64, utf8>> w NULLs (kept 1/2)                                      1.00      2.4±0.04ms        ? ?/sec    1.05      2.5±0.04ms        ? ?/sec
filter list<struct<i64, utf8>> w NULLs high selectivity (kept 1023/1024)               1.00      7.1±0.23ms        ? ?/sec    1.00      7.1±0.25ms        ? ?/sec
filter list<struct<i64, utf8>> w NULLs low selectivity (kept 1/1024)                   1.00     11.3±0.01µs        ? ?/sec    1.00     11.4±0.04µs        ? ?/sec
filter map<utf8, i64> w NULLs (kept 1/2)                                               1.02      2.3±0.04ms        ? ?/sec    1.00      2.2±0.05ms        ? ?/sec
filter map<utf8, i64> w NULLs high selectivity (kept 1023/1024)                        1.00      6.0±0.21ms        ? ?/sec    1.06      6.4±0.27ms        ? ?/sec
filter map<utf8, i64> w NULLs low selectivity (kept 1/1024)                            1.04     10.1±0.02µs        ? ?/sec    1.00      9.7±0.02µs        ? ?/sec
filter optimize (kept 1/2)                                                             1.00     28.0±0.04µs        ? ?/sec    1.01     28.4±0.01µs        ? ?/sec
filter optimize high selectivity (kept 1023/1024)                                      1.00   1501.1±1.82ns        ? ?/sec    1.01   1511.0±1.08ns        ? ?/sec
filter optimize low selectivity (kept 1/1024)                                          1.00    695.1±0.69ns        ? ?/sec    1.00    694.4±0.53ns        ? ?/sec
filter run array (kept 1/2)                                                            1.00    287.3±2.57µs        ? ?/sec    1.01    289.0±1.88µs        ? ?/sec
filter run array high selectivity (kept 1023/1024)                                     1.00    288.8±4.71µs        ? ?/sec    1.00    290.2±4.28µs        ? ?/sec
filter run array low selectivity (kept 1/1024)                                         1.00    236.1±0.98µs        ? ?/sec    1.01    237.9±1.06µs        ? ?/sec
filter single record batch                                                             1.00     28.4±0.05µs        ? ?/sec    1.02     29.0±0.10µs        ? ?/sec
filter u8 (kept 1/2)                                                                   1.00     27.2±0.05µs        ? ?/sec    1.00     27.2±0.06µs        ? ?/sec
filter u8 high selectivity (kept 1023/1024)                                            1.00   1737.1±4.05ns        ? ?/sec    1.01   1760.8±4.32ns        ? ?/sec
filter u8 low selectivity (kept 1/1024)                                                1.00  1028.3±20.12ns        ? ?/sec    1.00  1024.5±13.92ns        ? ?/sec

Per-runner information
filter_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-7j42

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

uname:

Linux bench-c6884425402-5096-nnfw4 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench filter_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 1330.3s
Peak memory 79.2 MiB
Avg memory 31.1 MiB
CPU user 1298.4s
CPU sys 24.7s
Peak spill 0 B

branch

Metric Value
Wall time 1325.3s
Peak memory 77.9 MiB
Avg memory 32.1 MiB
CPU user 1293.4s
CPU sys 25.2s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: take_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark take_kernels
shards: 1
Details
group                                                                       base                                   changed
-----                                                                       ----                                   -------
take bool 1024                                                              1.01    605.0±0.73ns        ? ?/sec    1.00    599.3±0.70ns        ? ?/sec
take bool 512                                                               1.00    348.2±0.63ns        ? ?/sec    1.00    347.2±0.44ns        ? ?/sec
take bool null indices 1024                                                 1.00    723.6±1.27ns        ? ?/sec    1.09    790.3±1.12ns        ? ?/sec
take bool null values 1024                                                  1.00   1082.0±1.00ns        ? ?/sec    1.00   1080.3±0.69ns        ? ?/sec
take bool null values null indices 1024                                     1.00   1124.5±7.78ns        ? ?/sec    1.01   1138.4±3.53ns        ? ?/sec
take check bounds i32 1024                                                  1.06    691.5±1.25ns        ? ?/sec    1.00    651.5±1.21ns        ? ?/sec
take check bounds i32 512                                                   1.05    472.5±1.62ns        ? ?/sec    1.00    449.1±1.30ns        ? ?/sec
take check bounds i32 null indices 1024                                     1.01    943.5±2.01ns        ? ?/sec    1.00    938.3±1.51ns        ? ?/sec
take check bounds i32 null indices out of bounds 1024                       1.09  1826.5±22.34ns        ? ?/sec    1.00  1678.7±17.59ns        ? ?/sec
take dense union 1024                                                       1.04      7.8±0.01µs        ? ?/sec    1.00      7.5±0.01µs        ? ?/sec
take dense union 512                                                        1.00      5.0±0.01µs        ? ?/sec    1.02      5.1±0.01µs        ? ?/sec
take fixed_size_list<i32>[22] 1024                                          1.00      3.2±0.01µs        ? ?/sec    1.06      3.4±0.01µs        ? ?/sec
take fixed_size_list<i32>[22] null indices 1024                             1.01      6.4±0.01µs        ? ?/sec    1.00      6.4±0.01µs        ? ?/sec
take fixed_size_list<i32>[22] null values 1024                              1.00      7.4±0.02µs        ? ?/sec    1.02      7.5±0.01µs        ? ?/sec
take fixed_size_list<i32>[8] 1024                                           1.00      2.6±0.01µs        ? ?/sec    1.03      2.6±0.00µs        ? ?/sec
take fixed_size_list<i32>[8] null indices 1024                              1.00      4.2±0.01µs        ? ?/sec    1.00      4.2±0.01µs        ? ?/sec
take fixed_size_list<i32>[8] null values 1024                               1.01      5.3±0.01µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
take fsb value len: 12, indices: 1024                                       1.07   1862.9±2.67ns        ? ?/sec    1.00   1735.0±1.54ns        ? ?/sec
take fsb value len: 12, null values, indices: 1024                          1.06      2.4±0.00µs        ? ?/sec    1.00      2.3±0.00µs        ? ?/sec
take fsb value optimized len: 16, indices: 1024                             1.00    589.5±0.93ns        ? ?/sec    1.01    593.4±2.77ns        ? ?/sec
take fsb value optimized len: 16, null values, indices: 1024                1.00   1182.0±2.73ns        ? ?/sec    1.00   1186.5±2.01ns        ? ?/sec
take i32 1024                                                               1.05    534.9±1.76ns        ? ?/sec    1.00    510.7±1.19ns        ? ?/sec
take i32 512                                                                1.01    352.6±1.13ns        ? ?/sec    1.00    349.8±1.13ns        ? ?/sec
take i32 null indices 1024                                                  1.01    863.7±4.51ns        ? ?/sec    1.00    855.2±1.79ns        ? ?/sec
take i32 null values 1024                                                   1.02   1125.0±2.62ns        ? ?/sec    1.00   1102.1±2.12ns        ? ?/sec
take i32 null values null indices 1024                                      1.00   1555.6±6.20ns        ? ?/sec    1.03   1602.2±3.40ns        ? ?/sec
take list i32 1024                                                          1.00      4.9±0.01µs        ? ?/sec    1.01      4.9±0.01µs        ? ?/sec
take list i32 512                                                           1.00      2.7±0.00µs        ? ?/sec    1.01      2.7±0.01µs        ? ?/sec
take list i32 null indices 1024                                             1.00      3.8±0.21µs        ? ?/sec    1.00      3.7±0.19µs        ? ?/sec
take list i32 null values 1024                                              1.02      4.5±0.19µs        ? ?/sec    1.00      4.4±0.20µs        ? ?/sec
take list i32 null values null indices 1024                                 1.00      6.9±0.05µs        ? ?/sec    1.06      7.3±0.07µs        ? ?/sec
take listview i32 1024                                                      1.00    989.7±2.96ns        ? ?/sec    1.07   1055.8±2.14ns        ? ?/sec
take listview i32 512                                                       1.01    619.4±1.17ns        ? ?/sec    1.00    614.3±1.37ns        ? ?/sec
take listview i32 null indices 1024                                         1.00   1618.8±6.06ns        ? ?/sec    1.04   1678.3±5.02ns        ? ?/sec
take listview i32 null values 1024                                          1.00   1548.1±2.01ns        ? ?/sec    1.06   1633.8±1.71ns        ? ?/sec
take listview i32 null values null indices 1024                             1.00      2.4±0.00µs        ? ?/sec    1.01      2.4±0.01µs        ? ?/sec
take map<str, i32> 1024                                                     1.07     33.2±0.04µs        ? ?/sec    1.00     30.9±0.10µs        ? ?/sec
take map<str, i32> 512                                                      1.06     19.0±0.03µs        ? ?/sec    1.00     17.9±0.03µs        ? ?/sec
take map<str, i32> null indices 1024                                        1.06     19.6±0.02µs        ? ?/sec    1.00     18.5±0.04µs        ? ?/sec
take map<str, i32> null values 1024                                         1.07     19.9±0.01µs        ? ?/sec    1.00     18.6±0.04µs        ? ?/sec
take primitive run logical len: 1024, physical len: 512, indices: 1024      1.00     18.0±0.01µs        ? ?/sec    1.01     18.3±0.02µs        ? ?/sec
take sparse union 1024                                                      1.00      7.8±0.01µs        ? ?/sec    1.00      7.7±0.01µs        ? ?/sec
take sparse union 512                                                       1.01      4.7±0.01µs        ? ?/sec    1.00      4.7±0.01µs        ? ?/sec
take str 1024                                                               1.00      8.0±0.01µs        ? ?/sec    1.02      8.2±0.01µs        ? ?/sec
take str 512                                                                1.00      3.7±0.01µs        ? ?/sec    1.03      3.8±0.00µs        ? ?/sec
take str null indices 1024                                                  1.00      4.3±0.05µs        ? ?/sec    1.02      4.4±0.06µs        ? ?/sec
take str null indices 512                                                   1.00      2.1±0.03µs        ? ?/sec    1.02      2.1±0.03µs        ? ?/sec
take str null values 1024                                                   1.00      4.4±0.05µs        ? ?/sec    1.01      4.5±0.05µs        ? ?/sec
take str null values null indices 1024                                      1.00      3.1±0.02µs        ? ?/sec    1.06      3.3±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 128, indices: 1024         1.01     23.4±0.02µs        ? ?/sec    1.00     23.3±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 512, indices: 1024         1.00     23.8±0.02µs        ? ?/sec    1.00     23.9±0.02µs        ? ?/sec
take string run logical len: 1024, physical len: 512, null indices: 1024    1.00     16.1±0.05µs        ? ?/sec    1.01     16.2±0.06µs        ? ?/sec
take stringview 1024                                                        1.00    663.4±0.86ns        ? ?/sec    1.00    664.1±0.59ns        ? ?/sec
take stringview 512                                                         1.00    401.7±0.87ns        ? ?/sec    1.02    410.3±0.95ns        ? ?/sec
take stringview null indices 1024                                           1.00    849.2±2.05ns        ? ?/sec    1.00    847.5±1.45ns        ? ?/sec
take stringview null indices 512                                            1.00    504.1±1.38ns        ? ?/sec    1.01    508.4±1.86ns        ? ?/sec
take stringview null values 1024                                            1.00   1228.5±0.79ns        ? ?/sec    1.00   1228.1±0.73ns        ? ?/sec
take stringview null values null indices 1024                               1.00   1500.0±4.37ns        ? ?/sec    1.05   1570.0±2.88ns        ? ?/sec
take_record_batch 5 primitive cols no nulls 1024                            1.00      2.9±0.01µs        ? ?/sec    1.00      2.9±0.01µs        ? ?/sec
take_record_batch 6 string/binary cols no nulls 1024                        1.02     27.5±0.03µs        ? ?/sec    1.00     27.0±0.04µs        ? ?/sec
take_record_batch 7 mixed cols null values 1024                             1.00     13.8±0.08µs        ? ?/sec    1.00     13.8±0.09µs        ? ?/sec
take_record_batch 7 mixed cols null values null indices 1024                1.04     13.8±0.03µs        ? ?/sec    1.00     13.2±0.04µs        ? ?/sec

Per-runner information
take_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-vlt2

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

uname:

Linux bench-c6884755997-5104-bqvxn 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench take_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 595.1s
Peak memory 19.7 MiB
Avg memory 16.2 MiB
CPU user 592.4s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 595.1s
Peak memory 20.1 MiB
Avg memory 16.2 MiB
CPU user 591.7s
CPU sys 0.0s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: zip_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark zip_kernels
shards: 1
Details
group                                                                               base                                   changed
-----                                                                               ----                                   -------
zip_8192_from_decimal128/array_vs_non_null_scalar/10pct_true                        1.00      7.1±0.04µs        ? ?/sec    1.12      8.0±0.18µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/1pct_true                         1.00      5.9±0.01µs        ? ?/sec    1.01      5.9±0.03µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/50pct_nulls                       1.00      7.2±0.06µs        ? ?/sec    1.16      8.3±0.13µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/50pct_true                        1.00      7.1±0.08µs        ? ?/sec    1.14      8.1±0.28µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/90pct_true                        1.00      7.1±0.04µs        ? ?/sec    1.13      8.1±0.22µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/99pct_true                        1.00      5.4±0.02µs        ? ?/sec    1.04      5.6±0.11µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/all_false                         1.00      2.3±0.01µs        ? ?/sec    1.01      2.3±0.01µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/all_true                          1.00      3.6±0.03µs        ? ?/sec    1.01      3.6±0.08µs        ? ?/sec
zip_8192_from_decimal128/array_vs_non_null_scalar/true_then_false                   1.00      2.9±0.01µs        ? ?/sec    1.01      2.9±0.01µs        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/10pct_true                            1.00    543.4±3.85ns        ? ?/sec    1.00    545.7±2.59ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/1pct_true                             1.00    543.7±3.83ns        ? ?/sec    1.00    543.3±2.61ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/50pct_nulls                           1.00    618.7±4.55ns        ? ?/sec    1.00    617.2±2.83ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/50pct_true                            1.01    546.5±3.86ns        ? ?/sec    1.00    543.3±2.74ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/90pct_true                            1.00    543.3±3.72ns        ? ?/sec    1.00    543.3±2.66ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/99pct_true                            1.00    544.5±3.70ns        ? ?/sec    1.00    544.1±2.56ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/all_false                             1.00    539.3±3.42ns        ? ?/sec    1.00    537.9±1.98ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/all_true                              1.01    540.7±3.17ns        ? ?/sec    1.00    537.5±1.96ns        ? ?/sec
zip_8192_from_decimal128/array_vs_null_scalar/true_then_false                       1.00    540.7±3.55ns        ? ?/sec    1.00    538.1±2.23ns        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/10pct_true                        1.00      7.3±0.08µs        ? ?/sec    1.14      8.3±0.20µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/1pct_true                         1.00      5.4±0.06µs        ? ?/sec    1.04      5.6±0.06µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/50pct_nulls                       1.00      7.7±0.25µs        ? ?/sec    1.05      8.1±0.27µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/50pct_true                        1.00      7.4±0.10µs        ? ?/sec    1.11      8.2±0.14µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/90pct_true                        1.00      7.3±0.09µs        ? ?/sec    1.12      8.3±0.12µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/99pct_true                        1.00      5.9±0.01µs        ? ?/sec    1.01      5.9±0.03µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/all_false                         1.01      3.7±0.08µs        ? ?/sec    1.00      3.6±0.04µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/all_true                          1.00      2.3±0.00µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
zip_8192_from_decimal128/non_null_scalar_vs_array/true_then_false                   1.00      2.9±0.01µs        ? ?/sec    1.02      3.0±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_array/10pct_true                                         1.00     29.9±0.14µs        ? ?/sec    1.04     31.2±0.05µs        ? ?/sec
zip_8192_from_i32/array_vs_array/1pct_true                                          1.01      5.7±0.02µs        ? ?/sec    1.00      5.7±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_nulls                                        1.00     44.8±0.10µs        ? ?/sec    1.01     45.1±0.14µs        ? ?/sec
zip_8192_from_i32/array_vs_array/50pct_true                                         1.00     57.8±0.06µs        ? ?/sec    1.01     58.2±0.04µs        ? ?/sec
zip_8192_from_i32/array_vs_array/90pct_true                                         1.00     30.1±0.13µs        ? ?/sec    1.02     30.6±0.04µs        ? ?/sec
zip_8192_from_i32/array_vs_array/99pct_true                                         1.03      5.7±0.03µs        ? ?/sec    1.00      5.6±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_array/all_false                                          1.03      2.0±0.01µs        ? ?/sec    1.00   1941.0±4.37ns        ? ?/sec
zip_8192_from_i32/array_vs_array/all_true                                           1.03      2.0±0.01µs        ? ?/sec    1.00   1950.0±3.58ns        ? ?/sec
zip_8192_from_i32/array_vs_array/true_then_false                                    1.00      2.1±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/10pct_true                               1.00      2.7±0.02µs        ? ?/sec    1.01      2.7±0.02µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/1pct_true                                1.02      2.2±0.01µs        ? ?/sec    1.00      2.2±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_nulls                              1.00      2.8±0.02µs        ? ?/sec    1.00      2.8±0.02µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/50pct_true                               1.00      2.7±0.02µs        ? ?/sec    1.00      2.7±0.02µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/90pct_true                               1.00      2.7±0.02µs        ? ?/sec    1.00      2.7±0.02µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/99pct_true                               1.00      2.1±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_false                                1.01   1196.1±4.68ns        ? ?/sec    1.00   1180.6±1.81ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/all_true                                 1.00   1497.7±5.57ns        ? ?/sec    1.01   1505.6±4.36ns        ? ?/sec
zip_8192_from_i32/array_vs_non_null_scalar/true_then_false                          1.00   1344.7±4.57ns        ? ?/sec    1.00   1350.2±3.82ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/10pct_true                                   1.00    543.7±3.91ns        ? ?/sec    1.00    543.4±2.23ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/1pct_true                                    1.01    545.8±4.03ns        ? ?/sec    1.00    543.1±2.08ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/50pct_nulls                                  1.00    621.1±3.46ns        ? ?/sec    1.00    620.9±2.24ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/50pct_true                                   1.00    543.0±3.91ns        ? ?/sec    1.00    543.6±2.17ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/90pct_true                                   1.00    542.9±3.43ns        ? ?/sec    1.00    543.3±2.22ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/99pct_true                                   1.00    543.4±3.53ns        ? ?/sec    1.00    543.5±2.12ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/all_false                                    1.00    539.2±3.40ns        ? ?/sec    1.00    539.6±3.17ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/all_true                                     1.00    538.8±3.49ns        ? ?/sec    1.00    537.5±2.26ns        ? ?/sec
zip_8192_from_i32/array_vs_null_scalar/true_then_false                              1.01    546.2±7.53ns        ? ?/sec    1.00    539.3±3.77ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/10pct_true                               1.00      2.8±0.01µs        ? ?/sec    1.00      2.8±0.02µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/1pct_true                                1.00      2.2±0.01µs        ? ?/sec    1.00      2.2±0.01µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_nulls                              1.00      2.9±0.02µs        ? ?/sec    1.00      2.9±0.02µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/50pct_true                               1.00      2.8±0.01µs        ? ?/sec    1.00      2.8±0.02µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/90pct_true                               1.00      2.8±0.01µs        ? ?/sec    1.00      2.8±0.02µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/99pct_true                               1.00      2.3±0.01µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_false                                1.00   1573.2±5.95ns        ? ?/sec    1.01   1591.5±2.87ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/all_true                                 1.01   1247.6±4.28ns        ? ?/sec    1.00   1240.2±3.33ns        ? ?/sec
zip_8192_from_i32/non_null_scalar_vs_array/true_then_false                          1.00   1434.8±7.94ns        ? ?/sec    1.01   1444.3±3.16ns        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/10pct_true                                      1.00     11.6±0.01µs        ? ?/sec    1.01     11.7±0.02µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/1pct_true                                       1.00      7.1±0.01µs        ? ?/sec    1.00      7.1±0.00µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_nulls                                     1.00     18.8±0.12µs        ? ?/sec    1.02     19.1±0.20µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/50pct_true                                      1.01     31.0±0.03µs        ? ?/sec    1.00     30.6±0.04µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/90pct_true                                      1.15     13.0±0.01µs        ? ?/sec    1.00     11.3±0.01µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/99pct_true                                      1.33      8.9±0.00µs        ? ?/sec    1.00      6.7±0.01µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_false                                       1.00      6.6±0.00µs        ? ?/sec    1.00      6.6±0.00µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/all_true                                        1.03      8.4±0.01µs        ? ?/sec    1.00      8.2±1.27µs        ? ?/sec
zip_8192_from_i32/non_nulls_scalars/true_then_false                                 1.11      7.6±0.11µs        ? ?/sec    1.00      6.9±0.01µs        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/10pct_true                                1.00    628.2±2.42ns        ? ?/sec    1.01    633.5±3.02ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/1pct_true                                 1.00    626.2±2.37ns        ? ?/sec    1.00    627.1±2.98ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_nulls                               1.00    712.8±3.10ns        ? ?/sec    1.00    714.5±2.16ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/50pct_true                                1.00    627.9±2.56ns        ? ?/sec    1.00    627.3±3.08ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/90pct_true                                1.00    626.2±2.28ns        ? ?/sec    1.00    627.5±3.32ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/99pct_true                                1.00    626.1±2.35ns        ? ?/sec    1.00    626.8±2.91ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_false                                 1.00    624.5±2.34ns        ? ?/sec    1.00    626.7±2.15ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/all_true                                  1.00    626.8±2.17ns        ? ?/sec    1.00    626.3±2.27ns        ? ?/sec
zip_8192_from_i32/null_vs_non_null_scalar/true_then_false                           1.00    624.5±2.27ns        ? ?/sec    1.00    624.7±2.93ns        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/10pct_true                   1.10     41.2±0.21µs        ? ?/sec    1.00     37.4±0.11µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/1pct_true                    1.09     12.0±0.09µs        ? ?/sec    1.00     11.0±0.07µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/50pct_nulls                  1.00     79.3±0.27µs        ? ?/sec    1.01     80.1±0.26µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/50pct_true                   1.00     92.4±0.22µs        ? ?/sec    1.01     93.0±0.16µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/90pct_true                   1.18     41.8±0.20µs        ? ?/sec    1.00     35.5±0.09µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/99pct_true                   1.56     12.1±0.09µs        ? ?/sec    1.00      7.7±0.03µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/all_false                    1.05      7.5±0.10µs        ? ?/sec    1.00      7.2±0.10µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/all_true                     1.87      7.5±0.08µs        ? ?/sec    1.00      4.0±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_array/true_then_false              1.32      7.7±0.11µs        ? ?/sec    1.00      5.8±0.04µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/10pct_true         1.28     97.6±0.39µs        ? ?/sec    1.00     76.1±0.52µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/1pct_true          1.36     89.8±0.56µs        ? ?/sec    1.00     66.2±0.47µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/50pct_nulls        1.22    105.7±0.24µs        ? ?/sec    1.00     86.8±0.37µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/50pct_true         1.15    104.7±0.29µs        ? ?/sec    1.00     91.4±0.28µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/90pct_true         1.19     39.2±0.28µs        ? ?/sec    1.00     33.0±0.31µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/99pct_true         1.59     11.6±0.07µs        ? ?/sec    1.00      7.3±0.03µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/all_false          1.37     88.3±0.61µs        ? ?/sec    1.00     64.6±0.54µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/all_true           1.88      7.2±0.06µs        ? ?/sec    1.00      3.8±0.03µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_non_null_scalar/true_then_false    1.40     48.0±0.33µs        ? ?/sec    1.00     34.4±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/10pct_true             1.19    123.8±0.43µs        ? ?/sec    1.00    104.2±0.50µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/1pct_true              1.23    118.4±0.53µs        ? ?/sec    1.00     96.7±0.51µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/50pct_nulls            1.16    127.7±0.46µs        ? ?/sec    1.00    109.6±0.46µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/50pct_true             1.14    119.8±0.24µs        ? ?/sec    1.00    105.0±0.32µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/90pct_true             1.18     43.1±0.75µs        ? ?/sec    1.00     36.4±0.11µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/99pct_true             1.60     12.1±0.07µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/all_false              1.23    117.2±0.67µs        ? ?/sec    1.00     95.5±0.52µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/all_true               1.92      7.3±0.09µs        ? ?/sec    1.00      3.8±0.03µs        ? ?/sec
zip_8192_from_string_views size (3..20)/array_vs_null_scalar/true_then_false        1.25     62.3±0.26µs        ? ?/sec    1.00     49.8±0.30µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/10pct_true         1.08     44.4±0.35µs        ? ?/sec    1.00     40.9±0.25µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/1pct_true          1.02     16.3±0.06µs        ? ?/sec    1.00     15.9±0.10µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/50pct_nulls        1.07     77.6±0.54µs        ? ?/sec    1.00     72.7±0.32µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/50pct_true         1.11    115.7±0.41µs        ? ?/sec    1.00    104.2±0.64µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/90pct_true         1.25    105.5±0.39µs        ? ?/sec    1.00     84.3±0.27µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/99pct_true         1.31     96.3±0.44µs        ? ?/sec    1.00     73.4±0.28µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/all_false          1.04      7.6±0.14µs        ? ?/sec    1.00      7.3±0.11µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/all_true           1.32     94.2±0.47µs        ? ?/sec    1.00     71.6±0.19µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_null_scalar_vs_array/true_then_false    1.28     52.8±0.24µs        ? ?/sec    1.00     41.1±0.15µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/10pct_true                1.00     16.4±0.02µs        ? ?/sec    1.01     16.5±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/1pct_true                 1.00      4.0±0.00µs        ? ?/sec    1.01      4.0±0.00µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/50pct_nulls               1.00     30.0±0.02µs        ? ?/sec    1.00     30.0±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/50pct_true                1.01     39.7±0.06µs        ? ?/sec    1.00     39.4±0.07µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/90pct_true                1.00     16.4±0.02µs        ? ?/sec    1.00     16.4±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/99pct_true                1.00      3.9±0.01µs        ? ?/sec    1.02      4.0±0.01µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/all_false                 1.00   1750.4±8.87ns        ? ?/sec    1.00   1748.9±3.67ns        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/all_true                  1.03      2.2±0.03µs        ? ?/sec    1.00      2.1±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/non_nulls_scalars/true_then_false           1.00      2.1±0.01µs        ? ?/sec    1.00      2.1±0.01µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/10pct_true          1.07      2.3±0.01µs        ? ?/sec    1.00      2.2±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/1pct_true           1.06      2.3±0.01µs        ? ?/sec    1.00      2.2±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/50pct_nulls         1.05      2.4±0.01µs        ? ?/sec    1.00      2.3±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/50pct_true          1.00      2.0±0.01µs        ? ?/sec    1.09      2.2±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/90pct_true          1.00  1940.0±34.31ns        ? ?/sec    1.13      2.2±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/99pct_true          1.00  1938.7±34.63ns        ? ?/sec    1.13      2.2±0.03µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/all_false           1.05      2.3±0.01µs        ? ?/sec    1.00      2.2±0.02µs        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/all_true            1.00   1251.4±5.29ns        ? ?/sec    1.06   1325.6±4.97ns        ? ?/sec
zip_8192_from_string_views size (3..20)/null_vs_non_null_scalar/true_then_false     1.00      2.0±0.01µs        ? ?/sec    1.09      2.2±0.02µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/10pct_true                             1.05     52.2±0.14µs        ? ?/sec    1.00     49.8±0.32µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/1pct_true                              1.10     17.4±0.04µs        ? ?/sec    1.00     15.8±0.03µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/50pct_nulls                            1.00     82.5±0.21µs        ? ?/sec    1.00     82.6±0.31µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/50pct_true                             1.00     95.8±0.14µs        ? ?/sec    1.00     95.5±0.19µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/90pct_true                             1.08     52.7±0.22µs        ? ?/sec    1.00     49.0±0.12µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/99pct_true                             1.09     17.3±0.05µs        ? ?/sec    1.00     15.9±0.03µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/all_false                              1.09      9.7±0.07µs        ? ?/sec    1.00      8.9±0.04µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/all_true                               1.09      9.7±0.06µs        ? ?/sec    1.00      8.9±0.04µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_array/true_then_false                        1.06     10.5±0.07µs        ? ?/sec    1.00      9.8±0.07µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/10pct_true                   1.10    120.9±0.78µs        ? ?/sec    1.00    110.0±0.28µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/1pct_true                    1.12    110.8±0.59µs        ? ?/sec    1.00     98.9±0.17µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/50pct_nulls                  1.06    129.3±0.39µs        ? ?/sec    1.00    121.6±0.36µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/50pct_true                   1.00    126.2±0.42µs        ? ?/sec    1.00    126.3±0.33µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/90pct_true                   1.04     48.8±0.30µs        ? ?/sec    1.00     47.0±0.25µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/99pct_true                   1.09     16.7±0.04µs        ? ?/sec    1.00     15.3±0.08µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/all_false                    1.12    108.8±0.59µs        ? ?/sec    1.00     96.9±0.15µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/all_true                     1.03      9.5±0.02µs        ? ?/sec    1.00      9.2±0.06µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_non_null_scalar/true_then_false              1.11     60.4±0.35µs        ? ?/sec    1.00     54.5±0.11µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/10pct_true                       1.11    145.0±0.58µs        ? ?/sec    1.00    130.9±0.49µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/1pct_true                        1.12    137.4±0.78µs        ? ?/sec    1.00    122.2±0.61µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/50pct_nulls                      1.07    149.4±0.47µs        ? ?/sec    1.00    139.5±0.60µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/50pct_true                       1.03    141.3±0.74µs        ? ?/sec    1.00    137.8±0.22µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/90pct_true                       1.06     51.9±0.20µs        ? ?/sec    1.00     49.1±0.06µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/99pct_true                       1.10     17.1±0.06µs        ? ?/sec    1.00     15.5±0.03µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/all_false                        1.12    135.8±0.78µs        ? ?/sec    1.00    121.6±0.51µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/all_true                         1.09      9.6±0.11µs        ? ?/sec    1.00      8.8±0.02µs        ? ?/sec
zip_8192_from_strings (3..20)/array_vs_null_scalar/true_then_false                  1.11     72.9±0.38µs        ? ?/sec    1.00     65.5±0.30µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/10pct_true                   1.02     54.2±0.32µs        ? ?/sec    1.00     52.9±0.18µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/1pct_true                    1.08     20.3±0.05µs        ? ?/sec    1.00     18.9±0.02µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/50pct_nulls                  1.00     93.9±0.85µs        ? ?/sec    1.01     94.6±0.21µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/50pct_true                   1.05    138.3±0.47µs        ? ?/sec    1.00    132.3±0.19µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/90pct_true                   1.12    130.7±0.53µs        ? ?/sec    1.00    116.5±0.24µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/99pct_true                   1.14    118.3±0.57µs        ? ?/sec    1.00    103.5±0.17µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/all_false                    1.10      9.6±0.10µs        ? ?/sec    1.00      8.7±0.03µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/all_true                     1.14    116.0±0.60µs        ? ?/sec    1.00    101.5±0.18µs        ? ?/sec
zip_8192_from_strings (3..20)/non_null_scalar_vs_array/true_then_false              1.13     65.6±0.28µs        ? ?/sec    1.00     58.0±0.11µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/10pct_true                          1.00     24.2±0.02µs        ? ?/sec    1.00     24.3±0.02µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/1pct_true                           1.00      7.9±0.01µs        ? ?/sec    1.00      7.9±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/50pct_nulls                         1.00     38.0±0.05µs        ? ?/sec    1.00     38.0±0.05µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/50pct_true                          1.00     47.9±0.10µs        ? ?/sec    1.00     47.7±0.08µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/90pct_true                          1.00     23.5±0.02µs        ? ?/sec    1.00     23.6±0.03µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/99pct_true                          1.00      6.6±0.01µs        ? ?/sec    1.01      6.6±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/all_false                           1.01      4.6±0.01µs        ? ?/sec    1.00      4.5±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/all_true                            1.01      4.4±0.00µs        ? ?/sec    1.00      4.3±0.00µs        ? ?/sec
zip_8192_from_strings (3..20)/non_nulls_scalars/true_then_false                     1.00      4.7±0.01µs        ? ?/sec    1.00      4.7±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/10pct_true                    1.00     13.9±0.02µs        ? ?/sec    1.06     14.7±0.02µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/1pct_true                     1.00      9.1±0.01µs        ? ?/sec    1.14     10.3±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/50pct_nulls                   1.00     21.4±0.11µs        ? ?/sec    1.03     21.9±0.05µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/50pct_true                    1.00     34.1±0.03µs        ? ?/sec    1.02     34.8±0.06µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/90pct_true                    1.00     12.8±0.03µs        ? ?/sec    1.10     14.1±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/99pct_true                    1.00      7.7±0.01µs        ? ?/sec    1.21      9.3±0.00µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/all_false                     1.00      8.5±0.00µs        ? ?/sec    1.14      9.7±0.01µs        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/all_true                      1.00    732.9±3.87ns        ? ?/sec    1.01    740.5±2.06ns        ? ?/sec
zip_8192_from_strings (3..20)/null_vs_non_null_scalar/true_then_false               1.00      8.0±0.01µs        ? ?/sec    1.15      9.2±0.01µs        ? ?/sec

Per-runner information
zip_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-37wszl0h-8facf7d7-28hh

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

uname:

Linux bench-c6884424056-5094-dh7xw 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench zip_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 1835.4s
Peak memory 38.8 MiB
Avg memory 29.9 MiB
CPU user 1830.8s
CPU sys 0.1s
Peak spill 0 B

branch

Metric Value
Wall time 1840.4s
Peak memory 39.2 MiB
Avg memory 30.0 MiB
CPU user 1835.1s
CPU sys 0.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Target: merge_kernels

Comparing rich-T-kid/mutable-array-data-fallible (281d0f0) to 739f9cc (merge-base) diff

Run configuration
run benchmark merge_kernels
shards: 1
Details
group                                                                                        base                                   changed
-----                                                                                        ----                                   -------
merge_8192_from_i32/array_vs_array/10pct_true                                                1.00     23.4±0.04µs        ? ?/sec    1.07     25.0±0.12µs        ? ?/sec
merge_8192_from_i32/array_vs_array/1pct_true                                                 1.00      4.1±0.01µs        ? ?/sec    1.05      4.3±0.01µs        ? ?/sec
merge_8192_from_i32/array_vs_array/50pct_nulls                                               1.00     49.7±0.07µs        ? ?/sec    1.06     52.7±0.42µs        ? ?/sec
merge_8192_from_i32/array_vs_array/50pct_true                                                1.00     67.7±0.22µs        ? ?/sec    1.05     71.0±0.58µs        ? ?/sec
merge_8192_from_i32/array_vs_array/90pct_true                                                1.00     24.9±0.02µs        ? ?/sec    1.05     26.2±0.11µs        ? ?/sec
merge_8192_from_i32/array_vs_array/99pct_true                                                1.00      4.6±0.00µs        ? ?/sec    1.06      4.8±0.03µs        ? ?/sec
merge_8192_from_i32/array_vs_array/all_false                                                 1.01   1674.7±4.46ns        ? ?/sec    1.00  1663.4±11.60ns        ? ?/sec
merge_8192_from_i32/array_vs_array/all_true                                                  1.00   1642.7±5.65ns        ? ?/sec    1.01   1651.3±7.10ns        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/10pct_true                                      1.05     78.0±0.10µs        ? ?/sec    1.00     74.5±0.29µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/1pct_true                                       1.06     71.3±0.16µs        ? ?/sec    1.00     66.9±0.25µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/50pct_nulls                                     1.02     82.0±0.08µs        ? ?/sec    1.00     80.5±0.22µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/50pct_true                                      1.00     78.5±0.28µs        ? ?/sec    1.01     79.2±0.23µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/90pct_true                                      1.00     22.4±0.31µs        ? ?/sec    1.05     23.5±0.21µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/99pct_true                                      1.00      4.2±0.04µs        ? ?/sec    1.04      4.4±0.04µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/all_false                                       1.07     70.1±0.16µs        ? ?/sec    1.00     65.4±0.25µs        ? ?/sec
merge_8192_from_i32/array_vs_non_null_scalar/all_true                                        1.06   1659.5±5.07ns        ? ?/sec    1.00   1559.5±5.75ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/10pct_true                                      1.00     21.5±0.29µs        ? ?/sec    1.04     22.3±0.18µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/1pct_true                                       1.00      3.8±0.03µs        ? ?/sec    1.08      4.1±0.02µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/50pct_nulls                                     1.00     46.8±0.33µs        ? ?/sec    1.02     47.8±0.21µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/50pct_true                                      1.03     77.2±0.28µs        ? ?/sec    1.00     75.2±0.24µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/90pct_true                                      1.05     77.9±0.11µs        ? ?/sec    1.00     74.2±0.24µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/99pct_true                                      1.07     71.3±0.17µs        ? ?/sec    1.00     66.6±0.23µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/all_false                                       1.00   1557.8±4.24ns        ? ?/sec    1.44      2.2±0.01µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_array/all_true                                        1.07     69.9±0.15µs        ? ?/sec    1.00     65.2±0.25µs        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/10pct_true                                1.00    592.3±2.84ns        ? ?/sec    1.00    591.6±3.05ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/1pct_true                                 1.00    589.8±2.96ns        ? ?/sec    1.00    591.5±2.97ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_nulls                               1.01    668.4±2.20ns        ? ?/sec    1.00    662.7±3.10ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/50pct_true                                1.00    590.3±2.89ns        ? ?/sec    1.00    592.2±2.91ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/90pct_true                                1.00    590.0±2.91ns        ? ?/sec    1.00    590.8±2.84ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/99pct_true                                1.01    596.2±6.06ns        ? ?/sec    1.00    591.5±3.82ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/all_false                                 1.00    592.8±3.61ns        ? ?/sec    1.00    592.7±3.66ns        ? ?/sec
merge_8192_from_i32/non_null_scalar_vs_null_scalar/all_true                                  1.01    598.9±4.01ns        ? ?/sec    1.00    590.5±2.78ns        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/10pct_true                                             1.00      6.7±0.01µs        ? ?/sec    1.06      7.1±0.01µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/1pct_true                                              1.00      6.9±0.01µs        ? ?/sec    1.06      7.4±0.00µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/50pct_nulls                                            1.00      7.7±0.02µs        ? ?/sec    1.03      7.9±0.01µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/50pct_true                                             1.62     14.7±0.35µs        ? ?/sec    1.00      9.1±0.02µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/90pct_true                                             1.00      6.7±0.05µs        ? ?/sec    1.35      9.0±0.01µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/99pct_true                                             1.00      6.7±0.01µs        ? ?/sec    1.33      8.8±0.01µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/all_false                                              1.00      6.7±0.00µs        ? ?/sec    1.06      7.2±0.01µs        ? ?/sec
merge_8192_from_i32/non_nulls_scalars/all_true                                               1.00      6.1±0.00µs        ? ?/sec    1.48      9.1±0.29µs        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/10pct_true                                       1.00    717.2±5.36ns        ? ?/sec    1.00    714.6±3.33ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/1pct_true                                        1.00    716.5±5.55ns        ? ?/sec    1.00    713.5±3.43ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/50pct_nulls                                      1.00    799.7±4.16ns        ? ?/sec    1.00    798.3±2.56ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/50pct_true                                       1.00    711.8±3.53ns        ? ?/sec    1.01    716.9±3.55ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/90pct_true                                       1.00    714.1±3.70ns        ? ?/sec    1.00    716.0±3.60ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/99pct_true                                       1.00    716.3±6.17ns        ? ?/sec    1.00    717.5±3.40ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/all_false                                        1.00    713.1±4.67ns        ? ?/sec    1.00    713.8±3.36ns        ? ?/sec
merge_8192_from_i32/null_vs_non_null_scalar/all_true                                         1.00    629.9±3.81ns        ? ?/sec    1.01    633.1±3.36ns        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/10pct_true          1.23     16.4±0.02µs        ? ?/sec    1.00     13.3±0.03µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/1pct_true           1.15      4.1±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/50pct_nulls         1.25     29.2±0.13µs        ? ?/sec    1.00     23.2±0.04µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/50pct_true          1.46     42.2±0.46µs        ? ?/sec    1.00     29.0±0.04µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/90pct_true          1.23     16.7±0.05µs        ? ?/sec    1.00     13.6±0.03µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/99pct_true          1.17      4.5±0.02µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/all_false           1.02      2.3±0.01µs        ? ?/sec    1.00      2.3±0.01µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_fit/all_true            1.04      2.3±0.01µs        ? ?/sec    1.00      2.2±0.01µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/10pct_true     1.00     61.2±0.16µs        ? ?/sec    1.00     61.1±0.08µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/1pct_true      1.00     61.9±0.07µs        ? ?/sec    1.00     61.8±0.11µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/50pct_nulls    1.00     87.0±0.62µs        ? ?/sec    1.03     89.4±0.45µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/50pct_true     1.00     95.9±0.78µs        ? ?/sec    1.01     96.6±0.65µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/90pct_true     1.00     61.3±0.15µs        ? ?/sec    1.00     61.2±0.07µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/99pct_true     1.01     62.1±0.10µs        ? ?/sec    1.00     61.8±0.07µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/all_false      1.00     60.8±0.07µs        ? ?/sec    1.00     60.5±0.09µs        ? ?/sec
merge_8192_from_int8_dictionaries/array_vs_array_concatenated_values_overflow/all_true       1.01     61.0±0.15µs        ? ?/sec    1.00     60.5±0.07µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/10pct_true                              1.02    135.3±1.04µs        ? ?/sec    1.00    132.0±1.63µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/1pct_true                               1.02    105.8±1.44µs        ? ?/sec    1.00    103.7±0.87µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/50pct_nulls                             1.00    170.6±0.95µs        ? ?/sec    1.00    170.4±0.92µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/50pct_true                              1.00    194.3±1.21µs        ? ?/sec    1.00    194.4±0.77µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/90pct_true                              1.01    136.1±0.86µs        ? ?/sec    1.00    134.5±0.87µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/99pct_true                              1.04    104.9±0.99µs        ? ?/sec    1.00    100.7±1.25µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/all_false                               1.00     41.6±1.24µs        ? ?/sec    1.00     41.8±1.79µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_array/all_true                                1.00     41.3±1.45µs        ? ?/sec    1.00     41.5±1.08µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/10pct_true                    1.12    206.0±0.80µs        ? ?/sec    1.00    184.7±1.03µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/1pct_true                     1.09    254.6±1.27µs        ? ?/sec    1.00    233.3±1.43µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_nulls                   1.07    209.5±0.95µs        ? ?/sec    1.00    195.5±0.93µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/50pct_true                    1.02    200.9±1.00µs        ? ?/sec    1.00    196.7±0.82µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/90pct_true                    1.04    136.0±1.09µs        ? ?/sec    1.00    130.3±0.88µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/99pct_true                    1.03    101.2±1.34µs        ? ?/sec    1.00     98.4±0.99µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_false                     1.09    254.1±1.86µs        ? ?/sec    1.00    232.2±1.47µs        ? ?/sec
merge_8192_from_long bytes (100..400)/array_vs_non_null_scalar/all_true                      1.04     42.5±1.31µs        ? ?/sec    1.00     41.0±1.33µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/10pct_true                    1.05    135.5±1.14µs        ? ?/sec    1.00    129.5±0.91µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/1pct_true                     1.07    112.6±1.44µs        ? ?/sec    1.00    105.2±1.08µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_nulls                   1.03    167.2±1.04µs        ? ?/sec    1.00    162.5±0.91µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/50pct_true                    1.05    199.6±1.08µs        ? ?/sec    1.00    189.3±0.83µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/90pct_true                    1.10    204.4±1.10µs        ? ?/sec    1.00    186.2±1.08µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/99pct_true                    1.10    254.8±1.77µs        ? ?/sec    1.00    232.2±1.32µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_false                     1.02     42.4±1.68µs        ? ?/sec    1.00     41.7±1.95µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_array/all_true                      1.08    253.9±1.59µs        ? ?/sec    1.00    234.3±0.97µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/10pct_true              1.00     11.7±0.07µs        ? ?/sec    1.03     12.1±0.02µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/1pct_true               1.00      9.2±0.01µs        ? ?/sec    1.00      9.2±0.01µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls             1.00     16.6±0.10µs        ? ?/sec    1.01     16.8±0.06µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/50pct_true              1.00     24.6±0.09µs        ? ?/sec    1.02     25.0±0.05µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/90pct_true              1.00     35.4±0.27µs        ? ?/sec    1.02     36.2±0.31µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/99pct_true              1.00     38.5±0.21µs        ? ?/sec    1.01     39.1±0.20µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_false               1.00    681.5±9.80ns        ? ?/sec    1.00   681.0±11.07ns        ? ?/sec
merge_8192_from_long bytes (100..400)/non_null_scalar_vs_null_scalar/all_true                1.01     39.6±0.28µs        ? ?/sec    1.00     39.1±0.19µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/10pct_true                           1.00     40.5±0.10µs        ? ?/sec    1.01     40.8±0.12µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/1pct_true                            1.00     25.8±0.10µs        ? ?/sec    1.00     25.8±0.09µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_nulls                          1.00     53.5±0.15µs        ? ?/sec    1.01     53.9±0.21µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/50pct_true                           1.00     62.6±0.23µs        ? ?/sec    1.00     62.7±0.20µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/90pct_true                           1.00     50.7±0.28µs        ? ?/sec    1.01     51.0±0.24µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/99pct_true                           1.00     36.0±0.12µs        ? ?/sec    1.00     36.0±0.19µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/all_false                            1.00     23.2±0.09µs        ? ?/sec    1.00     23.2±0.21µs        ? ?/sec
merge_8192_from_long bytes (100..400)/non_nulls_scalars/all_true                             1.02     34.4±0.34µs        ? ?/sec    1.00     33.8±0.22µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/10pct_true                     1.00     36.8±0.38µs        ? ?/sec    1.00     36.7±0.31µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/1pct_true                      1.01     39.7±0.39µs        ? ?/sec    1.00     39.2±0.46µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_nulls                    1.00     31.4±0.24µs        ? ?/sec    1.00     31.3±0.14µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/50pct_true                     1.00     24.7±0.04µs        ? ?/sec    1.01     25.0±0.06µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/90pct_true                     1.00     12.0±0.06µs        ? ?/sec    1.02     12.3±0.02µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/99pct_true                     1.00      9.4±0.01µs        ? ?/sec    1.00      9.4±0.01µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_false                      1.01     39.8±0.31µs        ? ?/sec    1.00     39.4±0.24µs        ? ?/sec
merge_8192_from_long bytes (100..400)/null_vs_non_null_scalar/all_true                       1.00    737.6±7.33ns        ? ?/sec    1.01    748.5±8.96ns        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/10pct_true                            1.02    134.3±0.81µs        ? ?/sec    1.00    131.5±1.02µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/1pct_true                             1.02    105.8±1.26µs        ? ?/sec    1.00    103.9±1.15µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/50pct_nulls                           1.00    170.7±0.95µs        ? ?/sec    1.00    171.0±0.94µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/50pct_true                            1.00    194.0±1.00µs        ? ?/sec    1.00    194.5±0.84µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/90pct_true                            1.03    137.5±0.82µs        ? ?/sec    1.00    133.0±0.72µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/99pct_true                            1.04     97.7±1.42µs        ? ?/sec    1.00     94.4±1.11µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/all_false                             1.02     41.8±1.33µs        ? ?/sec    1.00     41.1±0.88µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_array/all_true                              1.01     41.6±1.46µs        ? ?/sec    1.00     41.2±1.37µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/10pct_true                  1.11    205.1±1.16µs        ? ?/sec    1.00    184.7±0.83µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/1pct_true                   1.00    254.6±1.69µs        ? ?/sec    1.73   439.5±26.25µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_nulls                 1.06    208.9±0.77µs        ? ?/sec    1.00    198.0±0.69µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/50pct_true                  1.02    199.7±0.86µs        ? ?/sec    1.00    196.1±0.59µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/90pct_true                  1.03    136.1±1.14µs        ? ?/sec    1.00    131.9±1.12µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/99pct_true                  1.03     97.7±0.89µs        ? ?/sec    1.00     94.6±0.83µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_false                   1.07    258.2±1.52µs        ? ?/sec    1.00    241.7±1.97µs        ? ?/sec
merge_8192_from_long strings (100..400)/array_vs_non_null_scalar/all_true                    1.23     51.2±0.57µs        ? ?/sec    1.00     41.7±1.49µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/10pct_true                  1.04    134.6±0.88µs        ? ?/sec    1.00    129.6±0.55µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/1pct_true                   1.03    105.4±1.31µs        ? ?/sec    1.00    102.3±1.07µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_nulls                 1.03    166.9±1.03µs        ? ?/sec    1.00    162.0±0.70µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/50pct_true                  1.05    198.9±1.07µs        ? ?/sec    1.00    189.4±0.67µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/90pct_true                  1.10    205.2±1.09µs        ? ?/sec    1.00    186.3±1.00µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/99pct_true                  1.09    254.6±1.51µs        ? ?/sec    1.00    233.7±1.46µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_false                   1.01     42.0±1.23µs        ? ?/sec    1.00     41.4±1.43µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_array/all_true                    1.09    252.3±1.58µs        ? ?/sec    1.00    231.5±1.56µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/10pct_true            1.00     11.8±0.06µs        ? ?/sec    1.02     12.1±0.01µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/1pct_true             1.00      9.2±0.01µs        ? ?/sec    1.00      9.3±0.01µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_nulls           1.00     16.7±0.11µs        ? ?/sec    1.01     16.8±0.05µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/50pct_true            1.00     24.6±0.07µs        ? ?/sec    1.02     25.1±0.16µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/90pct_true            1.00     35.4±0.18µs        ? ?/sec    1.02     36.0±0.35µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/99pct_true            1.02     38.2±0.43µs        ? ?/sec    1.00     37.6±0.50µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_false             1.00    682.4±6.95ns        ? ?/sec    1.00    679.7±8.78ns        ? ?/sec
merge_8192_from_long strings (100..400)/non_null_scalar_vs_null_scalar/all_true              1.00     38.3±0.27µs        ? ?/sec    1.05     40.1±0.22µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/10pct_true                         1.00     72.3±0.35µs        ? ?/sec    1.06     76.4±0.41µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/1pct_true                          1.00     51.5±0.31µs        ? ?/sec    1.02     52.7±0.37µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/50pct_nulls                        1.00     84.4±0.47µs        ? ?/sec    1.05     88.4±0.43µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/50pct_true                         1.00     85.0±0.33µs        ? ?/sec    1.06     90.2±0.32µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/90pct_true                         1.00     55.9±0.39µs        ? ?/sec    1.04     58.2±0.32µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/99pct_true                         1.00     36.7±0.24µs        ? ?/sec    1.04     38.2±0.21µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/all_false                          1.00     48.2±0.32µs        ? ?/sec    1.04     50.2±0.31µs        ? ?/sec
merge_8192_from_long strings (100..400)/non_nulls_scalars/all_true                           1.00     33.3±0.24µs        ? ?/sec    1.06     35.4±0.55µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/10pct_true                   1.00     35.6±0.21µs        ? ?/sec    1.09     38.7±0.32µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/1pct_true                    1.00     38.8±0.42µs        ? ?/sec    1.10     42.6±1.29µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_nulls                  1.00     31.2±0.27µs        ? ?/sec    1.15     35.7±0.54µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/50pct_true                   1.00     24.3±0.16µs        ? ?/sec    1.01     24.6±0.15µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/90pct_true                   1.00     12.1±0.06µs        ? ?/sec    1.00     12.1±0.02µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/99pct_true                   1.00      9.4±0.00µs        ? ?/sec    1.00      9.4±0.01µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_false                    1.00     38.8±0.32µs        ? ?/sec    1.15     44.5±0.72µs        ? ?/sec
merge_8192_from_long strings (100..400)/null_vs_non_null_scalar/all_true                     1.00    743.3±6.38ns        ? ?/sec    1.01    753.5±7.37ns        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/10pct_true                                1.04     37.8±0.03µs        ? ?/sec    1.00     36.3±0.04µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/1pct_true                                 1.11     12.6±0.01µs        ? ?/sec    1.00     11.4±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/50pct_nulls                               1.00     70.7±0.15µs        ? ?/sec    1.00     70.8±0.10µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/50pct_true                                1.00     91.9±0.13µs        ? ?/sec    1.03     95.0±0.19µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/90pct_true                                1.05     39.1±0.03µs        ? ?/sec    1.00     37.1±0.07µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/99pct_true                                1.10     13.1±0.01µs        ? ?/sec    1.00     11.9±0.03µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/all_false                                 1.09      8.3±0.01µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_array/all_true                                  1.10      8.3±0.01µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/10pct_true                      1.11    116.8±0.28µs        ? ?/sec    1.00    105.0±0.29µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/1pct_true                       1.12    108.6±0.45µs        ? ?/sec    1.00     97.1±0.26µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_nulls                     1.09    121.8±0.24µs        ? ?/sec    1.00    111.9±0.33µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/50pct_true                      1.02    112.2±0.25µs        ? ?/sec    1.00    110.1±0.38µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/90pct_true                      1.03     36.8±0.29µs        ? ?/sec    1.00     35.6±0.14µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/99pct_true                      1.10     12.8±0.04µs        ? ?/sec    1.00     11.6±0.03µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_false                       1.12    107.3±0.40µs        ? ?/sec    1.00     96.0±0.22µs        ? ?/sec
merge_8192_from_short bytes (3..10)/array_vs_non_null_scalar/all_true                        1.10      8.3±0.01µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/10pct_true                      1.01     35.2±0.28µs        ? ?/sec    1.00     34.9±0.18µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/1pct_true                       1.11     12.2±0.03µs        ? ?/sec    1.00     11.0±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_nulls                     1.00     68.3±0.29µs        ? ?/sec    1.00     68.1±0.23µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/50pct_true                      1.08    110.1±0.34µs        ? ?/sec    1.00    102.3±0.23µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/90pct_true                      1.11    117.3±0.32µs        ? ?/sec    1.00    105.2±0.36µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/99pct_true                      1.12    109.4±0.45µs        ? ?/sec    1.00     97.5±0.25µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_false                       1.10      8.3±0.01µs        ? ?/sec    1.00      7.5±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_array/all_true                        1.13    107.6±0.47µs        ? ?/sec    1.00     95.6±0.19µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/10pct_true                1.00      9.7±0.05µs        ? ?/sec    1.01      9.8±0.05µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/1pct_true                 1.00      9.1±0.01µs        ? ?/sec    1.00      9.1±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls               1.00     10.4±0.11µs        ? ?/sec    1.01     10.5±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/50pct_true                1.00     11.1±0.07µs        ? ?/sec    1.04     11.6±0.05µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/90pct_true                1.00     10.0±0.11µs        ? ?/sec    1.03     10.3±0.03µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/99pct_true                1.00      9.6±0.01µs        ? ?/sec    1.00      9.6±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_false                 1.00    678.4±8.07ns        ? ?/sec    1.02    692.3±9.04ns        ? ?/sec
merge_8192_from_short bytes (3..10)/non_null_scalar_vs_null_scalar/all_true                  1.00      9.2±0.01µs        ? ?/sec    1.21     11.2±1.04µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/10pct_true                             1.00     15.2±0.05µs        ? ?/sec    1.00     15.3±0.05µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/1pct_true                              1.00      5.8±0.01µs        ? ?/sec    1.00      5.8±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_nulls                            1.00     24.0±0.04µs        ? ?/sec    1.01     24.4±0.04µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/50pct_true                             1.00     29.8±0.09µs        ? ?/sec    1.04     31.1±0.10µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/90pct_true                             1.00     15.2±0.06µs        ? ?/sec    1.00     15.2±0.06µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/99pct_true                             1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/all_false                              1.01      3.6±0.00µs        ? ?/sec    1.00      3.6±0.00µs        ? ?/sec
merge_8192_from_short bytes (3..10)/non_nulls_scalars/all_true                               1.00      3.9±0.00µs        ? ?/sec    1.00      3.9±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/10pct_true                       1.00     10.2±0.04µs        ? ?/sec    1.02     10.3±0.02µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/1pct_true                        1.00      9.7±0.01µs        ? ?/sec    1.00      9.7±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_nulls                      1.00     11.0±0.04µs        ? ?/sec    1.01     11.2±0.08µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/50pct_true                       1.00     11.3±0.12µs        ? ?/sec    1.00     11.3±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/90pct_true                       1.00      9.7±0.05µs        ? ?/sec    1.00      9.7±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/99pct_true                       1.00      9.1±0.02µs        ? ?/sec    1.01      9.2±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_false                        1.03      9.6±0.25µs        ? ?/sec    1.00      9.3±0.01µs        ? ?/sec
merge_8192_from_short bytes (3..10)/null_vs_non_null_scalar/all_true                         1.00    748.4±6.58ns        ? ?/sec    1.01    753.0±8.14ns        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/10pct_true                              1.03     37.8±0.04µs        ? ?/sec    1.00     36.5±0.07µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/1pct_true                               1.09     12.5±0.01µs        ? ?/sec    1.00     11.4±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/50pct_nulls                             1.00     70.7±0.05µs        ? ?/sec    1.00     71.0±0.16µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/50pct_true                              1.00     92.5±0.10µs        ? ?/sec    1.03     95.7±0.15µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/90pct_true                              1.04     38.9±0.03µs        ? ?/sec    1.00     37.6±0.07µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/99pct_true                              1.09     13.1±0.01µs        ? ?/sec    1.00     12.0±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/all_false                               1.09      8.3±0.01µs        ? ?/sec    1.00      7.6±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_array/all_true                                1.09      8.3±0.01µs        ? ?/sec    1.00      7.6±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/10pct_true                    1.11    117.1±0.26µs        ? ?/sec    1.00    105.4±0.16µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/1pct_true                     1.13    109.1±0.36µs        ? ?/sec    1.00     96.8±0.17µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_nulls                   1.10    122.7±0.28µs        ? ?/sec    1.00    111.5±0.31µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/50pct_true                    1.02    112.4±0.38µs        ? ?/sec    1.00    110.2±0.39µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/90pct_true                    1.04     36.9±0.26µs        ? ?/sec    1.00     35.5±0.16µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/99pct_true                    1.10     13.0±0.04µs        ? ?/sec    1.00     11.8±0.04µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_false                     1.12    107.4±0.32µs        ? ?/sec    1.00     96.2±0.20µs        ? ?/sec
merge_8192_from_short strings (3..10)/array_vs_non_null_scalar/all_true                      1.10      8.4±0.01µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/10pct_true                    1.01     35.2±0.27µs        ? ?/sec    1.00     34.8±0.17µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/1pct_true                     1.09     12.2±0.02µs        ? ?/sec    1.00     11.2±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_nulls                   1.01     68.5±0.27µs        ? ?/sec    1.00     67.9±0.19µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/50pct_true                    1.08    110.0±0.34µs        ? ?/sec    1.00    102.3±0.25µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/90pct_true                    1.12    117.3±0.41µs        ? ?/sec    1.00    105.2±0.22µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/99pct_true                    1.12    109.2±0.44µs        ? ?/sec    1.00     97.6±0.23µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_false                     1.08      8.3±0.01µs        ? ?/sec    1.00      7.7±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_array/all_true                      1.13    107.9±0.41µs        ? ?/sec    1.00     95.7±0.21µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/10pct_true              1.00      9.6±0.07µs        ? ?/sec    1.02      9.9±0.05µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/1pct_true               1.00      9.1±0.01µs        ? ?/sec    1.00      9.1±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_nulls             1.00     10.2±0.09µs        ? ?/sec    1.04     10.6±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/50pct_true              1.00     11.3±0.12µs        ? ?/sec    1.01     11.4±0.04µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/90pct_true              1.00      9.9±0.01µs        ? ?/sec    1.03     10.2±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/99pct_true              1.00      9.6±0.01µs        ? ?/sec    1.00      9.6±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_false               1.00    687.5±6.22ns        ? ?/sec    1.03    706.3±5.07ns        ? ?/sec
merge_8192_from_short strings (3..10)/non_null_scalar_vs_null_scalar/all_true                1.00      9.2±0.01µs        ? ?/sec    1.06      9.7±0.54µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/10pct_true                           1.00     15.6±0.03µs        ? ?/sec    1.00     15.6±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/1pct_true                            1.01      6.0±0.01µs        ? ?/sec    1.00      6.0±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/50pct_nulls                          1.02     24.1±0.03µs        ? ?/sec    1.00     23.7±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/50pct_true                           1.03     31.1±0.15µs        ? ?/sec    1.00     30.3±0.09µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/90pct_true                           1.01     15.2±0.05µs        ? ?/sec    1.00     15.1±0.06µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/99pct_true                           1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/all_false                            1.01      3.8±0.01µs        ? ?/sec    1.00      3.8±0.00µs        ? ?/sec
merge_8192_from_short strings (3..10)/non_nulls_scalars/all_true                             1.00      3.9±0.00µs        ? ?/sec    1.00      3.9±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/10pct_true                     1.00     10.0±0.06µs        ? ?/sec    1.03     10.4±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/1pct_true                      1.00      9.7±0.01µs        ? ?/sec    1.00      9.6±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_nulls                    1.00     10.6±0.13µs        ? ?/sec    1.04     11.0±0.03µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/50pct_true                     1.00     11.5±0.10µs        ? ?/sec    1.00     11.5±0.05µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/90pct_true                     1.00      9.7±0.09µs        ? ?/sec    1.02      9.8±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/99pct_true                     1.00      9.1±0.01µs        ? ?/sec    1.01      9.2±0.02µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_false                      1.01      9.3±0.01µs        ? ?/sec    1.00      9.2±0.01µs        ? ?/sec
merge_8192_from_short strings (3..10)/null_vs_non_null_scalar/all_true                       1.00    739.5±2.55ns        ? ?/sec    1.02    757.2±5.43ns        ? ?/sec

Per-runner information
merge_kernels — shard 1/1

Node: gk3-benchmark-cluster-nap-1mlzckca-c7d66e25-q7f2

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

uname:

Linux bench-c6884429072-5100-tp6wh 6.12.105+ #1 SMP Sat Sep 19 07:55:25 UTC 2026 aarch64 GNU/Linux

BENCH_COMMAND:

cargo bench --features=arrow,async,test_common,experimental,object_store --bench merge_kernels
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
Resource Usage

base (merge-base)

Metric Value
Wall time 2465.5s
Peak memory 35.2 MiB
Avg memory 17.6 MiB
CPU user 2459.4s
CPU sys 0.2s
Peak spill 0 B

branch

Metric Value
Wall time 2470.5s
Peak memory 34.1 MiB
Avg memory 18.5 MiB
CPU user 2464.3s
CPU sys 4.7s
Peak spill 0 B

File an issue against this benchmark runner

This branch has not been deployed

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

Labels

arrow-core Core crates related to representing arrow data bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

replace more mutablebuffer callsites with fallible methods

3 participants