Skip to content

feat(parquet): batch RLE runs in level encoder via scan-ahead#9830

Merged
alamb merged 2 commits intoapache:mainfrom
HippoBaro:batch_rle_run
Apr 28, 2026
Merged

feat(parquet): batch RLE runs in level encoder via scan-ahead#9830
alamb merged 2 commits intoapache:mainfrom
HippoBaro:batch_rle_run

Conversation

@HippoBaro
Copy link
Copy Markdown
Contributor

@HippoBaro HippoBaro commented Apr 25, 2026

Which issue does this PR close?

Rationale for this change

See #9731

What changes are included in this PR?

Add is_accumulating_rle() and extend_run() methods to RleEncoder that allow callers to detect when the encoder is in RLE accumulation mode and bulk-extend runs without per-element overhead.

Upgrade put_with_observer() in LevelEncoder to exploit this: after each put(), it checks whether the encoder entered accumulation mode. If so, it scans ahead for the rest of the run, calls extend_run() to batch it in O(1), and fires the observer once with the full run length.

This turns the previous O(n) per-value encoding + observation into O(1) amortized per RLE run, which is a significant improvement for sparse columns where long runs of identical levels are common.

Are these changes tested?

All tests passing + added coverage around RLE accumulation mode trigger.

Are there any user-facing changes?

None.

Add `is_accumulating_rle()` and `extend_run()` methods to `RleEncoder`
that allow callers to detect when the encoder is in RLE accumulation
mode and bulk-extend runs without per-element overhead.

Upgrade `put_with_observer()` in `LevelEncoder` to exploit this: after
each `put()`, it checks whether the encoder entered accumulation mode.
If so, it scans ahead for the rest of the run, calls `extend_run()` to
batch it in O(1), and fires the observer once with the full run length.

This turns the previous O(n) per-value encoding + observation into
O(1) amortized per RLE run, which is a significant improvement for
sparse columns where long runs of identical levels are common.

Signed-off-by: Hippolyte Barraud <hippolyte.barraud@datadoghq.com>
@github-actions github-actions Bot added the parquet Changes to the parquet crate label Apr 25, 2026
@HippoBaro
Copy link
Copy Markdown
Contributor Author

@alamb this one is short and sweet, and should yield some nice perf wins

@alamb
Copy link
Copy Markdown
Contributor

alamb commented Apr 27, 2026

run benchmarks arrow_reader arrow_reader_clickbench

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4330052936-1853-wwkvf 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux

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

Comparing batch_rle_run (415b496) to 4fa8d2f (merge-base) diff
BENCH_NAME=arrow_reader_clickbench
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4330052936-1852-5f4l5 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux

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

Comparing batch_rle_run (415b496) to 4fa8d2f (merge-base) diff
BENCH_NAME=arrow_reader
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

Copy link
Copy Markdown
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me -- thank you @HippoBaro

FYI @etseidl and @jhorstmann

bit_packed_max_size.max(rle_max_size)
}

/// Returns `true` if the encoder is currently in RLE accumulation mode
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am always a bit confused about what part of the parquet module is (actually) part of its public API. For anyone else that is also confused:

RleEncoder is only reachable through the encodings module, and parquet/src/lib.rs:144 makes that module public only when the experimental feature is enabled. In the default build it is private, and even when exposed it is explicitly marked as having “no stability guarantees.” The docs.rs crate page for parquet 58.0.0 also omits enc odings from the normal public API surface, which is consistent with that setup: https://docs.rs/parquet/58.0.0/parquet/ and the feature list notes experimental as unstable: https://docs.rs/crate/parquet/latest

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The difference between public and public-experimental always trips me up!

@alamb
Copy link
Copy Markdown
Contributor

alamb commented Apr 27, 2026

I'll wait for benchmark confirmation before merging this one

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

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

group                                             batch_rle_run                          main
-----                                             -------------                          ----
arrow_reader_clickbench/async/Q1                  1.01   1095.9±4.05µs        ? ?/sec    1.00   1088.6±4.04µs        ? ?/sec
arrow_reader_clickbench/async/Q10                 1.00      6.4±0.02ms        ? ?/sec    1.00      6.4±0.03ms        ? ?/sec
arrow_reader_clickbench/async/Q11                 1.00      7.4±0.03ms        ? ?/sec    1.00      7.4±0.03ms        ? ?/sec
arrow_reader_clickbench/async/Q12                 1.00     13.9±0.07ms        ? ?/sec    1.00     14.0±0.05ms        ? ?/sec
arrow_reader_clickbench/async/Q13                 1.00     16.4±0.05ms        ? ?/sec    1.01     16.5±0.08ms        ? ?/sec
arrow_reader_clickbench/async/Q14                 1.00     15.3±0.04ms        ? ?/sec    1.00     15.4±0.05ms        ? ?/sec
arrow_reader_clickbench/async/Q19                 1.00      3.0±0.02ms        ? ?/sec    1.02      3.0±0.02ms        ? ?/sec
arrow_reader_clickbench/async/Q20                 1.00     81.4±0.43ms        ? ?/sec    1.12     91.3±0.54ms        ? ?/sec
arrow_reader_clickbench/async/Q21                 1.09    103.1±0.36ms        ? ?/sec    1.00    94.6±11.15ms        ? ?/sec
arrow_reader_clickbench/async/Q22                 1.11    128.9±5.38ms        ? ?/sec    1.00    115.8±7.03ms        ? ?/sec
arrow_reader_clickbench/async/Q23                 1.00    236.8±0.46ms        ? ?/sec    1.02    242.6±0.62ms        ? ?/sec
arrow_reader_clickbench/async/Q24                 1.00     18.6±0.05ms        ? ?/sec    1.01     18.8±0.10ms        ? ?/sec
arrow_reader_clickbench/async/Q27                 1.00     56.4±0.20ms        ? ?/sec    1.02     57.4±0.27ms        ? ?/sec
arrow_reader_clickbench/async/Q28                 1.00     56.2±0.09ms        ? ?/sec    1.03     58.1±0.50ms        ? ?/sec
arrow_reader_clickbench/async/Q30                 1.00     18.0±0.05ms        ? ?/sec    1.00     18.1±0.08ms        ? ?/sec
arrow_reader_clickbench/async/Q36                 1.00     14.2±0.11ms        ? ?/sec    1.02     14.5±0.12ms        ? ?/sec
arrow_reader_clickbench/async/Q37                 1.00      5.3±0.02ms        ? ?/sec    1.00      5.3±0.02ms        ? ?/sec
arrow_reader_clickbench/async/Q38                 1.00     12.7±0.09ms        ? ?/sec    1.02     12.9±0.12ms        ? ?/sec
arrow_reader_clickbench/async/Q39                 1.00     22.9±0.20ms        ? ?/sec    1.03     23.5±0.30ms        ? ?/sec
arrow_reader_clickbench/async/Q40                 1.00      5.4±0.02ms        ? ?/sec    1.01      5.4±0.03ms        ? ?/sec
arrow_reader_clickbench/async/Q41                 1.00      4.8±0.02ms        ? ?/sec    1.00      4.8±0.02ms        ? ?/sec
arrow_reader_clickbench/async/Q42                 1.01      3.5±0.02ms        ? ?/sec    1.00      3.4±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q1     1.02   1078.5±3.61µs        ? ?/sec    1.00   1061.4±4.53µs        ? ?/sec
arrow_reader_clickbench/async_object_store/Q10    1.01      6.3±0.03ms        ? ?/sec    1.00      6.3±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q11    1.00      7.2±0.04ms        ? ?/sec    1.01      7.2±0.04ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q12    1.00     13.8±0.03ms        ? ?/sec    1.01     13.9±0.06ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q13    1.00     16.2±0.04ms        ? ?/sec    1.01     16.3±0.08ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q14    1.00     15.3±0.04ms        ? ?/sec    1.00     15.3±0.06ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q19    1.00      2.9±0.02ms        ? ?/sec    1.01      2.9±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q20    1.00     70.4±0.25ms        ? ?/sec    1.01     71.0±0.37ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q21    1.00     79.5±0.19ms        ? ?/sec    1.00     79.9±0.35ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q22    1.00     96.1±0.21ms        ? ?/sec    1.01     97.5±0.33ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q23    1.00    215.5±0.58ms        ? ?/sec    1.07    229.9±0.60ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q24    1.00     18.5±0.06ms        ? ?/sec    1.00     18.5±0.12ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q27    1.00     55.5±0.20ms        ? ?/sec    1.01     56.1±0.32ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q28    1.00     55.3±0.12ms        ? ?/sec    1.03     56.8±0.46ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q30    1.00     17.6±0.03ms        ? ?/sec    1.00     17.7±0.08ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q36    1.00     13.7±0.11ms        ? ?/sec    1.02     14.0±0.13ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q37    1.00      5.2±0.01ms        ? ?/sec    1.00      5.2±0.02ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q38    1.00     12.1±0.10ms        ? ?/sec    1.02     12.3±0.12ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q39    1.00     21.9±0.16ms        ? ?/sec    1.01     22.2±0.16ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q40    1.01      5.2±0.02ms        ? ?/sec    1.00      5.1±0.02ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q41    1.01      4.6±0.02ms        ? ?/sec    1.00      4.5±0.01ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q42    1.00      3.3±0.01ms        ? ?/sec    1.01      3.3±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q1                   1.00    880.6±2.24µs        ? ?/sec    1.00    883.0±1.50µs        ? ?/sec
arrow_reader_clickbench/sync/Q10                  1.00      5.0±0.01ms        ? ?/sec    1.01      5.0±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q11                  1.00      5.9±0.02ms        ? ?/sec    1.00      5.9±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q12                  1.00     20.9±0.05ms        ? ?/sec    1.01     21.1±0.09ms        ? ?/sec
arrow_reader_clickbench/sync/Q13                  1.00     23.6±0.04ms        ? ?/sec    1.01     23.9±0.29ms        ? ?/sec
arrow_reader_clickbench/sync/Q14                  1.00     22.2±0.03ms        ? ?/sec    1.01     22.4±0.04ms        ? ?/sec
arrow_reader_clickbench/sync/Q19                  1.00      2.6±0.02ms        ? ?/sec    1.00      2.6±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q20                  1.00    116.8±0.29ms        ? ?/sec    1.02    119.4±0.46ms        ? ?/sec
arrow_reader_clickbench/sync/Q21                  1.00     90.6±0.18ms        ? ?/sec    1.06     96.2±0.34ms        ? ?/sec
arrow_reader_clickbench/sync/Q22                  1.00    136.3±0.33ms        ? ?/sec    1.02    139.6±0.34ms        ? ?/sec
arrow_reader_clickbench/sync/Q23                  1.00    284.0±7.92ms        ? ?/sec    1.00    285.0±9.05ms        ? ?/sec
arrow_reader_clickbench/sync/Q24                  1.00     25.6±0.05ms        ? ?/sec    1.01     25.9±0.06ms        ? ?/sec
arrow_reader_clickbench/sync/Q27                  1.00    104.1±0.33ms        ? ?/sec    1.02    105.8±0.35ms        ? ?/sec
arrow_reader_clickbench/sync/Q28                  1.00    101.4±0.36ms        ? ?/sec    1.03    104.1±0.48ms        ? ?/sec
arrow_reader_clickbench/sync/Q30                  1.00     17.8±0.04ms        ? ?/sec    1.01     17.9±0.06ms        ? ?/sec
arrow_reader_clickbench/sync/Q36                  1.00     21.5±0.04ms        ? ?/sec    1.01     21.7±0.05ms        ? ?/sec
arrow_reader_clickbench/sync/Q37                  1.00      6.6±0.01ms        ? ?/sec    1.00      6.6±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q38                  1.00     11.0±0.02ms        ? ?/sec    1.01     11.1±0.03ms        ? ?/sec
arrow_reader_clickbench/sync/Q39                  1.00     19.8±0.03ms        ? ?/sec    1.01     20.1±0.12ms        ? ?/sec
arrow_reader_clickbench/sync/Q40                  1.00      4.8±0.01ms        ? ?/sec    1.01      4.9±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q41                  1.00      5.4±0.03ms        ? ?/sec    1.00      5.4±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q42                  1.00      4.2±0.01ms        ? ?/sec    1.00      4.2±0.02ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 785.2s
Peak memory 4.6 GiB
Avg memory 4.5 GiB
CPU user 713.3s
CPU sys 70.0s
Peak spill 0 B

branch

Metric Value
Wall time 780.2s
Peak memory 4.8 GiB
Avg memory 4.7 GiB
CPU user 716.8s
CPU sys 61.9s
Peak spill 0 B

File an issue against this benchmark runner

Copy link
Copy Markdown
Contributor

@etseidl etseidl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a win to me. 😄

Comment thread parquet/src/encodings/levels.rs Outdated
@HippoBaro
Copy link
Copy Markdown
Contributor Author

@alamb you ran the benchmarks for the reader path, but this code relates to the write path 😅 arrow_writer should be the one.

@etseidl
Copy link
Copy Markdown
Contributor

etseidl commented Apr 27, 2026

run benchmark arrow_writer

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4330457485-1854-5j76c 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux

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

Comparing batch_rle_run (415b496) to 4fa8d2f (merge-base) diff
BENCH_NAME=arrow_writer
BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
BENCH_FILTER=
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

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

group                                                                                                      batch_rle_run                          main
-----                                                                                                      -------------                          ----
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                           1.00    833.0±9.90µs        ? ?/sec    1.01    839.5±9.24µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                          1.00    944.5±5.22µs        ? ?/sec    1.00    943.5±5.17µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                            1.00    838.2±9.68µs        ? ?/sec    1.01    844.4±9.27µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, mandatory, no NULLs                                     1.00    276.8±0.36µs        ? ?/sec    1.00    275.6±0.16µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, half NULLs                                    1.01    386.3±0.55µs        ? ?/sec    1.00    383.5±0.74µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, no NULLs                                      1.00    280.6±0.16µs        ? ?/sec    1.00    279.3±0.17µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, mandatory, no NULLs                                          1.00    405.3±4.93µs        ? ?/sec    1.01    410.7±7.29µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, half NULLs                                         1.00    465.7±3.73µs        ? ?/sec    1.00    464.9±4.37µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, no NULLs                                           1.00    411.8±5.94µs        ? ?/sec    1.01    415.4±7.24µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, mandatory, no NULLs                                 1.00     79.8±0.04µs        ? ?/sec    1.00     79.7±0.04µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, half NULLs                                1.00    108.0±0.08µs        ? ?/sec    1.00    107.9±0.07µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, no NULLs                                  1.00     83.5±0.06µs        ? ?/sec    1.00     83.3±0.04µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs                                      1.00    145.4±0.32µs        ? ?/sec    1.01    146.1±0.82µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs, short string                        1.00    142.3±1.59µs        ? ?/sec    1.00    142.0±0.62µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, half NULLs                                     1.00    146.3±0.89µs        ? ?/sec    1.04    152.2±7.06µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, no NULLs                                       1.00    151.8±0.36µs        ? ?/sec    1.00    151.4±0.24µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs     1.00  1032.3±60.78µs        ? ?/sec    1.04   1078.2±8.27µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, half NULLs    1.00    671.4±0.51µs        ? ?/sec    1.00    669.7±1.02µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, no NULLs      1.00   987.7±12.55µs        ? ?/sec    1.01    995.0±7.12µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                 1.04    189.3±0.49µs        ? ?/sec    1.00    182.4±0.48µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                1.02    294.4±0.27µs        ? ?/sec    1.00    288.3±0.44µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                  1.03    194.4±0.30µs        ? ?/sec    1.00    188.8±0.39µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, mandatory, no NULLs        1.01    129.1±0.31µs        ? ?/sec    1.00    127.9±0.27µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, half NULLs       1.00    182.8±0.21µs        ? ?/sec    1.00    183.4±0.22µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, no NULLs         1.00    131.9±0.23µs        ? ?/sec    1.01    133.1±0.23µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, mandatory, no NULLs                    1.00     59.2±0.07µs        ? ?/sec    1.01     59.8±0.05µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, half NULLs                   1.00    146.5±0.13µs        ? ?/sec    1.01    147.4±0.14µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, no NULLs                     1.00     63.0±0.10µs        ? ?/sec    1.00     62.9±0.03µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, mandatory, no NULLs                    1.00    800.5±0.64µs        ? ?/sec    1.00    802.8±0.44µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, half NULLs                   1.00    510.0±0.48µs        ? ?/sec    1.00    511.2±0.58µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, no NULLs                     1.00    803.9±0.80µs        ? ?/sec    1.03   824.4±21.56µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, mandatory, no NULLs                                1.00     23.5±0.03µs        ? ?/sec    1.02     23.9±0.10µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, half NULLs                               1.00    130.5±0.25µs        ? ?/sec    1.01    132.4±0.16µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, no NULLs                                 1.00     27.5±0.08µs        ? ?/sec    1.05     28.9±0.06µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, mandatory, no NULLs                     1.00     73.3±0.21µs        ? ?/sec    1.03     75.4±0.18µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, half NULLs                    1.00    128.5±0.19µs        ? ?/sec    1.02    130.6±0.30µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, no NULLs                      1.00     78.2±0.51µs        ? ?/sec    1.02     79.8±0.14µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, mandatory, no NULLs                                 1.00      5.4±0.03µs        ? ?/sec    1.01      5.5±0.01µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, half NULLs                                1.00     93.0±0.09µs        ? ?/sec    1.01     94.3±0.08µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, no NULLs                                  1.00      8.7±0.04µs        ? ?/sec    1.02      8.9±0.04µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, mandatory, no NULLs                     1.00    144.5±0.58µs        ? ?/sec    1.03    149.5±0.70µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, half NULLs                    1.00    197.2±0.21µs        ? ?/sec    1.02    200.8±0.20µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, no NULLs                      1.00    151.2±0.38µs        ? ?/sec    1.01    152.7±0.43µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, mandatory, no NULLs                                 1.00      7.6±0.01µs        ? ?/sec    1.00      7.6±0.01µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, half NULLs                                1.00    126.6±0.10µs        ? ?/sec    1.02    129.5±0.11µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, no NULLs                                  1.00     11.1±0.03µs        ? ?/sec    1.01     11.2±0.04µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, mandatory, no NULLs                     1.00    301.0±1.15µs        ? ?/sec    1.14   343.2±18.56µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, half NULLs                    1.00    268.9±0.49µs        ? ?/sec    1.00    269.5±0.36µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, no NULLs                      1.00    305.8±0.92µs        ? ?/sec    1.00    306.2±0.57µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, mandatory, no NULLs                                 1.00     12.1±0.03µs        ? ?/sec    1.01     12.2±0.02µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, half NULLs                                1.00    123.7±0.11µs        ? ?/sec    1.02    125.7±0.21µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, no NULLs                                  1.00     15.9±0.04µs        ? ?/sec    1.04     16.4±0.04µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed increasing value                                    1.01     86.6±0.51µs        ? ?/sec    1.00     85.6±0.38µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed single value                                        1.01     78.1±0.23µs        ? ?/sec    1.00     77.4±0.37µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip increasing value                               1.01     50.2±0.35µs        ? ?/sec    1.00     49.7±0.27µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip single value                                   1.01     45.7±0.12µs        ? ?/sec    1.00     45.1±0.19µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip stepped increasing value                       1.01     73.7±0.22µs        ? ?/sec    1.00     73.2±0.09µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.00     88.3±0.12µs        ? ?/sec    1.00     88.5±0.26µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, half NULLs                          1.00     93.7±0.12µs        ? ?/sec    1.00     93.4±0.12µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, no NULLs                            1.00     90.5±0.12µs        ? ?/sec    1.00     90.3±0.23µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed stepped increasing value                            1.00    105.5±0.20µs        ? ?/sec    1.00    105.4±0.12µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, mandatory, no NULLs                                1.00    124.4±0.32µs        ? ?/sec    1.00    124.2±0.23µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, half NULLs                               1.00    156.1±0.58µs        ? ?/sec    1.00    155.4±0.27µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, no NULLs                                 1.01    129.1±0.49µs        ? ?/sec    1.00    128.0±0.40µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.01     54.1±0.06µs        ? ?/sec    1.00     53.8±0.04µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.00    118.7±0.07µs        ? ?/sec    1.00    119.1±0.15µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.00     57.5±0.07µs        ? ?/sec    1.00     57.6±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.00     83.9±0.06µs        ? ?/sec    1.00     83.6±0.05µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, half NULLs                          1.00    136.4±0.05µs        ? ?/sec    1.00    136.3±0.10µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, no NULLs                            1.00     87.6±0.06µs        ? ?/sec    1.00     87.5±0.04µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, mandatory, no NULLs                                1.00     47.7±0.07µs        ? ?/sec    1.00     47.5±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, half NULLs                               1.00    116.2±0.07µs        ? ?/sec    1.00    115.9±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, no NULLs                                 1.01     50.8±0.09µs        ? ?/sec    1.00     50.3±0.03µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed increasing value                                    1.00     77.7±0.11µs        ? ?/sec    1.00     77.4±0.16µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed single value                                        1.00     74.5±0.12µs        ? ?/sec    1.00     74.8±0.20µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip increasing value                               1.00     43.3±0.11µs        ? ?/sec    1.00     43.1±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip single value                                   1.00     41.6±0.05µs        ? ?/sec    1.00     41.7±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip stepped increasing value                       1.01     67.2±0.20µs        ? ?/sec    1.00     66.9±0.05µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.00     78.9±0.09µs        ? ?/sec    1.01     79.4±0.08µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, half NULLs                          1.00     85.5±0.09µs        ? ?/sec    1.01     86.1±0.08µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, no NULLs                            1.00     81.1±0.08µs        ? ?/sec    1.01     81.8±0.11µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed stepped increasing value                            1.00     99.1±0.11µs        ? ?/sec    1.00     99.1±0.12µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, mandatory, no NULLs                                1.00    114.1±0.12µs        ? ?/sec    1.01    114.8±0.25µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, half NULLs                               1.00    143.8±0.11µs        ? ?/sec    1.00    143.9±0.11µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, no NULLs                                 1.00    118.2±0.11µs        ? ?/sec    1.00    118.3±0.13µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.00     83.1±0.09µs        ? ?/sec    1.00     83.1±0.08µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.00    127.6±0.12µs        ? ?/sec    1.00    127.8±0.12µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.00     87.0±0.14µs        ? ?/sec    1.02     88.4±0.07µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.00     86.8±0.31µs        ? ?/sec    1.00     86.8±0.25µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, half NULLs                          1.00    131.1±0.12µs        ? ?/sec    1.00    131.5±0.14µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, no NULLs                            1.00     90.2±0.06µs        ? ?/sec    1.00     90.6±0.32µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, mandatory, no NULLs                                1.00     54.3±0.06µs        ? ?/sec    1.03     55.8±0.08µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, half NULLs                               1.00    113.4±0.12µs        ? ?/sec    1.00    113.3±0.11µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, no NULLs                                 1.01     58.5±0.08µs        ? ?/sec    1.00     57.9±0.06µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed increasing value                                               1.00     53.5±0.55µs        ? ?/sec    1.01     53.8±0.34µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed single value                                                   1.00     45.3±0.24µs        ? ?/sec    1.00     45.2±0.14µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip increasing value                                          1.00     33.4±0.20µs        ? ?/sec    1.00     33.4±0.22µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip single value                                              1.00     28.8±0.09µs        ? ?/sec    1.00     28.7±0.12µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip stepped increasing value                                  1.00     56.2±0.09µs        ? ?/sec    1.00     56.2±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, mandatory, no NULLs                                      1.00     71.5±0.11µs        ? ?/sec    1.00     71.4±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, half NULLs                                     1.00     76.6±0.07µs        ? ?/sec    1.00     76.6±0.09µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, no NULLs                                       1.00     73.4±0.12µs        ? ?/sec    1.00     73.3±0.12µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed stepped increasing value                                       1.00     72.6±0.11µs        ? ?/sec    1.00     72.8±0.14µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, mandatory, no NULLs                                           1.00     91.6±0.15µs        ? ?/sec    1.00     91.6±0.12µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, half NULLs                                          1.00    121.6±0.08µs        ? ?/sec    1.00    121.8±0.14µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, no NULLs                                            1.00     95.6±0.17µs        ? ?/sec    1.00     95.2±0.17µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     21.0±0.03µs        ? ?/sec    1.00     21.1±0.02µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, half NULLs                              1.00     85.7±0.10µs        ? ?/sec    1.00     85.8±0.10µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, no NULLs                                1.00     24.7±0.02µs        ? ?/sec    1.00     24.7±0.04µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, mandatory, no NULLs                                      1.00     51.2±0.03µs        ? ?/sec    1.00     51.0±0.05µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, half NULLs                                     1.00    103.3±0.07µs        ? ?/sec    1.00    103.6±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, no NULLs                                       1.00     54.8±0.03µs        ? ?/sec    1.00     54.8±0.04µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, mandatory, no NULLs                                           1.00     13.8±0.04µs        ? ?/sec    1.01     13.9±0.03µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, half NULLs                                          1.00     83.1±0.06µs        ? ?/sec    1.00     82.9±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, no NULLs                                            1.00     17.7±0.03µs        ? ?/sec    1.00     17.8±0.02µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed increasing value                                               1.00     49.4±0.60µs        ? ?/sec    1.01     49.9±0.57µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed single value                                                   1.01     41.8±0.24µs        ? ?/sec    1.00     41.4±0.21µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip increasing value                                          1.00     31.4±0.19µs        ? ?/sec    1.00     31.5±0.40µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip single value                                              1.00     26.6±0.08µs        ? ?/sec    1.01     26.8±0.15µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip stepped increasing value                                  1.00     54.4±0.07µs        ? ?/sec    1.00     54.2±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, mandatory, no NULLs                                      1.00     69.5±0.10µs        ? ?/sec    1.00     69.2±0.26µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, half NULLs                                     1.00     75.4±0.11µs        ? ?/sec    1.00     75.4±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, no NULLs                                       1.00     71.9±0.08µs        ? ?/sec    1.00     71.6±0.13µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed stepped increasing value                                       1.00     69.1±0.14µs        ? ?/sec    1.00     68.9±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, mandatory, no NULLs                                           1.00     87.7±0.24µs        ? ?/sec    1.00     87.6±0.25µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, half NULLs                                          1.00    119.1±0.18µs        ? ?/sec    1.03    122.2±2.61µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, no NULLs                                            1.00     91.7±0.20µs        ? ?/sec    1.00     91.9±0.70µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     17.4±0.02µs        ? ?/sec    1.00     17.3±0.02µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, half NULLs                              1.00     82.5±0.05µs        ? ?/sec    1.00     82.5±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, no NULLs                                1.00     20.9±0.05µs        ? ?/sec    1.00     21.0±0.03µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, mandatory, no NULLs                                      1.00     47.4±0.02µs        ? ?/sec    1.00     47.2±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, half NULLs                                     1.02    101.9±0.05µs        ? ?/sec    1.00    100.1±0.09µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, no NULLs                                       1.00     51.2±0.04µs        ? ?/sec    1.00     51.1±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, mandatory, no NULLs                                           1.00      9.9±0.03µs        ? ?/sec    1.01     10.0±0.05µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, half NULLs                                          1.01     80.2±0.05µs        ? ?/sec    1.00     79.7±0.10µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, no NULLs                                            1.00     13.7±0.02µs        ? ?/sec    1.00     13.7±0.05µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed increasing value                                               1.01     41.1±0.32µs        ? ?/sec    1.00     40.6±0.17µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed single value                                                   1.00     37.9±0.16µs        ? ?/sec    1.00     38.0±0.17µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip increasing value                                          1.02     24.6±0.14µs        ? ?/sec    1.00     24.1±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip single value                                              1.00     22.8±0.06µs        ? ?/sec    1.00     22.9±0.08µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip stepped increasing value                                  1.00     47.9±0.05µs        ? ?/sec    1.01     48.2±0.06µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, mandatory, no NULLs                                      1.00     60.1±0.07µs        ? ?/sec    1.01     60.4±0.09µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, half NULLs                                     1.00     67.1±0.07µs        ? ?/sec    1.00     67.1±0.07µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, no NULLs                                       1.00     62.6±0.06µs        ? ?/sec    1.00     62.4±0.10µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed stepped increasing value                                       1.00     61.8±0.09µs        ? ?/sec    1.00     61.9±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, mandatory, no NULLs                                           1.00     77.2±0.13µs        ? ?/sec    1.01     77.6±0.13µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, half NULLs                                          1.00    107.1±0.13µs        ? ?/sec    1.00    106.9±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, no NULLs                                            1.00     81.4±0.12µs        ? ?/sec    1.00     81.7±0.14µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     46.2±0.04µs        ? ?/sec    1.00     46.2±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, half NULLs                              1.00     91.8±0.07µs        ? ?/sec    1.00     91.8±0.10µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, no NULLs                                1.00     50.7±0.07µs        ? ?/sec    1.00     50.9±0.02µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, mandatory, no NULLs                                      1.00     49.5±0.04µs        ? ?/sec    1.01     49.8±0.15µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, half NULLs                                     1.00     94.1±0.10µs        ? ?/sec    1.00     93.8±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, no NULLs                                       1.00     53.2±0.07µs        ? ?/sec    1.01     53.7±0.07µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, mandatory, no NULLs                                           1.01     16.5±0.03µs        ? ?/sec    1.00     16.4±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, half NULLs                                          1.01     77.2±0.07µs        ? ?/sec    1.00     76.7±0.10µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, no NULLs                                            1.00     20.3±0.03µs        ? ?/sec    1.01     20.4±0.08µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed increasing value                                                1.00     53.5±0.37µs        ? ?/sec    1.00     53.5±0.37µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed single value                                                    1.00     44.7±0.23µs        ? ?/sec    1.01     45.0±0.23µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip increasing value                                           1.00     33.3±0.18µs        ? ?/sec    1.00     33.4±0.20µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip single value                                               1.00     28.6±0.07µs        ? ?/sec    1.00     28.6±0.15µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip stepped increasing value                                   1.00     56.2±0.11µs        ? ?/sec    1.00     56.2±0.08µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, mandatory, no NULLs                                       1.00     71.6±0.05µs        ? ?/sec    1.00     71.7±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, half NULLs                                      1.00     76.6±0.05µs        ? ?/sec    1.00     76.8±0.07µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, no NULLs                                        1.00     73.6±0.06µs        ? ?/sec    1.01     74.0±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed stepped increasing value                                        1.00     72.4±0.13µs        ? ?/sec    1.00     72.4±0.14µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, mandatory, no NULLs                                            1.00     91.5±0.09µs        ? ?/sec    1.01     92.7±0.09µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, half NULLs                                           1.00    121.1±0.08µs        ? ?/sec    1.01    122.1±0.22µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, no NULLs                                             1.00     95.3±0.12µs        ? ?/sec    1.01     96.0±0.08µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, mandatory, no NULLs                                1.00     20.8±0.03µs        ? ?/sec    1.01     20.9±0.06µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, half NULLs                               1.00     85.3±0.07µs        ? ?/sec    1.00     85.5±0.15µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, no NULLs                                 1.01     24.6±0.04µs        ? ?/sec    1.00     24.5±0.04µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, mandatory, no NULLs                                       1.00     50.7±0.04µs        ? ?/sec    1.00     50.6±0.04µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, half NULLs                                      1.01    103.3±0.06µs        ? ?/sec    1.00    102.6±0.20µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, no NULLs                                        1.01     54.8±0.02µs        ? ?/sec    1.00     54.2±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, mandatory, no NULLs                                            1.00     13.5±0.05µs        ? ?/sec    1.01     13.7±0.03µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, half NULLs                                           1.00     82.3±0.06µs        ? ?/sec    1.01     82.7±0.08µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, no NULLs                                             1.00     17.4±0.03µs        ? ?/sec    1.00     17.5±0.03µs        ? ?/sec
arrow_array_reader/ListArray/plain encoded optional strings half NULLs                                     1.00      3.9±0.01ms        ? ?/sec    1.00      3.9±0.02ms        ? ?/sec
arrow_array_reader/ListArray/plain encoded optional strings no NULLs                                       1.00      7.1±0.03ms        ? ?/sec    1.00      7.1±0.03ms        ? ?/sec
arrow_array_reader/StringArray/const delta byte array encoded, mandatory, no NULLs                         1.00    533.8±2.87µs        ? ?/sec    1.02    543.4±4.08µs        ? ?/sec
arrow_array_reader/StringArray/const delta length byte array encoded, mandatory, no NULLs                  1.00    214.3±0.72µs        ? ?/sec    1.02    219.6±2.00µs        ? ?/sec
arrow_array_reader/StringArray/const prefix delta byte array encoded, mandatory, no NULLs                  1.00   749.4±46.80µs        ? ?/sec    1.06   796.5±41.59µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, mandatory, no NULLs                                     1.03    277.4±0.14µs        ? ?/sec    1.00    268.5±0.15µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, half NULLs                                    1.00    381.5±1.02µs        ? ?/sec    1.01    385.8±0.89µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, no NULLs                                      1.00    275.0±0.17µs        ? ?/sec    1.01    278.2±0.18µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, mandatory, no NULLs                                          1.00    453.8±4.53µs        ? ?/sec    1.00    455.2±8.11µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, half NULLs                                         1.00    490.3±3.35µs        ? ?/sec    1.01    494.4±4.99µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, no NULLs                                           1.00    456.0±4.34µs        ? ?/sec    1.02    464.7±8.41µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, mandatory, no NULLs                                1.00    255.7±0.77µs        ? ?/sec    1.00    256.2±0.96µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, half NULLs                               1.00    279.3±1.30µs        ? ?/sec    1.01    281.6±1.48µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, no NULLs                                 1.00    259.7±0.76µs        ? ?/sec    1.00    260.3±1.45µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, mandatory, no NULLs                                 1.00     79.7±0.03µs        ? ?/sec    1.00     79.8±0.05µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, half NULLs                                1.00    108.7±0.14µs        ? ?/sec    1.00    108.2±0.10µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, no NULLs                                  1.00     83.5±0.19µs        ? ?/sec    1.00     83.5±0.05µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, mandatory, no NULLs                                      1.02    220.8±0.21µs        ? ?/sec    1.00    216.9±0.37µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, half NULLs                                     1.01    184.2±0.22µs        ? ?/sec    1.00    182.0±0.29µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, no NULLs                                       1.02    229.3±0.41µs        ? ?/sec    1.00    225.6±0.29µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed increasing value                                              1.00     53.9±0.37µs        ? ?/sec    1.00     53.7±0.34µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed single value                                                  1.01     45.5±0.14µs        ? ?/sec    1.00     45.2±0.14µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip increasing value                                         1.01     33.6±0.17µs        ? ?/sec    1.00     33.4±0.21µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip single value                                             1.01     29.2±0.08µs        ? ?/sec    1.00     28.8±0.16µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip stepped increasing value                                 1.00     56.3±0.07µs        ? ?/sec    1.00     56.3±0.06µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, mandatory, no NULLs                                     1.00     75.9±0.08µs        ? ?/sec    1.00     76.2±0.07µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, half NULLs                                    1.00     79.5±0.07µs        ? ?/sec    1.00     79.6±0.10µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, no NULLs                                      1.00     77.9±0.08µs        ? ?/sec    1.00     78.2±0.07µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed stepped increasing value                                      1.00     72.9±0.09µs        ? ?/sec    1.01     73.3±0.12µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, mandatory, no NULLs                                          1.00     97.5±0.16µs        ? ?/sec    1.01     98.1±0.10µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, half NULLs                                         1.00    125.5±0.13µs        ? ?/sec    1.00    125.7±0.26µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, no NULLs                                           1.00    101.1±0.15µs        ? ?/sec    1.01    101.6±0.51µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     20.9±0.03µs        ? ?/sec    1.01     21.1±0.02µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, half NULLs                             1.00     85.6±0.11µs        ? ?/sec    1.00     85.6±0.05µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, no NULLs                               1.00     24.7±0.03µs        ? ?/sec    1.01     24.8±0.04µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, mandatory, no NULLs                                     1.00     50.9±0.03µs        ? ?/sec    1.00     51.0±0.05µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, half NULLs                                    1.00    103.4±0.11µs        ? ?/sec    1.00    103.8±0.08µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, no NULLs                                      1.00     54.7±0.03µs        ? ?/sec    1.00     54.7±0.06µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, mandatory, no NULLs                                          1.00     13.8±0.04µs        ? ?/sec    1.01     13.9±0.03µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, half NULLs                                         1.00     82.8±0.08µs        ? ?/sec    1.00     83.1±0.15µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, no NULLs                                           1.00     17.5±0.03µs        ? ?/sec    1.00     17.6±0.02µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed increasing value                                              1.00     50.3±0.44µs        ? ?/sec    1.00     50.3±0.34µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed single value                                                  1.01     41.8±0.21µs        ? ?/sec    1.00     41.6±0.11µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip increasing value                                         1.00     31.5±0.29µs        ? ?/sec    1.01     31.7±0.19µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip single value                                             1.00     26.8±0.08µs        ? ?/sec    1.00     26.9±0.06µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip stepped increasing value                                 1.00     54.6±0.07µs        ? ?/sec    1.00     54.4±0.08µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, mandatory, no NULLs                                     1.00     69.7±0.14µs        ? ?/sec    1.00     69.6±0.13µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, half NULLs                                    1.00     75.2±0.10µs        ? ?/sec    1.00     75.3±0.10µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, no NULLs                                      1.00     71.6±0.18µs        ? ?/sec    1.00     71.6±0.12µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed stepped increasing value                                      1.00     69.0±0.14µs        ? ?/sec    1.00     69.1±0.11µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, mandatory, no NULLs                                          1.00     87.9±0.28µs        ? ?/sec    1.01     88.4±0.20µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, half NULLs                                         1.00    118.8±0.12µs        ? ?/sec    1.00    119.1±0.16µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, no NULLs                                           1.00     92.0±0.30µs        ? ?/sec    1.00     91.7±0.34µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     17.5±0.03µs        ? ?/sec    1.00     17.5±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, half NULLs                             1.00     82.3±0.04µs        ? ?/sec    1.00     82.4±0.04µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, no NULLs                               1.01     21.2±0.04µs        ? ?/sec    1.00     20.8±0.02µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, mandatory, no NULLs                                     1.01     47.8±0.03µs        ? ?/sec    1.00     47.6±0.02µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, half NULLs                                    1.00     99.8±0.08µs        ? ?/sec    1.00     99.7±0.08µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, no NULLs                                      1.00     51.4±0.04µs        ? ?/sec    1.00     51.3±0.05µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, mandatory, no NULLs                                          1.00     10.0±0.05µs        ? ?/sec    1.00     10.1±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, half NULLs                                         1.00     79.4±0.07µs        ? ?/sec    1.01     80.2±0.06µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, no NULLs                                           1.00     14.0±0.05µs        ? ?/sec    1.00     13.9±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed increasing value                                              1.01     41.0±0.38µs        ? ?/sec    1.00     40.7±0.21µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed single value                                                  1.00     37.8±0.17µs        ? ?/sec    1.00     37.8±0.16µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip increasing value                                         1.00     24.3±0.10µs        ? ?/sec    1.00     24.2±0.11µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip single value                                             1.01     23.0±0.10µs        ? ?/sec    1.00     22.8±0.07µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip stepped increasing value                                 1.00     47.9±0.06µs        ? ?/sec    1.00     47.8±0.06µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, mandatory, no NULLs                                     1.00     60.2±0.08µs        ? ?/sec    1.00     60.5±0.09µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, half NULLs                                    1.00     67.0±0.08µs        ? ?/sec    1.00     67.3±0.08µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, no NULLs                                      1.00     62.4±0.08µs        ? ?/sec    1.00     62.5±0.10µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed stepped increasing value                                      1.00     61.9±0.09µs        ? ?/sec    1.00     62.0±0.10µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, mandatory, no NULLs                                          1.00     77.5±0.13µs        ? ?/sec    1.00     77.8±0.13µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, half NULLs                                         1.00    106.8±0.11µs        ? ?/sec    1.00    106.9±0.17µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, no NULLs                                           1.00     81.5±0.13µs        ? ?/sec    1.00     81.8±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, mandatory, no NULLs                              1.01     46.6±0.04µs        ? ?/sec    1.00     46.3±0.03µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, half NULLs                             1.00     91.8±0.09µs        ? ?/sec    1.00     91.4±0.11µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, no NULLs                               1.02     50.8±0.03µs        ? ?/sec    1.00     49.9±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, mandatory, no NULLs                                     1.00     49.5±0.07µs        ? ?/sec    1.00     49.8±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, half NULLs                                    1.01     94.5±0.13µs        ? ?/sec    1.00     94.1±0.13µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, no NULLs                                      1.00     53.3±0.08µs        ? ?/sec    1.01     53.8±0.05µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, mandatory, no NULLs                                          1.00     16.5±0.03µs        ? ?/sec    1.00     16.5±0.02µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, half NULLs                                         1.00     76.6±0.07µs        ? ?/sec    1.01     77.1±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, no NULLs                                           1.00     20.5±0.03µs        ? ?/sec    1.00     20.4±0.02µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed increasing value                                               1.00     51.9±0.45µs        ? ?/sec    1.02     53.0±0.36µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed single value                                                   1.00     43.6±0.54µs        ? ?/sec    1.02     44.5±0.18µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip increasing value                                          1.00     32.6±0.26µs        ? ?/sec    1.02     33.2±0.25µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip single value                                              1.00     28.0±0.33µs        ? ?/sec    1.02     28.5±0.11µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip stepped increasing value                                  1.01     56.1±0.08µs        ? ?/sec    1.00     55.8±0.09µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, mandatory, no NULLs                                      1.00     74.9±0.12µs        ? ?/sec    1.00     74.9±0.23µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, half NULLs                                     1.01     78.9±0.07µs        ? ?/sec    1.00     78.5±0.06µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, no NULLs                                       1.00     77.2±0.09µs        ? ?/sec    1.00     77.2±0.09µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed stepped increasing value                                       1.00     72.4±0.16µs        ? ?/sec    1.00     72.1±0.11µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, mandatory, no NULLs                                           1.00     96.0±0.18µs        ? ?/sec    1.00     96.2±0.15µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, half NULLs                                          1.00    124.4±0.12µs        ? ?/sec    1.00    124.7±0.14µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, no NULLs                                            1.00    100.2±0.14µs        ? ?/sec    1.00    100.1±0.12µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     20.9±0.03µs        ? ?/sec    1.00     20.9±0.03µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, half NULLs                              1.00     85.8±0.38µs        ? ?/sec    1.00     85.4±0.08µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, no NULLs                                1.00     24.4±0.04µs        ? ?/sec    1.01     24.6±0.03µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, mandatory, no NULLs                                      1.01     51.0±0.02µs        ? ?/sec    1.00     50.6±0.05µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, half NULLs                                     1.00    103.5±0.07µs        ? ?/sec    1.00    103.3±0.08µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, no NULLs                                       1.01     54.7±0.07µs        ? ?/sec    1.00     54.1±0.10µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, mandatory, no NULLs                                           1.00     13.5±0.04µs        ? ?/sec    1.02     13.7±0.02µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, half NULLs                                          1.00     82.3±0.08µs        ? ?/sec    1.02     84.3±0.11µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, no NULLs                                            1.01     17.4±0.06µs        ? ?/sec    1.00     17.3±0.04µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, half NULLs            1.00     80.0±0.04µs        ? ?/sec    1.00     80.0±0.04µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, no NULLs              1.00     13.8±0.03µs        ? ?/sec    1.01     14.0±0.02µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, half NULLs             1.01    141.3±0.09µs        ? ?/sec    1.00    140.5±0.12µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, no NULLs               1.00     65.4±0.06µs        ? ?/sec    1.00     65.5±0.04µs        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 2820.6s
Peak memory 4.3 GiB
Avg memory 4.2 GiB
CPU user 2818.5s
CPU sys 1.2s
Peak spill 0 B

branch

Metric Value
Wall time 2810.6s
Peak memory 4.3 GiB
Avg memory 4.2 GiB
CPU user 2805.8s
CPU sys 0.4s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot
Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

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

group                                              batch_rle_run                          main
-----                                              -------------                          ----
bool/bloom_filter                                  1.04     13.0±0.09ms    19.2 MB/sec    1.00     12.6±0.04ms    19.9 MB/sec
bool/cdc                                           1.03     15.6±0.10ms    16.0 MB/sec    1.00     15.2±0.05ms    16.5 MB/sec
bool/default                                       1.05     11.0±0.08ms    22.7 MB/sec    1.00     10.5±0.05ms    23.8 MB/sec
bool/parquet_2                                     1.03     14.7±0.10ms    17.0 MB/sec    1.00     14.2±0.05ms    17.6 MB/sec
bool/zstd                                          1.04     11.5±0.08ms    21.8 MB/sec    1.00     11.0±0.05ms    22.7 MB/sec
bool/zstd_parquet_2                                1.03     15.0±0.09ms    16.7 MB/sec    1.00     14.6±0.05ms    17.1 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.03ms    17.8 MB/sec    1.00      7.0±0.03ms    17.9 MB/sec
bool_non_null/cdc                                  1.02      6.8±0.03ms    18.3 MB/sec    1.00      6.7±0.02ms    18.6 MB/sec
bool_non_null/default                              1.01      4.2±0.02ms    29.4 MB/sec    1.00      4.2±0.02ms    29.7 MB/sec
bool_non_null/parquet_2                            1.00      9.0±0.03ms    13.9 MB/sec    1.00      9.0±0.03ms    13.9 MB/sec
bool_non_null/zstd                                 1.01      4.6±0.02ms    27.1 MB/sec    1.00      4.6±0.02ms    27.4 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.03ms    13.3 MB/sec    1.00      9.4±0.03ms    13.3 MB/sec
float_with_nans/bloom_filter                       1.02     94.0±0.44ms   149.0 MB/sec    1.00     92.4±0.36ms   151.5 MB/sec
float_with_nans/cdc                                1.00     81.5±0.17ms   171.8 MB/sec    1.00     81.5±0.22ms   171.7 MB/sec
float_with_nans/default                            1.01     75.1±0.86ms   186.4 MB/sec    1.00     74.0±0.24ms   189.1 MB/sec
float_with_nans/parquet_2                          1.01     95.3±0.27ms   146.9 MB/sec    1.00     94.4±0.22ms   148.3 MB/sec
float_with_nans/zstd                               1.00    112.5±0.36ms   124.4 MB/sec    1.00    112.0±0.26ms   125.0 MB/sec
float_with_nans/zstd_parquet_2                     1.01    133.1±0.45ms   105.2 MB/sec    1.00    131.6±0.22ms   106.4 MB/sec
list_primitive/bloom_filter                        1.01    319.6±2.68ms  1706.6 MB/sec    1.00    317.7±1.36ms  1716.9 MB/sec
list_primitive/cdc                                 1.00    343.8±2.83ms  1586.3 MB/sec    1.01    346.2±2.94ms  1575.2 MB/sec
list_primitive/default                             1.00    238.2±2.58ms     2.2 GB/sec    1.01    239.5±1.65ms     2.2 GB/sec
list_primitive/parquet_2                           1.00    256.8±0.48ms     2.1 GB/sec    1.02    262.0±1.00ms     2.0 GB/sec
list_primitive/zstd                                1.02    488.3±2.17ms  1116.8 MB/sec    1.00    479.0±2.20ms  1138.6 MB/sec
list_primitive/zstd_parquet_2                      1.01    479.5±0.77ms  1137.3 MB/sec    1.00    476.8±0.42ms  1143.9 MB/sec
list_primitive_non_null/bloom_filter               1.00    409.6±5.41ms  1328.6 MB/sec    1.07   436.6±19.21ms  1246.6 MB/sec
list_primitive_non_null/cdc                        1.00    425.1±9.00ms  1280.2 MB/sec    1.00    426.5±7.34ms  1276.1 MB/sec
list_primitive_non_null/default                    1.00    279.6±4.59ms  1946.2 MB/sec    1.10   307.5±13.54ms  1770.1 MB/sec
list_primitive_non_null/parquet_2                  1.00   293.8±11.66ms  1852.2 MB/sec    1.00    293.6±7.99ms  1853.9 MB/sec
list_primitive_non_null/zstd                       1.00    697.0±9.93ms   780.9 MB/sec    1.01   706.5±14.66ms   770.3 MB/sec
list_primitive_non_null/zstd_parquet_2             1.00    677.5±0.49ms   803.3 MB/sec    1.02    689.1±1.40ms   789.8 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     11.7±0.22ms     3.1 GB/sec    1.69     19.7±0.08ms  1892.9 MB/sec
list_primitive_sparse_99pct_null/cdc               1.00     22.4±0.12ms  1664.8 MB/sec    1.35     30.3±0.12ms  1231.3 MB/sec
list_primitive_sparse_99pct_null/default           1.00     11.2±0.10ms     3.3 GB/sec    1.75     19.5±0.11ms  1915.4 MB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     11.6±0.10ms     3.2 GB/sec    1.68     19.4±0.06ms  1926.2 MB/sec
list_primitive_sparse_99pct_null/zstd              1.00     13.6±0.09ms     2.7 GB/sec    1.57     21.3±0.07ms  1751.1 MB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.00     11.7±0.06ms     3.1 GB/sec    1.67     19.6±0.11ms  1906.7 MB/sec
primitive/bloom_filter                             1.04    150.5±0.66ms   298.2 MB/sec    1.00    145.3±0.52ms   308.8 MB/sec
primitive/cdc                                      1.03    157.0±0.69ms   285.8 MB/sec    1.00    152.6±0.47ms   294.0 MB/sec
primitive/default                                  1.03    118.1±0.53ms   380.0 MB/sec    1.00    114.3±0.30ms   392.5 MB/sec
primitive/parquet_2                                1.04    134.6±1.66ms   333.3 MB/sec    1.00    129.7±0.65ms   345.9 MB/sec
primitive/zstd                                     1.03    148.5±0.78ms   302.2 MB/sec    1.00    143.9±0.45ms   311.8 MB/sec
primitive/zstd_parquet_2                           1.03    167.6±1.68ms   267.7 MB/sec    1.00    162.7±0.40ms   275.9 MB/sec
primitive_all_null/bloom_filter                    1.00     11.7±0.23ms     3.7 GB/sec    1.95     22.8±0.05ms  1968.2 MB/sec
primitive_all_null/cdc                             1.00     28.2±0.35ms  1593.8 MB/sec    1.40     39.3±0.18ms  1141.1 MB/sec
primitive_all_null/default                         1.00     11.1±0.28ms     4.0 GB/sec    2.00     22.1±0.02ms  2026.6 MB/sec
primitive_all_null/parquet_2                       1.00     11.0±0.23ms     4.0 GB/sec    2.01     22.2±0.06ms  2025.3 MB/sec
primitive_all_null/zstd                            1.00     11.2±0.27ms     3.9 GB/sec    1.99     22.3±0.09ms  2008.2 MB/sec
primitive_all_null/zstd_parquet_2                  1.00     11.2±0.26ms     3.9 GB/sec    1.99     22.3±0.03ms  2016.3 MB/sec
primitive_non_null/bloom_filter                    1.01    113.6±2.15ms   387.3 MB/sec    1.00    112.0±1.19ms   392.8 MB/sec
primitive_non_null/cdc                             1.01     91.3±0.54ms   482.1 MB/sec    1.00     89.9±0.21ms   489.3 MB/sec
primitive_non_null/default                         1.00     68.1±0.22ms   646.1 MB/sec    1.00     68.1±0.17ms   645.9 MB/sec
primitive_non_null/parquet_2                       1.02     91.0±6.39ms   483.8 MB/sec    1.00     89.3±0.20ms   492.8 MB/sec
primitive_non_null/zstd                            1.00    105.5±1.85ms   417.2 MB/sec    1.00    105.1±0.23ms   418.6 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    130.0±2.78ms   338.4 MB/sec    1.00    129.9±1.80ms   338.8 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.00     18.1±0.08ms     2.4 GB/sec    1.55     28.1±0.21ms  1594.2 MB/sec
primitive_sparse_99pct_null/cdc                    1.00     34.5±0.23ms  1300.3 MB/sec    1.29     44.4±0.11ms  1011.5 MB/sec
primitive_sparse_99pct_null/default                1.00     16.7±0.04ms     2.6 GB/sec    1.59     26.4±0.17ms  1697.5 MB/sec
primitive_sparse_99pct_null/parquet_2              1.00     16.7±0.05ms     2.6 GB/sec    1.59     26.6±0.08ms  1686.1 MB/sec
primitive_sparse_99pct_null/zstd                   1.00     20.2±0.87ms     2.2 GB/sec    1.48     29.9±0.07ms  1502.7 MB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     18.9±0.87ms     2.3 GB/sec    1.51     28.5±0.08ms  1572.5 MB/sec
string/bloom_filter                                1.00   215.2±14.69ms     2.4 GB/sec    1.00   214.2±16.44ms     2.4 GB/sec
string/cdc                                         1.00    222.1±6.62ms     2.3 GB/sec    1.00    221.4±6.47ms     2.3 GB/sec
string/default                                     1.07   133.1±17.77ms     3.8 GB/sec    1.00   124.6±17.04ms     4.1 GB/sec
string/parquet_2                                   1.53    170.9±0.87ms     3.0 GB/sec    1.00   111.5±10.64ms     4.6 GB/sec
string/zstd                                        1.07   447.5±17.23ms  1171.5 MB/sec    1.00    417.7±2.47ms  1255.2 MB/sec
string/zstd_parquet_2                              1.01    401.8±4.21ms  1304.8 MB/sec    1.00    396.8±1.75ms  1321.3 MB/sec
string_and_binary_view/bloom_filter                1.04     66.0±0.34ms   488.4 MB/sec    1.00     63.3±0.31ms   509.4 MB/sec
string_and_binary_view/cdc                         1.03     58.5±0.25ms   550.9 MB/sec    1.00     57.0±0.32ms   565.9 MB/sec
string_and_binary_view/default                     1.02     48.7±0.21ms   662.5 MB/sec    1.00     47.5±3.57ms   678.9 MB/sec
string_and_binary_view/parquet_2                   1.03     59.6±0.28ms   541.3 MB/sec    1.00     58.1±0.23ms   555.3 MB/sec
string_and_binary_view/zstd                        1.02     85.1±0.29ms   379.1 MB/sec    1.00     83.6±0.20ms   385.7 MB/sec
string_and_binary_view/zstd_parquet_2              1.03     73.5±0.27ms   439.1 MB/sec    1.00     71.7±0.19ms   450.1 MB/sec
string_dictionary/bloom_filter                     1.15    102.1±0.35ms     2.5 GB/sec    1.00     88.6±0.71ms     2.9 GB/sec
string_dictionary/cdc                              1.38     72.2±1.72ms     3.6 GB/sec    1.00     52.5±0.48ms     4.9 GB/sec
string_dictionary/default                          1.20     58.0±0.55ms     4.4 GB/sec    1.00     48.4±0.36ms     5.3 GB/sec
string_dictionary/parquet_2                        1.00     53.5±0.26ms     4.8 GB/sec    1.01     53.9±0.23ms     4.8 GB/sec
string_dictionary/zstd                             1.08    225.1±0.68ms  1173.4 MB/sec    1.00    208.6±0.41ms  1266.5 MB/sec
string_dictionary/zstd_parquet_2                   1.01    198.9±0.26ms  1328.3 MB/sec    1.00    197.4±0.27ms  1338.2 MB/sec
string_non_null/bloom_filter                       1.11   268.6±14.61ms  1950.9 MB/sec    1.00   241.0±10.73ms     2.1 GB/sec
string_non_null/cdc                                1.03    277.5±9.80ms  1888.4 MB/sec    1.00    270.2±7.42ms  1939.5 MB/sec
string_non_null/default                            1.23   151.4±16.42ms     3.4 GB/sec    1.00    122.8±7.12ms     4.2 GB/sec
string_non_null/parquet_2                          1.08    143.2±7.81ms     3.6 GB/sec    1.00    132.2±6.03ms     3.9 GB/sec
string_non_null/zstd                               1.07    568.0±6.69ms   922.5 MB/sec    1.00    531.2±2.29ms   986.4 MB/sec
string_non_null/zstd_parquet_2                     1.03   519.0±11.28ms  1009.6 MB/sec    1.00    502.2±0.67ms  1043.5 MB/sec
struct_all_null/bloom_filter                       1.00      4.2±0.07ms     3.7 GB/sec    2.14      9.0±0.01ms  1793.5 MB/sec
struct_all_null/cdc                                1.00     10.7±0.12ms  1505.0 MB/sec    1.45     15.5±0.11ms  1040.2 MB/sec
struct_all_null/default                            1.00      3.9±0.05ms     4.0 GB/sec    2.23      8.7±0.01ms  1853.0 MB/sec
struct_all_null/parquet_2                          1.00      3.9±0.08ms     4.0 GB/sec    2.22      8.7±0.01ms  1853.5 MB/sec
struct_all_null/zstd                               1.00      4.0±0.06ms     4.0 GB/sec    2.21      8.8±0.01ms  1842.0 MB/sec
struct_all_null/zstd_parquet_2                     1.00      4.0±0.06ms     4.0 GB/sec    2.21      8.7±0.01ms  1846.6 MB/sec
struct_non_null/bloom_filter                       1.00     50.4±0.17ms   317.7 MB/sec    1.13     57.0±0.20ms   280.8 MB/sec
struct_non_null/cdc                                1.00     46.6±0.11ms   343.1 MB/sec    1.12     52.1±0.24ms   306.8 MB/sec
struct_non_null/default                            1.00     34.4±0.09ms   465.7 MB/sec    1.16     39.8±0.18ms   402.3 MB/sec
struct_non_null/parquet_2                          1.00     42.8±0.08ms   374.0 MB/sec    1.13     48.3±0.12ms   331.0 MB/sec
struct_non_null/zstd                               1.00     42.8±0.09ms   373.7 MB/sec    1.13     48.2±0.14ms   331.7 MB/sec
struct_non_null/zstd_parquet_2                     1.00     56.4±0.13ms   283.7 MB/sec    1.10     62.1±0.18ms   257.8 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      7.6±0.12ms     2.1 GB/sec    1.54     11.6±0.10ms  1386.1 MB/sec
struct_sparse_99pct_null/cdc                       1.00     13.8±0.09ms  1169.9 MB/sec    1.32     18.3±0.13ms   883.2 MB/sec
struct_sparse_99pct_null/default                   1.00      6.9±0.04ms     2.3 GB/sec    1.63     11.2±0.07ms  1441.2 MB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.9±0.05ms     2.3 GB/sec    1.60     11.0±0.03ms  1466.4 MB/sec
struct_sparse_99pct_null/zstd                      1.00      8.3±0.07ms  1944.3 MB/sec    1.49     12.4±0.05ms  1301.2 MB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      7.6±0.05ms     2.1 GB/sec    1.56     11.9±0.10ms  1357.8 MB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 1915.4s
Peak memory 6.6 GiB
Avg memory 6.4 GiB
CPU user 1861.0s
CPU sys 52.0s
Peak spill 0 B

branch

Metric Value
Wall time 1925.4s
Peak memory 6.6 GiB
Avg memory 6.4 GiB
CPU user 1853.7s
CPU sys 70.0s
Peak spill 0 B

File an issue against this benchmark runner

@HippoBaro
Copy link
Copy Markdown
Contributor Author

🤖 Arrow criterion benchmark completed (GKE) | trigger

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

CPU Details (lscpu)

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

Details

group                                              batch_rle_run                          main
-----                                              -------------                          ----
bool/bloom_filter                                  1.04     13.0±0.09ms    19.2 MB/sec    1.00     12.6±0.04ms    19.9 MB/sec
bool/cdc                                           1.03     15.6±0.10ms    16.0 MB/sec    1.00     15.2±0.05ms    16.5 MB/sec
bool/default                                       1.05     11.0±0.08ms    22.7 MB/sec    1.00     10.5±0.05ms    23.8 MB/sec
bool/parquet_2                                     1.03     14.7±0.10ms    17.0 MB/sec    1.00     14.2±0.05ms    17.6 MB/sec
bool/zstd                                          1.04     11.5±0.08ms    21.8 MB/sec    1.00     11.0±0.05ms    22.7 MB/sec
bool/zstd_parquet_2                                1.03     15.0±0.09ms    16.7 MB/sec    1.00     14.6±0.05ms    17.1 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.03ms    17.8 MB/sec    1.00      7.0±0.03ms    17.9 MB/sec
bool_non_null/cdc                                  1.02      6.8±0.03ms    18.3 MB/sec    1.00      6.7±0.02ms    18.6 MB/sec
bool_non_null/default                              1.01      4.2±0.02ms    29.4 MB/sec    1.00      4.2±0.02ms    29.7 MB/sec
bool_non_null/parquet_2                            1.00      9.0±0.03ms    13.9 MB/sec    1.00      9.0±0.03ms    13.9 MB/sec
bool_non_null/zstd                                 1.01      4.6±0.02ms    27.1 MB/sec    1.00      4.6±0.02ms    27.4 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.03ms    13.3 MB/sec    1.00      9.4±0.03ms    13.3 MB/sec
float_with_nans/bloom_filter                       1.02     94.0±0.44ms   149.0 MB/sec    1.00     92.4±0.36ms   151.5 MB/sec
float_with_nans/cdc                                1.00     81.5±0.17ms   171.8 MB/sec    1.00     81.5±0.22ms   171.7 MB/sec
float_with_nans/default                            1.01     75.1±0.86ms   186.4 MB/sec    1.00     74.0±0.24ms   189.1 MB/sec
float_with_nans/parquet_2                          1.01     95.3±0.27ms   146.9 MB/sec    1.00     94.4±0.22ms   148.3 MB/sec
float_with_nans/zstd                               1.00    112.5±0.36ms   124.4 MB/sec    1.00    112.0±0.26ms   125.0 MB/sec
float_with_nans/zstd_parquet_2                     1.01    133.1±0.45ms   105.2 MB/sec    1.00    131.6±0.22ms   106.4 MB/sec
list_primitive/bloom_filter                        1.01    319.6±2.68ms  1706.6 MB/sec    1.00    317.7±1.36ms  1716.9 MB/sec
list_primitive/cdc                                 1.00    343.8±2.83ms  1586.3 MB/sec    1.01    346.2±2.94ms  1575.2 MB/sec
list_primitive/default                             1.00    238.2±2.58ms     2.2 GB/sec    1.01    239.5±1.65ms     2.2 GB/sec
list_primitive/parquet_2                           1.00    256.8±0.48ms     2.1 GB/sec    1.02    262.0±1.00ms     2.0 GB/sec
list_primitive/zstd                                1.02    488.3±2.17ms  1116.8 MB/sec    1.00    479.0±2.20ms  1138.6 MB/sec
list_primitive/zstd_parquet_2                      1.01    479.5±0.77ms  1137.3 MB/sec    1.00    476.8±0.42ms  1143.9 MB/sec
list_primitive_non_null/bloom_filter               1.00    409.6±5.41ms  1328.6 MB/sec    1.07   436.6±19.21ms  1246.6 MB/sec
list_primitive_non_null/cdc                        1.00    425.1±9.00ms  1280.2 MB/sec    1.00    426.5±7.34ms  1276.1 MB/sec
list_primitive_non_null/default                    1.00    279.6±4.59ms  1946.2 MB/sec    1.10   307.5±13.54ms  1770.1 MB/sec
list_primitive_non_null/parquet_2                  1.00   293.8±11.66ms  1852.2 MB/sec    1.00    293.6±7.99ms  1853.9 MB/sec
list_primitive_non_null/zstd                       1.00    697.0±9.93ms   780.9 MB/sec    1.01   706.5±14.66ms   770.3 MB/sec
list_primitive_non_null/zstd_parquet_2             1.00    677.5±0.49ms   803.3 MB/sec    1.02    689.1±1.40ms   789.8 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     11.7±0.22ms     3.1 GB/sec    1.69     19.7±0.08ms  1892.9 MB/sec
list_primitive_sparse_99pct_null/cdc               1.00     22.4±0.12ms  1664.8 MB/sec    1.35     30.3±0.12ms  1231.3 MB/sec
list_primitive_sparse_99pct_null/default           1.00     11.2±0.10ms     3.3 GB/sec    1.75     19.5±0.11ms  1915.4 MB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     11.6±0.10ms     3.2 GB/sec    1.68     19.4±0.06ms  1926.2 MB/sec
list_primitive_sparse_99pct_null/zstd              1.00     13.6±0.09ms     2.7 GB/sec    1.57     21.3±0.07ms  1751.1 MB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.00     11.7±0.06ms     3.1 GB/sec    1.67     19.6±0.11ms  1906.7 MB/sec
primitive/bloom_filter                             1.04    150.5±0.66ms   298.2 MB/sec    1.00    145.3±0.52ms   308.8 MB/sec
primitive/cdc                                      1.03    157.0±0.69ms   285.8 MB/sec    1.00    152.6±0.47ms   294.0 MB/sec
primitive/default                                  1.03    118.1±0.53ms   380.0 MB/sec    1.00    114.3±0.30ms   392.5 MB/sec
primitive/parquet_2                                1.04    134.6±1.66ms   333.3 MB/sec    1.00    129.7±0.65ms   345.9 MB/sec
primitive/zstd                                     1.03    148.5±0.78ms   302.2 MB/sec    1.00    143.9±0.45ms   311.8 MB/sec
primitive/zstd_parquet_2                           1.03    167.6±1.68ms   267.7 MB/sec    1.00    162.7±0.40ms   275.9 MB/sec
primitive_all_null/bloom_filter                    1.00     11.7±0.23ms     3.7 GB/sec    1.95     22.8±0.05ms  1968.2 MB/sec
primitive_all_null/cdc                             1.00     28.2±0.35ms  1593.8 MB/sec    1.40     39.3±0.18ms  1141.1 MB/sec
primitive_all_null/default                         1.00     11.1±0.28ms     4.0 GB/sec    2.00     22.1±0.02ms  2026.6 MB/sec
primitive_all_null/parquet_2                       1.00     11.0±0.23ms     4.0 GB/sec    2.01     22.2±0.06ms  2025.3 MB/sec
primitive_all_null/zstd                            1.00     11.2±0.27ms     3.9 GB/sec    1.99     22.3±0.09ms  2008.2 MB/sec
primitive_all_null/zstd_parquet_2                  1.00     11.2±0.26ms     3.9 GB/sec    1.99     22.3±0.03ms  2016.3 MB/sec
primitive_non_null/bloom_filter                    1.01    113.6±2.15ms   387.3 MB/sec    1.00    112.0±1.19ms   392.8 MB/sec
primitive_non_null/cdc                             1.01     91.3±0.54ms   482.1 MB/sec    1.00     89.9±0.21ms   489.3 MB/sec
primitive_non_null/default                         1.00     68.1±0.22ms   646.1 MB/sec    1.00     68.1±0.17ms   645.9 MB/sec
primitive_non_null/parquet_2                       1.02     91.0±6.39ms   483.8 MB/sec    1.00     89.3±0.20ms   492.8 MB/sec
primitive_non_null/zstd                            1.00    105.5±1.85ms   417.2 MB/sec    1.00    105.1±0.23ms   418.6 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    130.0±2.78ms   338.4 MB/sec    1.00    129.9±1.80ms   338.8 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.00     18.1±0.08ms     2.4 GB/sec    1.55     28.1±0.21ms  1594.2 MB/sec
primitive_sparse_99pct_null/cdc                    1.00     34.5±0.23ms  1300.3 MB/sec    1.29     44.4±0.11ms  1011.5 MB/sec
primitive_sparse_99pct_null/default                1.00     16.7±0.04ms     2.6 GB/sec    1.59     26.4±0.17ms  1697.5 MB/sec
primitive_sparse_99pct_null/parquet_2              1.00     16.7±0.05ms     2.6 GB/sec    1.59     26.6±0.08ms  1686.1 MB/sec
primitive_sparse_99pct_null/zstd                   1.00     20.2±0.87ms     2.2 GB/sec    1.48     29.9±0.07ms  1502.7 MB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     18.9±0.87ms     2.3 GB/sec    1.51     28.5±0.08ms  1572.5 MB/sec
string/bloom_filter                                1.00   215.2±14.69ms     2.4 GB/sec    1.00   214.2±16.44ms     2.4 GB/sec
string/cdc                                         1.00    222.1±6.62ms     2.3 GB/sec    1.00    221.4±6.47ms     2.3 GB/sec
string/default                                     1.07   133.1±17.77ms     3.8 GB/sec    1.00   124.6±17.04ms     4.1 GB/sec
string/parquet_2                                   1.53    170.9±0.87ms     3.0 GB/sec    1.00   111.5±10.64ms     4.6 GB/sec
string/zstd                                        1.07   447.5±17.23ms  1171.5 MB/sec    1.00    417.7±2.47ms  1255.2 MB/sec
string/zstd_parquet_2                              1.01    401.8±4.21ms  1304.8 MB/sec    1.00    396.8±1.75ms  1321.3 MB/sec
string_and_binary_view/bloom_filter                1.04     66.0±0.34ms   488.4 MB/sec    1.00     63.3±0.31ms   509.4 MB/sec
string_and_binary_view/cdc                         1.03     58.5±0.25ms   550.9 MB/sec    1.00     57.0±0.32ms   565.9 MB/sec
string_and_binary_view/default                     1.02     48.7±0.21ms   662.5 MB/sec    1.00     47.5±3.57ms   678.9 MB/sec
string_and_binary_view/parquet_2                   1.03     59.6±0.28ms   541.3 MB/sec    1.00     58.1±0.23ms   555.3 MB/sec
string_and_binary_view/zstd                        1.02     85.1±0.29ms   379.1 MB/sec    1.00     83.6±0.20ms   385.7 MB/sec
string_and_binary_view/zstd_parquet_2              1.03     73.5±0.27ms   439.1 MB/sec    1.00     71.7±0.19ms   450.1 MB/sec
string_dictionary/bloom_filter                     1.15    102.1±0.35ms     2.5 GB/sec    1.00     88.6±0.71ms     2.9 GB/sec
string_dictionary/cdc                              1.38     72.2±1.72ms     3.6 GB/sec    1.00     52.5±0.48ms     4.9 GB/sec
string_dictionary/default                          1.20     58.0±0.55ms     4.4 GB/sec    1.00     48.4±0.36ms     5.3 GB/sec
string_dictionary/parquet_2                        1.00     53.5±0.26ms     4.8 GB/sec    1.01     53.9±0.23ms     4.8 GB/sec
string_dictionary/zstd                             1.08    225.1±0.68ms  1173.4 MB/sec    1.00    208.6±0.41ms  1266.5 MB/sec
string_dictionary/zstd_parquet_2                   1.01    198.9±0.26ms  1328.3 MB/sec    1.00    197.4±0.27ms  1338.2 MB/sec
string_non_null/bloom_filter                       1.11   268.6±14.61ms  1950.9 MB/sec    1.00   241.0±10.73ms     2.1 GB/sec
string_non_null/cdc                                1.03    277.5±9.80ms  1888.4 MB/sec    1.00    270.2±7.42ms  1939.5 MB/sec
string_non_null/default                            1.23   151.4±16.42ms     3.4 GB/sec    1.00    122.8±7.12ms     4.2 GB/sec
string_non_null/parquet_2                          1.08    143.2±7.81ms     3.6 GB/sec    1.00    132.2±6.03ms     3.9 GB/sec
string_non_null/zstd                               1.07    568.0±6.69ms   922.5 MB/sec    1.00    531.2±2.29ms   986.4 MB/sec
string_non_null/zstd_parquet_2                     1.03   519.0±11.28ms  1009.6 MB/sec    1.00    502.2±0.67ms  1043.5 MB/sec
struct_all_null/bloom_filter                       1.00      4.2±0.07ms     3.7 GB/sec    2.14      9.0±0.01ms  1793.5 MB/sec
struct_all_null/cdc                                1.00     10.7±0.12ms  1505.0 MB/sec    1.45     15.5±0.11ms  1040.2 MB/sec
struct_all_null/default                            1.00      3.9±0.05ms     4.0 GB/sec    2.23      8.7±0.01ms  1853.0 MB/sec
struct_all_null/parquet_2                          1.00      3.9±0.08ms     4.0 GB/sec    2.22      8.7±0.01ms  1853.5 MB/sec
struct_all_null/zstd                               1.00      4.0±0.06ms     4.0 GB/sec    2.21      8.8±0.01ms  1842.0 MB/sec
struct_all_null/zstd_parquet_2                     1.00      4.0±0.06ms     4.0 GB/sec    2.21      8.7±0.01ms  1846.6 MB/sec
struct_non_null/bloom_filter                       1.00     50.4±0.17ms   317.7 MB/sec    1.13     57.0±0.20ms   280.8 MB/sec
struct_non_null/cdc                                1.00     46.6±0.11ms   343.1 MB/sec    1.12     52.1±0.24ms   306.8 MB/sec
struct_non_null/default                            1.00     34.4±0.09ms   465.7 MB/sec    1.16     39.8±0.18ms   402.3 MB/sec
struct_non_null/parquet_2                          1.00     42.8±0.08ms   374.0 MB/sec    1.13     48.3±0.12ms   331.0 MB/sec
struct_non_null/zstd                               1.00     42.8±0.09ms   373.7 MB/sec    1.13     48.2±0.14ms   331.7 MB/sec
struct_non_null/zstd_parquet_2                     1.00     56.4±0.13ms   283.7 MB/sec    1.10     62.1±0.18ms   257.8 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      7.6±0.12ms     2.1 GB/sec    1.54     11.6±0.10ms  1386.1 MB/sec
struct_sparse_99pct_null/cdc                       1.00     13.8±0.09ms  1169.9 MB/sec    1.32     18.3±0.13ms   883.2 MB/sec
struct_sparse_99pct_null/default                   1.00      6.9±0.04ms     2.3 GB/sec    1.63     11.2±0.07ms  1441.2 MB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.9±0.05ms     2.3 GB/sec    1.60     11.0±0.03ms  1466.4 MB/sec
struct_sparse_99pct_null/zstd                      1.00      8.3±0.07ms  1944.3 MB/sec    1.49     12.4±0.05ms  1301.2 MB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      7.6±0.05ms     2.1 GB/sec    1.56     11.9±0.10ms  1357.8 MB/sec

Resource Usage
base (merge-base)

Metric Value
Wall time 1915.4s
Peak memory 6.6 GiB
Avg memory 6.4 GiB
CPU user 1861.0s
CPU sys 52.0s
Peak spill 0 B
branch

Metric Value
Wall time 1925.4s
Peak memory 6.6 GiB
Avg memory 6.4 GiB
CPU user 1853.7s
CPU sys 70.0s
Peak spill 0 B
File an issue against this benchmark runner

That's more like it! :noice:

Co-authored-by: Ed Seidl <etseidl@users.noreply.github.com>
@etseidl
Copy link
Copy Markdown
Contributor

etseidl commented Apr 27, 2026

I did do a double check on some of the string regressions and they disappeared on my workstation.

@alamb alamb merged commit 11f13a5 into apache:main Apr 28, 2026
16 checks passed
@alamb
Copy link
Copy Markdown
Contributor

alamb commented Apr 28, 2026

As I am still waiting on a few PRs before I cut the 58.2.0 release I figured I'll just merge this one in to make the release that much better

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

Labels

parquet Changes to the parquet crate performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants