Skip to content

fix(parquet): keep DELTA_BYTE_ARRAY dedup for values larger than the page size limit - #10505

Open
adriangb wants to merge 3 commits into
apache:mainfrom
pydantic:fix-delta-byte-array-page-split-10489
Open

fix(parquet): keep DELTA_BYTE_ARRAY dedup for values larger than the page size limit#10505
adriangb wants to merge 3 commits into
apache:mainfrom
pydantic:fix-delta-byte-array-page-split-10489

Conversation

@adriangb

@adriangb adriangb commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

The cause is the page flush, not the mini-batch splitting

The issue attributes the regression to #9972's byte-budget sub-batching. It's actually the page flush; the sub-batching only exposes it.

should_add_data_page fires when estimated_data_page_size() >= data_page_size_limit. For DELTA_BYTE_ARRAY that estimate is the real encoded size, and the first value on a page is stored in full — so a single 8 MiB value against a 1 MiB limit puts the page over the limit by itself and triggers a flush. Flushing clears the encoder's previous, so the next value gets prefix_length = 0, and so on. The encoding degenerates to exactly PLAIN.

Before #9972 a 1024-row mini-batch meant the check simply didn't run until 1024 values had been written, so the dedup survived. That was an accident of write_batch_size, not a designed property — the same column at 2000 rows already lost the prefix at the 1024-value boundary.

This matters for choosing a fix: making the byte budget encoding-aware (suggestion 2 in the issue) does not fix the reported bug. However precise the budget, the first value alone still exceeds the limit and still triggers the flush.

The fix

Parquet requires at least one value per data page, so a value larger than the limit cannot be split out — the limit is unsatisfiable for it. Counting those bytes against the limit is what forces the pathological one-value-per-page cut.

Record that first value's encoded size in PageMetrics::page_size_floor and apply the limit to what follows it, i.e. the bytes that can still go on another page.

The exemption is gated on a new ColumnValueEncoder::compresses_against_previous_value (default false, true only for DELTA_BYTE_ARRAY in both the generic and arrow encoders). PLAIN and DELTA_LENGTH_BYTE_ARRAY cost the same wherever a value lands, so there is nothing to preserve by keeping values together and they keep their existing tighter one-value page bound. All three regression tests from #9972 pass unmodified.

Why not "don't split when the split cannot help"

Suggestion 1 in the issue restores the dedup, but by removing the bound that #9972 added, for exactly the workload it was added for. Measured with Some(1) => chunk_size in byte_budget_chunker.rs, 2048 rows × 128 KiB distinct values against a 64 KiB page limit — the same regime as a 10 MB value against the 1 MiB default, scaled to fit in RAM:

pages max page
59.1.0 2048 128 KiB
suggestion 1 2 128 MiB
this PR 1024 256 KiB

Page size under suggestion 1 is write_batch_size × value_size. At 1024 × 10 MB that is a 10 GB page, which is the failure #9972 fixed.

Results

The reporter's table, reproduced verbatim (10 identical 8 MiB values, raw input 80 MiB):

data_page_size_limit 58.4.0 59.1.0 this PR
default (1 MiB) 8.00 MiB 80.00 MiB 8.00 MiB
4 MiB 8.00 MiB 80.00 MiB 8.00 MiB
8 MiB 8.00 MiB 80.00 MiB 8.00 MiB
16 MiB 8.00 MiB 8.00 MiB 8.00 MiB

Values that merely share a long prefix behave the same. Values sharing no prefix are unaffected in file size and stay bounded at up to two values per page — the exempt one plus the one that trips the budget.

Tests

  • test_column_writer_delta_byte_array_dedups_large_shared_prefix_values — 16 identical 64 KiB values, 16 KiB page limit. Fails on main with 1 MiB across 16 pages (byte for byte what PLAIN produces); passes here at ~one value's worth.
  • test_column_writer_delta_byte_array_bounds_pages_without_shared_prefix — the same column with values differing from byte 0, asserting pages stay bounded by two values. Guards against fixing this by dropping the bound.
  • test_large_string_delta_byte_array_shared_prefix — the ArrowWriter path from the report, as an exact page-layout assertion.

Notes

One known limitation, pinned by test_column_writer_delta_byte_array_nullable_shared_prefix_partial_dedup: the exemption triggers when a page opens with a mini-batch holding exactly one value. That is guaranteed for chunks without nulls (the byte-budget chunker gives an over-limit value its own mini-batch), but a null in a chunk makes the chunker convert values to levels by ratio and round up, so pages can open with a two-value mini-batch, miss the exemption, and store their first value in full. Dedup on such columns is partial rather than absent, and never worse than main, which stores every value in full. The clean fix is for the granular path to cut windows after an exact value count instead of ratio-scaling; that is independent of this change and tracked in #10538. The pinning test documents the layout to expect once it lands.

A follow-up worth considering separately: the byte budget in count_within_budget_* still measures raw payload length, so DELTA_BYTE_ARRAY columns sub-batch more eagerly than the encoded size warrants. That is a throughput question rather than a correctness one, and it is not what caused this regression.

🤖 Generated with Claude Code

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Jul 31, 2026
@adriangb
adriangb marked this pull request as ready for review August 1, 2026 16:49
@adriangb

adriangb commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

@adriangb

adriangb commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark writer_overhead

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5152441889-1338-nk8cj 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

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

Comparing fix-delta-byte-array-page-split-10489 (d053bf0) to cd17899 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5152443029-1339-nd8ss 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

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

Comparing fix-delta-byte-array-page-split-10489 (d053bf0) to cd17899 (merge-base) diff

Run configuration
run benchmark writer_overhead

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_overhead
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)

Comparing fix-delta-byte-array-page-split-10489 (d053bf0) to cd17899 (merge-base) diff

Run configuration
run benchmark writer_overhead
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                         fix-delta-byte-array-page-split-10489    main
-----                         -------------------------------------    ----
writer_overhead/10000_cols    1.00     38.3±0.67ms        ? ?/sec      1.00     38.4±0.45ms        ? ?/sec
writer_overhead/1000_cols     1.00      3.6±0.03ms        ? ?/sec      1.00      3.5±0.03ms        ? ?/sec
writer_overhead/5000_cols     1.00     18.3±0.22ms        ? ?/sec      1.12     20.5±0.24ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 55.8 MiB
Avg memory 31.7 MiB
CPU user 31.9s
CPU sys 1.1s
Peak spill 0 B

branch

Metric Value
Wall time 35.0s
Peak memory 55.8 MiB
Avg memory 32.5 MiB
CPU user 31.0s
CPU sys 0.0s
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)

Comparing fix-delta-byte-array-page-split-10489 (d053bf0) to cd17899 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.02     13.3±0.10ms    18.8 MB/sec      1.00     13.0±0.05ms    19.2 MB/sec
bool/cdc                                           1.01     16.1±0.12ms    15.6 MB/sec      1.00     16.0±0.08ms    15.7 MB/sec
bool/default                                       1.02     11.1±0.08ms    22.5 MB/sec      1.00     10.9±0.04ms    22.9 MB/sec
bool/parquet_2                                     1.02     14.1±0.10ms    17.8 MB/sec      1.00     13.8±0.05ms    18.1 MB/sec
bool/zstd                                          1.01     11.6±0.09ms    21.5 MB/sec      1.00     11.5±0.04ms    21.8 MB/sec
bool/zstd_parquet_2                                1.02     14.5±0.09ms    17.2 MB/sec      1.00     14.3±0.09ms    17.5 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.03ms    17.8 MB/sec      1.00      7.0±0.03ms    17.8 MB/sec
bool_non_null/cdc                                  1.00      6.9±0.06ms    18.1 MB/sec      1.01      7.0±0.05ms    17.9 MB/sec
bool_non_null/default                              1.00      4.2±0.03ms    29.7 MB/sec      1.01      4.2±0.03ms    29.4 MB/sec
bool_non_null/parquet_2                            1.00      8.0±0.03ms    15.6 MB/sec      1.00      8.1±0.03ms    15.5 MB/sec
bool_non_null/zstd                                 1.00      4.6±0.03ms    27.3 MB/sec      1.00      4.6±0.02ms    27.2 MB/sec
bool_non_null/zstd_parquet_2                       1.00      8.5±0.03ms    14.7 MB/sec      1.00      8.5±0.03ms    14.7 MB/sec
bool_ree/bloom_filter                              1.01     30.8±0.15ms     6.9 MB/sec      1.00     30.5±0.07ms     7.0 MB/sec
bool_ree/cdc                                       1.01     32.2±0.14ms     6.6 MB/sec      1.00     31.9±0.12ms     6.7 MB/sec
bool_ree/default                                   1.01     28.0±0.14ms     7.6 MB/sec      1.00     27.8±0.12ms     7.7 MB/sec
bool_ree/parquet_2                                 1.01     29.6±0.13ms     7.2 MB/sec      1.00     29.3±0.09ms     7.3 MB/sec
bool_ree/zstd                                      1.01     28.7±0.15ms     7.4 MB/sec      1.00     28.4±0.09ms     7.5 MB/sec
bool_ree/zstd_parquet_2                            1.01     29.9±0.15ms     7.1 MB/sec      1.00     29.6±0.07ms     7.2 MB/sec
decimal/bloom_filter                               1.02    154.9±2.10ms   387.3 MB/sec      1.00    152.6±1.29ms   393.1 MB/sec
decimal/cdc                                        1.00    134.6±0.77ms   445.9 MB/sec      1.00    134.0±0.87ms   447.8 MB/sec
decimal/default                                    1.00    110.6±1.25ms   542.5 MB/sec      1.00    110.5±1.04ms   543.1 MB/sec
decimal/parquet_2                                  1.00    279.3±2.50ms   214.8 MB/sec      1.03    287.6±6.15ms   208.6 MB/sec
decimal/zstd                                       1.00    123.5±1.63ms   485.8 MB/sec      1.00    123.0±1.01ms   488.0 MB/sec
decimal/zstd_parquet_2                             1.00    300.3±2.83ms   199.8 MB/sec      1.00    299.3±2.70ms   200.5 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     72.2±0.58ms    13.9 MB/sec      1.00     72.4±0.77ms    13.9 MB/sec
fixed_size_binary_ree/cdc                          1.01     73.9±0.40ms    13.6 MB/sec      1.00     73.0±0.28ms    13.8 MB/sec
fixed_size_binary_ree/default                      1.00     63.8±0.43ms    15.8 MB/sec      1.00     63.8±0.46ms    15.8 MB/sec
fixed_size_binary_ree/parquet_2                    1.00     87.2±1.56ms    11.6 MB/sec      1.01     88.0±1.80ms    11.4 MB/sec
fixed_size_binary_ree/zstd                         1.01     69.2±0.49ms    14.6 MB/sec      1.00     68.9±0.35ms    14.6 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.00     89.3±1.85ms    11.3 MB/sec      1.00     88.9±1.69ms    11.3 MB/sec
float_with_nans/bloom_filter                       1.01    100.0±2.28ms   140.1 MB/sec      1.00     98.5±1.71ms   142.2 MB/sec
float_with_nans/cdc                                1.01     85.8±0.84ms   163.3 MB/sec      1.00     84.6±0.84ms   165.5 MB/sec
float_with_nans/default                            1.01     77.5±0.96ms   180.6 MB/sec      1.00     77.1±0.81ms   181.5 MB/sec
float_with_nans/parquet_2                          1.00    100.6±1.02ms   139.1 MB/sec      1.01    101.4±1.23ms   138.1 MB/sec
float_with_nans/zstd                               1.00    115.5±0.85ms   121.3 MB/sec      1.00    115.6±0.86ms   121.1 MB/sec
float_with_nans/zstd_parquet_2                     1.00    139.5±1.77ms   100.4 MB/sec      1.00    140.0±1.48ms   100.0 MB/sec
fsb/bloom_filter                                   1.01     11.2±0.26ms  1438.6 MB/sec      1.00     11.1±0.22ms  1451.9 MB/sec
fsb/cdc                                            1.00     12.5±0.07ms  1288.2 MB/sec      1.01     12.6±0.09ms  1280.4 MB/sec
fsb/default                                        1.01      8.9±0.07ms  1802.5 MB/sec      1.00      8.9±0.10ms  1812.7 MB/sec
fsb/parquet_2                                      1.00     21.3±0.99ms   758.8 MB/sec      1.01     21.5±0.73ms   751.0 MB/sec
fsb/zstd                                           1.00     11.6±0.09ms  1394.9 MB/sec      1.01     11.6±0.06ms  1386.4 MB/sec
fsb/zstd_parquet_2                                 1.00     22.4±0.83ms   720.9 MB/sec      1.04     23.4±0.82ms   690.1 MB/sec
int32_ree/bloom_filter                             1.00     43.9±0.42ms     9.3 MB/sec      1.00     43.9±0.41ms     9.3 MB/sec
int32_ree/cdc                                      1.00     42.3±0.21ms     9.6 MB/sec      1.00     42.2±0.16ms     9.6 MB/sec
int32_ree/default                                  1.00     38.1±0.12ms    10.7 MB/sec      1.00     38.0±0.12ms    10.7 MB/sec
int32_ree/parquet_2                                1.00     38.1±0.17ms    10.7 MB/sec      1.00     38.0±0.12ms    10.7 MB/sec
int32_ree/zstd                                     1.00     38.8±0.19ms    10.5 MB/sec      1.00     38.6±0.11ms    10.5 MB/sec
int32_ree/zstd_parquet_2                           1.01     38.8±0.20ms    10.5 MB/sec      1.00     38.6±0.12ms    10.5 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     22.4±0.06ms    18.1 MB/sec      1.00     22.4±0.10ms    18.2 MB/sec
int32_ree_95pct_null/cdc                           1.00     24.6±0.07ms    16.6 MB/sec      1.01     24.9±0.50ms    16.4 MB/sec
int32_ree_95pct_null/default                       1.00     21.9±0.06ms    18.5 MB/sec      1.00     21.9±0.08ms    18.5 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.9±0.06ms    18.6 MB/sec      1.00     21.9±0.06ms    18.6 MB/sec
int32_ree_95pct_null/zstd                          1.00     22.2±0.06ms    18.3 MB/sec      1.00     22.1±0.06ms    18.4 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.00     22.0±0.04ms    18.5 MB/sec      1.00     22.1±0.04ms    18.4 MB/sec
large_string_non_null/bloom_filter                 1.00     76.5±1.06ms     3.3 GB/sec      1.01     77.1±1.33ms     3.2 GB/sec
large_string_non_null/cdc                          1.00    249.9±1.92ms  1024.5 MB/sec      1.00    250.3±1.57ms  1022.8 MB/sec
large_string_non_null/default                      1.00     59.7±1.49ms     4.2 GB/sec      1.00     59.5±1.40ms     4.2 GB/sec
large_string_non_null/parquet_2                    1.00     59.7±1.34ms     4.2 GB/sec      1.00     59.4±1.28ms     4.2 GB/sec
large_string_non_null/zstd                         1.00     58.7±1.32ms     4.3 GB/sec      1.01     59.2±1.56ms     4.2 GB/sec
large_string_non_null/zstd_parquet_2               1.00     59.0±1.22ms     4.2 GB/sec      1.04     61.2±1.63ms     4.1 GB/sec
list_nested/bloom_filter                           1.02    157.7±4.95ms   183.0 MB/sec      1.00    155.0±1.28ms   186.2 MB/sec
list_nested/cdc                                    1.00    167.3±0.72ms   172.4 MB/sec      1.01    168.3±0.72ms   171.5 MB/sec
list_nested/default                                1.00    135.4±0.68ms   213.0 MB/sec      1.01    136.7±0.61ms   211.0 MB/sec
list_nested/parquet_2                              1.02    153.6±4.67ms   187.8 MB/sec      1.00    150.3±0.63ms   192.0 MB/sec
list_nested/zstd                                   1.03    149.7±4.58ms   192.7 MB/sec      1.00    145.8±0.64ms   197.9 MB/sec
list_nested/zstd_parquet_2                         1.02    167.3±4.64ms   172.5 MB/sec      1.00    163.3±0.72ms   176.7 MB/sec
list_primitive/bloom_filter                        1.00   327.8±11.15ms  1663.5 MB/sec      1.08   354.7±13.18ms  1537.4 MB/sec
list_primitive/cdc                                 1.00    319.8±3.76ms  1705.3 MB/sec      1.06   338.2±13.16ms  1612.4 MB/sec
list_primitive/default                             1.00    221.0±3.92ms     2.4 GB/sec      1.13    248.8±6.27ms     2.1 GB/sec
list_primitive/parquet_2                           1.00    227.5±1.38ms     2.3 GB/sec      1.16    264.1±6.40ms     2.0 GB/sec
list_primitive/zstd                                1.00    464.2±4.03ms  1174.8 MB/sec      1.08    500.1±8.41ms  1090.4 MB/sec
list_primitive/zstd_parquet_2                      1.00    456.9±3.15ms  1193.7 MB/sec      1.06    483.7±4.28ms  1127.6 MB/sec
list_primitive_non_null/bloom_filter               1.00   460.9±16.69ms  1180.9 MB/sec      1.07   491.8±28.65ms  1106.7 MB/sec
list_primitive_non_null/cdc                        1.03   419.0±13.65ms  1299.0 MB/sec      1.00   405.8±10.66ms  1341.3 MB/sec
list_primitive_non_null/default                    1.00    284.4±7.47ms  1913.9 MB/sec      1.09   310.1±16.34ms  1754.9 MB/sec
list_primitive_non_null/parquet_2                  1.06    306.3±3.53ms  1776.6 MB/sec      1.00   289.1±34.46ms  1882.2 MB/sec
list_primitive_non_null/zstd                       1.00   720.1±19.13ms   755.8 MB/sec      1.03   738.9±27.25ms   736.6 MB/sec
list_primitive_non_null/zstd_parquet_2             1.00   681.2±11.28ms   798.9 MB/sec      1.05   714.5±27.62ms   761.7 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     13.6±0.14ms     2.7 GB/sec      1.00     13.6±0.12ms     2.7 GB/sec
list_primitive_sparse_99pct_null/cdc               1.00     25.1±0.20ms  1487.7 MB/sec      1.01     25.3±0.18ms  1476.8 MB/sec
list_primitive_sparse_99pct_null/default           1.02     13.1±0.11ms     2.8 GB/sec      1.00     12.9±0.09ms     2.8 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.01     13.0±0.09ms     2.8 GB/sec      1.00     12.9±0.10ms     2.8 GB/sec
list_primitive_sparse_99pct_null/zstd              1.01     15.1±0.13ms     2.4 GB/sec      1.00     14.9±0.17ms     2.4 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.01     13.3±0.09ms     2.7 GB/sec      1.00     13.2±0.14ms     2.8 GB/sec
list_struct_with_list/bloom_filter                 1.01    296.9±3.38ms   153.6 MB/sec      1.00    295.2±2.23ms   154.4 MB/sec
list_struct_with_list/cdc                          1.00    329.1±1.74ms   138.5 MB/sec      1.01    331.7±1.98ms   137.4 MB/sec
list_struct_with_list/default                      1.00    262.9±1.37ms   173.4 MB/sec      1.01    265.6±1.64ms   171.7 MB/sec
list_struct_with_list/parquet_2                    1.00    280.0±1.63ms   162.9 MB/sec      1.01    283.0±1.58ms   161.1 MB/sec
list_struct_with_list/zstd                         1.00    285.0±1.44ms   160.0 MB/sec      1.01    288.2±1.60ms   158.2 MB/sec
list_struct_with_list/zstd_parquet_2               1.00    304.7±1.95ms   149.6 MB/sec      1.01    307.8±2.40ms   148.1 MB/sec
primitive/bloom_filter                             1.00    162.0±3.42ms   277.1 MB/sec      1.01    163.6±3.27ms   274.4 MB/sec
primitive/cdc                                      1.00    165.9±1.55ms   270.6 MB/sec      1.00    165.8±1.69ms   270.7 MB/sec
primitive/default                                  1.00    124.3±1.24ms   361.1 MB/sec      1.00    123.9±1.42ms   362.1 MB/sec
primitive/parquet_2                                1.01    138.9±1.13ms   323.1 MB/sec      1.00    137.9±0.80ms   325.3 MB/sec
primitive/zstd                                     1.01    155.4±1.89ms   288.8 MB/sec      1.00    153.8±1.55ms   291.8 MB/sec
primitive/zstd_parquet_2                           1.00    173.1±1.40ms   259.3 MB/sec      1.00    172.3±1.28ms   260.5 MB/sec
primitive_all_null/bloom_filter                    1.00   961.6±20.72µs    45.6 GB/sec      1.00   962.8±16.69µs    45.5 GB/sec
primitive_all_null/cdc                             1.02     19.1±0.35ms     2.3 GB/sec      1.00     18.8±0.31ms     2.3 GB/sec
primitive_all_null/default                         1.00    271.7±1.81µs   161.3 GB/sec      1.01    274.5±2.38µs   159.6 GB/sec
primitive_all_null/parquet_2                       1.00    281.0±2.00µs   156.0 GB/sec      1.00    281.7±2.06µs   155.5 GB/sec
primitive_all_null/zstd                            1.00    390.1±2.15µs   112.3 GB/sec      1.01    393.4±1.65µs   111.4 GB/sec
primitive_all_null/zstd_parquet_2                  1.00    361.7±2.06µs   121.2 GB/sec      1.00    361.3±1.60µs   121.3 GB/sec
primitive_non_null/bloom_filter                    1.00    114.6±2.67ms   384.1 MB/sec      1.04    118.6±1.67ms   370.9 MB/sec
primitive_non_null/cdc                             1.00     95.1±1.29ms   462.6 MB/sec      1.00     94.7±1.16ms   464.8 MB/sec
primitive_non_null/default                         1.00     72.6±1.11ms   605.7 MB/sec      1.00     72.9±1.10ms   603.9 MB/sec
primitive_non_null/parquet_2                       1.00     93.9±1.29ms   468.6 MB/sec      1.00     94.0±0.92ms   468.1 MB/sec
primitive_non_null/zstd                            1.00    102.5±1.07ms   429.3 MB/sec      1.01    103.9±1.36ms   423.6 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    127.6±1.46ms   344.8 MB/sec      1.00    128.2±1.17ms   343.3 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.00     13.8±0.16ms     3.2 GB/sec      1.01     14.0±0.24ms     3.1 GB/sec
primitive_sparse_99pct_null/cdc                    1.00     32.1±0.45ms  1400.0 MB/sec      1.02     32.6±0.47ms  1377.2 MB/sec
primitive_sparse_99pct_null/default                1.01     11.7±0.16ms     3.8 GB/sec      1.00     11.6±0.14ms     3.8 GB/sec
primitive_sparse_99pct_null/parquet_2              1.02     11.7±0.10ms     3.8 GB/sec      1.00     11.5±0.09ms     3.8 GB/sec
primitive_sparse_99pct_null/zstd                   1.01     15.3±0.15ms     2.9 GB/sec      1.00     15.1±0.15ms     2.9 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     13.6±0.09ms     3.2 GB/sec      1.00     13.6±0.15ms     3.2 GB/sec
short_string_non_null/bloom_filter                 1.01     30.2±0.80ms   397.8 MB/sec      1.00     29.8±0.47ms   402.9 MB/sec
short_string_non_null/cdc                          1.00     20.2±0.15ms   593.6 MB/sec      1.01     20.4±0.12ms   588.4 MB/sec
short_string_non_null/default                      1.00     16.2±0.06ms   742.8 MB/sec      1.00     16.2±0.11ms   743.0 MB/sec
short_string_non_null/parquet_2                    1.00     26.2±0.16ms   457.9 MB/sec      1.00     26.1±0.12ms   459.8 MB/sec
short_string_non_null/zstd                         1.00     35.9±0.16ms   334.0 MB/sec      1.00     36.1±0.20ms   332.8 MB/sec
short_string_non_null/zstd_parquet_2               1.00     29.0±0.09ms   413.9 MB/sec      1.01     29.2±0.15ms   410.9 MB/sec
string/bloom_filter                                1.00   235.6±20.19ms     2.2 GB/sec      1.12   263.2±24.44ms  1991.7 MB/sec
string/cdc                                         1.00    219.0±7.30ms     2.3 GB/sec      1.01    220.3±9.87ms     2.3 GB/sec
string/default                                     1.00   131.5±21.65ms     3.9 GB/sec      1.13   149.1±25.37ms     3.4 GB/sec
string/parquet_2                                   1.67    193.1±2.75ms     2.7 GB/sec      1.00   115.9±19.51ms     4.4 GB/sec
string/zstd                                        1.09   471.4±23.79ms  1112.0 MB/sec      1.00    432.8±6.08ms  1211.2 MB/sec
string/zstd_parquet_2                              1.03   409.0±14.85ms  1281.7 MB/sec      1.00    397.0±2.76ms  1320.5 MB/sec
string_and_binary_view/bloom_filter                1.00     72.4±1.71ms   445.5 MB/sec      1.03     74.3±2.56ms   434.3 MB/sec
string_and_binary_view/cdc                         1.00     62.7±1.84ms   514.0 MB/sec      1.00     62.7±1.18ms   514.0 MB/sec
string_and_binary_view/default                     1.00     52.3±1.41ms   616.8 MB/sec      1.00     52.1±1.24ms   618.6 MB/sec
string_and_binary_view/parquet_2                   1.02     63.9±1.66ms   504.8 MB/sec      1.00     62.6±1.50ms   515.0 MB/sec
string_and_binary_view/zstd                        1.00     88.4±1.47ms   364.6 MB/sec      1.02     90.3±1.45ms   357.2 MB/sec
string_and_binary_view/zstd_parquet_2              1.03     78.7±1.77ms   409.7 MB/sec      1.00     76.7±1.16ms   420.3 MB/sec
string_dictionary/bloom_filter                     1.04    108.6±7.83ms     2.4 GB/sec      1.00    104.8±5.28ms     2.5 GB/sec
string_dictionary/cdc                              1.00     53.2±1.24ms     4.9 GB/sec      1.26     66.9±9.47ms     3.9 GB/sec
string_dictionary/default                          1.05     50.7±1.43ms     5.1 GB/sec      1.00     48.3±2.69ms     5.3 GB/sec
string_dictionary/parquet_2                        1.00     50.1±0.75ms     5.2 GB/sec      1.07     53.5±4.20ms     4.8 GB/sec
string_dictionary/zstd                             1.00    216.8±3.12ms  1218.5 MB/sec      1.06    228.8±4.09ms  1154.3 MB/sec
string_dictionary/zstd_parquet_2                   1.00    199.4±1.97ms  1324.8 MB/sec      1.01    200.9±1.69ms  1314.5 MB/sec
string_non_null/bloom_filter                       1.00   296.8±23.71ms  1765.5 MB/sec      1.03   306.1±39.49ms  1711.7 MB/sec
string_non_null/cdc                                1.00   267.2±13.59ms  1960.9 MB/sec      1.05   279.8±11.75ms  1873.1 MB/sec
string_non_null/default                            1.00   147.6±13.23ms     3.5 GB/sec      1.02   150.2±33.08ms     3.4 GB/sec
string_non_null/parquet_2                          1.00    111.4±1.84ms     4.6 GB/sec      1.25    138.8±7.50ms     3.7 GB/sec
string_non_null/zstd                               1.00    541.9±9.62ms   967.0 MB/sec      1.09   591.7±23.82ms   885.5 MB/sec
string_non_null/zstd_parquet_2                     1.00    506.2±7.73ms  1035.1 MB/sec      1.00    508.1±9.31ms  1031.3 MB/sec
string_ree/bloom_filter                            1.00    168.7±3.10ms    97.2 MB/sec      1.15    193.6±4.31ms    84.7 MB/sec
string_ree/cdc                                     1.00    233.6±2.25ms    70.2 MB/sec      1.08    251.9±6.73ms    65.1 MB/sec
string_ree/default                                 1.00    135.5±1.86ms   121.0 MB/sec      1.19    161.5±3.23ms   101.6 MB/sec
string_ree/parquet_2                               1.00    183.8±1.68ms    89.3 MB/sec      1.06    195.0±1.95ms    84.1 MB/sec
string_ree/zstd                                    1.00    192.4±4.12ms    85.3 MB/sec      1.06    203.4±4.41ms    80.6 MB/sec
string_ree/zstd_parquet_2                          1.00    197.2±2.35ms    83.2 MB/sec      1.07    210.3±1.98ms    78.0 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     27.2±0.11ms    51.7 MB/sec      1.00     27.2±0.17ms    51.6 MB/sec
string_ree_95pct_null/cdc                          1.00     33.7±0.16ms    41.8 MB/sec      1.00     33.6±0.15ms    41.8 MB/sec
string_ree_95pct_null/default                      1.00     25.6±0.14ms    55.0 MB/sec      1.00     25.5±0.13ms    55.1 MB/sec
string_ree_95pct_null/parquet_2                    1.00     25.5±0.12ms    55.2 MB/sec      1.00     25.5±0.20ms    55.1 MB/sec
string_ree_95pct_null/zstd                         1.00     26.4±0.14ms    53.3 MB/sec      1.00     26.5±0.18ms    53.1 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.01     26.5±0.19ms    53.1 MB/sec      1.00     26.3±0.15ms    53.6 MB/sec
struct_all_null/bloom_filter                       1.01    382.1±4.84µs    41.2 GB/sec      1.00    378.6±3.12µs    41.6 GB/sec
struct_all_null/cdc                                1.03      7.8±0.11ms     2.0 GB/sec      1.00      7.6±0.08ms     2.1 GB/sec
struct_all_null/default                            1.00    117.3±0.87µs   134.3 GB/sec      1.00    117.0±0.85µs   134.6 GB/sec
struct_all_null/parquet_2                          1.00    120.9±0.75µs   130.2 GB/sec      1.00    120.6±0.71µs   130.6 GB/sec
struct_all_null/zstd                               1.01    168.1±0.91µs    93.7 GB/sec      1.00    166.9±0.87µs    94.4 GB/sec
struct_all_null/zstd_parquet_2                     1.01    155.5±0.95µs   101.2 GB/sec      1.00    154.1±0.64µs   102.2 GB/sec
struct_non_null/bloom_filter                       1.00     49.5±0.66ms   323.5 MB/sec      1.04     51.3±1.60ms   312.1 MB/sec
struct_non_null/cdc                                1.00     47.2±0.46ms   338.9 MB/sec      1.02     48.0±0.59ms   333.5 MB/sec
struct_non_null/default                            1.02     34.2±0.70ms   467.8 MB/sec      1.00     33.7±0.36ms   475.0 MB/sec
struct_non_null/parquet_2                          1.00     42.7±0.46ms   374.8 MB/sec      1.01     42.9±0.58ms   372.6 MB/sec
struct_non_null/zstd                               1.00     42.5±0.55ms   376.2 MB/sec      1.02     43.3±0.64ms   369.9 MB/sec
struct_non_null/zstd_parquet_2                     1.00     57.0±0.96ms   280.8 MB/sec      1.01     57.4±0.73ms   278.6 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      7.2±0.08ms     2.2 GB/sec      1.01      7.3±0.11ms     2.2 GB/sec
struct_sparse_99pct_null/cdc                       1.00     14.9±0.18ms  1085.1 MB/sec      1.02     15.2±0.13ms  1062.0 MB/sec
struct_sparse_99pct_null/default                   1.00      6.4±0.06ms     2.5 GB/sec      1.00      6.4±0.07ms     2.4 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.5±0.06ms     2.4 GB/sec      1.00      6.5±0.08ms     2.4 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.8±0.06ms     2.0 GB/sec      1.01      7.9±0.08ms  2043.6 MB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      7.3±0.11ms     2.2 GB/sec      1.00      7.2±0.08ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 3125.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2962.4s
CPU sys 158.1s
Peak spill 0 B

branch

Metric Value
Wall time 3085.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2968.6s
CPU sys 113.0s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb
adriangb force-pushed the fix-delta-byte-array-page-split-10489 branch from d63a6d7 to 5b904cc Compare August 3, 2026 13:58
alamb pushed a commit that referenced this pull request Aug 3, 2026
…er benchmark (#10512)

# Which issue does this PR close?

- Part of #10511

# Rationale for this change

No existing benchmark writes `DELTA_BYTE_ARRAY` through the writer: the
`arrow_writer` property matrix varies writer version, compression, bloom
filters, and CDC, all on the default encoding, and `encoding.rs` benches
encoders in isolation.

That gap matters for the large-value write path specifically: the
byte-budget sub-batching in `write_batch_internal` (#9972) measures raw
payload bytes, and page-boundary behavior interacts with the encoding's
cross-value state (#10489, #10505). None of that is visible to any
current benchmark. #10511 tracks whether making the byte budget
encoded-size-aware is worthwhile; these benchmarks are the measurement
for that question.

# What changes are included in this PR?

Two new batches and one new bench group in
`parquet/benches/arrow_writer.rs`:

- `large_string_shared_prefix`: 128 rows x 2 MiB, long common prefix
with a short distinct suffix (the case `DELTA_BYTE_ARRAY` exists for)
- `large_string_distinct`: same shape, values differing from byte 0 (the
adversarial case, prefix length ~0)

Values are sized so one value alone exceeds the default 1 MiB page
limit, the regime of #10489. Each batch runs under `plain` and
`delta_byte_array` properties (dictionary disabled), so the
delta-vs-plain gap on identical data separates inherent encoding cost
from writer overhead.

Results on an Apple M-series laptop, current `main`:

| group | `plain` | `delta_byte_array` |
| --- | --- | --- |
| `large_string_shared_prefix` | 59.0 ms (4.2 GiB/s) | 61.4 ms (4.1
GiB/s) |
| `large_string_distinct` | 37.2 ms (6.7 GiB/s) | 44.7 ms (5.6 GiB/s) |

Note these numbers shift when #10505 lands, in both directions:
shared-prefix delta gets slower in CPU time because the encoder starts
doing real prefix comparisons instead of degenerating to per-page
`PLAIN` (while the output shrinks ~128x), and distinct delta gets faster
from halving the page count. That sensitivity is the point of having the
benchmark.

# Are these changes tested?

The change is itself a benchmark; it compiles and runs under `cargo
bench -p parquet --bench arrow_writer`.

# Are there any user-facing changes?

No.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
adriangb and others added 2 commits August 3, 2026 11:03
…page limit

A `BYTE_ARRAY` value larger than `data_page_size_limit` exceeds the limit on
its own, so the post-write `should_add_data_page` check cuts a page after
every single value. Parquet requires at least one value per data page, so
that value is unsplittable and the limit is simply unsatisfiable there.

For `DELTA_BYTE_ARRAY` this is destructive rather than merely wasteful: each
page boundary discards the encoder's previous value, so every value gets
`prefix_length = 0` and the encoding degenerates to exactly `PLAIN`. Columns
of large values that share long prefixes stop being deduplicated (apache#10489).

Exempt a page's mandatory first value from the byte limit when that value
alone already exceeds it, so the limit applies to what follows — the bytes we
can still place on another page. The exemption is gated on
`ColumnValueEncoder::compresses_against_previous_value`, so only
`DELTA_BYTE_ARRAY` opts in; `PLAIN` and `DELTA_LENGTH_BYTE_ARRAY` cost the
same wherever a value lands and keep their existing one-value page bound.

Pages therefore stay bounded by the value size rather than growing with
`write_batch_size`, preserving the fix from apache#9972.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The first-value exemption triggers on a page-opening mini-batch holding
exactly one value. A null in a chunk changes the level:value ratio, the
byte-budget chunker rounds up to two-level mini-batches, and pages that
open with a two-value mini-batch miss the exemption: they are cut after
two values with the first stored in full. The mini-batch pairing the
null with a value has one value, so the page it opens does get the
exemption and accumulates the remaining suffixes.

Pin that layout ([2, 2, 2, 2, 9] for 16 identical values with a null at
index 8) so the limitation is a documented decision rather than an
accident, and note it on set_page_size_floor. If the trigger is later
keyed on values written to the page (0 -> 1) instead of mini-batch
shape, the test fails with fewer, larger pages and should be updated to
pin the improved layout.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@adriangb
adriangb force-pushed the fix-delta-byte-array-page-split-10489 branch from 5b904cc to c284081 Compare August 3, 2026 16:03
@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5168784328-1353-6nqlc 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5168784328-1354-mwdc2 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_overhead
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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead
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                         fix-delta-byte-array-page-split-10489    main
-----                         -------------------------------------    ----
writer_overhead/10000_cols    1.18     49.7±1.17ms        ? ?/sec      1.00     42.0±1.23ms        ? ?/sec
writer_overhead/1000_cols     1.01      3.7±0.05ms        ? ?/sec      1.00      3.6±0.03ms        ? ?/sec
writer_overhead/5000_cols     1.00     20.3±0.55ms        ? ?/sec      1.05     21.3±0.28ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 40.0s
Peak memory 55.8 MiB
Avg memory 29.7 MiB
CPU user 33.6s
CPU sys 1.2s
Peak spill 0 B

branch

Metric Value
Wall time 30.0s
Peak memory 55.9 MiB
Avg memory 29.5 MiB
CPU user 26.6s
CPU sys 1.5s
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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.01     13.0±0.09ms    19.3 MB/sec      1.00     12.9±0.04ms    19.5 MB/sec
bool/cdc                                           1.01     15.9±0.04ms    15.7 MB/sec      1.00     15.8±0.13ms    15.8 MB/sec
bool/default                                       1.00     10.8±0.06ms    23.1 MB/sec      1.00     10.8±0.06ms    23.2 MB/sec
bool/parquet_2                                     1.00     14.6±0.07ms    17.1 MB/sec      1.00     14.6±0.06ms    17.1 MB/sec
bool/zstd                                          1.00     11.3±0.05ms    22.2 MB/sec      1.00     11.3±0.04ms    22.2 MB/sec
bool/zstd_parquet_2                                1.00     15.0±0.06ms    16.7 MB/sec      1.01     15.1±0.04ms    16.5 MB/sec
bool_non_null/bloom_filter                         1.01      7.0±0.04ms    17.8 MB/sec      1.00      7.0±0.02ms    17.9 MB/sec
bool_non_null/cdc                                  1.02      7.0±0.09ms    17.8 MB/sec      1.00      6.9±0.10ms    18.1 MB/sec
bool_non_null/default                              1.00      4.3±0.03ms    29.4 MB/sec      1.00      4.2±0.03ms    29.5 MB/sec
bool_non_null/parquet_2                            1.00      9.0±0.04ms    13.9 MB/sec      1.01      9.0±0.05ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.6±0.03ms    27.3 MB/sec      1.00      4.6±0.02ms    27.4 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.05ms    13.3 MB/sec      1.01      9.5±0.04ms    13.2 MB/sec
bool_ree/bloom_filter                              1.00     30.3±0.10ms     7.0 MB/sec      1.00     30.2±0.09ms     7.0 MB/sec
bool_ree/cdc                                       1.00     31.6±0.11ms     6.7 MB/sec      1.00     31.6±0.13ms     6.7 MB/sec
bool_ree/default                                   1.00     27.6±0.04ms     7.7 MB/sec      1.00     27.6±0.07ms     7.7 MB/sec
bool_ree/parquet_2                                 1.00     29.1±0.06ms     7.3 MB/sec      1.00     29.1±0.06ms     7.3 MB/sec
bool_ree/zstd                                      1.00     28.3±0.10ms     7.5 MB/sec      1.00     28.3±0.17ms     7.5 MB/sec
bool_ree/zstd_parquet_2                            1.00     29.5±0.13ms     7.2 MB/sec      1.00     29.6±0.14ms     7.2 MB/sec
decimal/bloom_filter                               1.03    127.6±3.22ms   470.3 MB/sec      1.00    124.2±4.08ms   483.0 MB/sec
decimal/cdc                                        1.00    106.9±0.95ms   561.3 MB/sec      1.00    106.8±0.97ms   561.9 MB/sec
decimal/default                                    1.02     86.4±2.74ms   694.6 MB/sec      1.00     85.0±2.34ms   705.8 MB/sec
decimal/parquet_2                                  1.01    184.5±2.89ms   325.3 MB/sec      1.00    182.5±2.60ms   328.8 MB/sec
decimal/zstd                                       1.02     95.1±0.35ms   631.0 MB/sec      1.00     93.5±1.02ms   641.4 MB/sec
decimal/zstd_parquet_2                             1.01    205.7±3.62ms   291.7 MB/sec      1.00    204.0±3.38ms   294.1 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     58.4±0.38ms    17.2 MB/sec      1.01     58.8±0.30ms    17.1 MB/sec
fixed_size_binary_ree/cdc                          1.00     62.1±0.30ms    16.2 MB/sec      1.00     62.0±0.37ms    16.2 MB/sec
fixed_size_binary_ree/default                      1.00     52.2±0.43ms    19.3 MB/sec      1.00     52.3±0.49ms    19.3 MB/sec
fixed_size_binary_ree/parquet_2                    1.00     66.3±0.21ms    15.2 MB/sec      1.01     67.0±1.58ms    15.0 MB/sec
fixed_size_binary_ree/zstd                         1.01     58.4±0.82ms    17.2 MB/sec      1.00     58.0±0.70ms    17.4 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.01     69.0±1.83ms    14.6 MB/sec      1.00     68.1±1.76ms    14.8 MB/sec
float_with_nans/bloom_filter                       1.03     80.6±1.04ms   173.6 MB/sec      1.00     78.6±0.19ms   178.2 MB/sec
float_with_nans/cdc                                1.00     71.7±1.83ms   195.2 MB/sec      1.00     71.4±2.08ms   196.1 MB/sec
float_with_nans/default                            1.01     62.8±0.22ms   223.1 MB/sec      1.00     62.4±0.21ms   224.3 MB/sec
float_with_nans/parquet_2                          1.00     83.7±1.72ms   167.3 MB/sec      1.01     84.2±0.51ms   166.2 MB/sec
float_with_nans/zstd                               1.01    102.4±1.60ms   136.7 MB/sec      1.00    101.5±1.59ms   137.9 MB/sec
float_with_nans/zstd_parquet_2                     1.01    118.5±1.52ms   118.1 MB/sec      1.00    117.8±1.53ms   118.8 MB/sec
fsb/bloom_filter                                   1.00      8.4±0.49ms  1923.4 MB/sec      1.01      8.4±0.59ms  1912.1 MB/sec
fsb/cdc                                            1.00     10.7±0.33ms  1506.9 MB/sec      1.02     10.9±0.36ms  1476.1 MB/sec
fsb/default                                        1.01      7.0±0.03ms     2.3 GB/sec      1.00      6.9±0.10ms     2.3 GB/sec
fsb/parquet_2                                      1.02     13.4±0.09ms  1205.2 MB/sec      1.00     13.1±0.06ms  1231.8 MB/sec
fsb/zstd                                           1.05      9.9±0.25ms  1631.8 MB/sec      1.00      9.4±0.05ms  1721.3 MB/sec
fsb/zstd_parquet_2                                 1.03     14.4±0.29ms  1122.0 MB/sec      1.00     14.0±0.08ms  1153.3 MB/sec
int32_ree/bloom_filter                             1.00     41.6±1.14ms     9.8 MB/sec      1.01     42.0±1.14ms     9.7 MB/sec
int32_ree/cdc                                      1.00     41.4±0.16ms     9.8 MB/sec      1.00     41.2±0.21ms     9.9 MB/sec
int32_ree/default                                  1.01     37.8±0.22ms    10.8 MB/sec      1.00     37.6±0.24ms    10.8 MB/sec
int32_ree/parquet_2                                1.01     37.7±0.33ms    10.8 MB/sec      1.00     37.4±0.21ms    10.9 MB/sec
int32_ree/zstd                                     1.01     38.1±0.08ms    10.7 MB/sec      1.00     37.8±0.06ms    10.8 MB/sec
int32_ree/zstd_parquet_2                           1.00     38.6±0.13ms    10.6 MB/sec      1.00     38.4±0.04ms    10.6 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     21.9±0.19ms    18.6 MB/sec      1.00     21.8±0.06ms    18.7 MB/sec
int32_ree_95pct_null/cdc                           1.00     23.9±0.20ms    17.0 MB/sec      1.00     23.9±0.20ms    17.0 MB/sec
int32_ree_95pct_null/default                       1.00     21.6±0.14ms    18.8 MB/sec      1.00     21.6±0.14ms    18.9 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.5±0.03ms    18.9 MB/sec      1.00     21.5±0.04ms    18.9 MB/sec
int32_ree_95pct_null/zstd                          1.00     22.1±0.06ms    18.4 MB/sec      1.00     22.1±0.03ms    18.4 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.00     21.8±0.16ms    18.7 MB/sec      1.00     21.7±0.13ms    18.7 MB/sec
large_string_distinct/delta_byte_array             1.00     71.1±8.38ms     3.5 GB/sec      1.08     76.8±3.20ms     3.3 GB/sec
large_string_distinct/plain                        1.00     59.4±0.10ms     4.2 GB/sec      1.17     69.7±5.80ms     3.6 GB/sec
large_string_non_null/bloom_filter                 1.00     73.8±2.01ms     3.4 GB/sec      1.00     73.5±2.29ms     3.4 GB/sec
large_string_non_null/cdc                          1.00    246.8±3.58ms  1037.1 MB/sec      1.00    247.0±3.73ms  1036.4 MB/sec
large_string_non_null/default                      1.01     56.1±1.13ms     4.5 GB/sec      1.00     55.4±1.86ms     4.5 GB/sec
large_string_non_null/parquet_2                    1.01     55.3±0.83ms     4.5 GB/sec      1.00     54.5±0.10ms     4.6 GB/sec
large_string_non_null/zstd                         1.00     55.2±0.09ms     4.5 GB/sec      1.02     56.1±2.56ms     4.5 GB/sec
large_string_non_null/zstd_parquet_2               1.04     56.7±2.63ms     4.4 GB/sec      1.00     54.6±0.10ms     4.6 GB/sec
large_string_shared_prefix/delta_byte_array        1.37    145.6±8.37ms  1758.3 MB/sec      1.00    106.4±0.58ms     2.3 GB/sec
large_string_shared_prefix/plain                   1.11   109.1±10.99ms     2.3 GB/sec      1.00    98.4±11.14ms     2.5 GB/sec
list_nested/bloom_filter                           1.03    152.6±2.85ms   189.1 MB/sec      1.00    147.6±2.02ms   195.5 MB/sec
list_nested/cdc                                    1.00    165.2±1.42ms   174.7 MB/sec      1.00    165.2±1.75ms   174.7 MB/sec
list_nested/default                                1.00    133.7±1.13ms   215.8 MB/sec      1.00    133.2±0.92ms   216.6 MB/sec
list_nested/parquet_2                              1.00    147.2±1.16ms   196.1 MB/sec      1.00    147.4±1.44ms   195.8 MB/sec
list_nested/zstd                                   1.00    143.2±1.49ms   201.5 MB/sec      1.00    142.8±1.36ms   202.1 MB/sec
list_nested/zstd_parquet_2                         1.01    161.0±1.53ms   179.2 MB/sec      1.00    159.1±1.15ms   181.4 MB/sec
list_primitive/bloom_filter                        1.03   292.3±18.80ms  1865.6 MB/sec      1.00   283.4±15.24ms  1924.2 MB/sec
list_primitive/cdc                                 1.01    318.3±7.14ms  1713.4 MB/sec      1.00    315.1±6.97ms  1731.0 MB/sec
list_primitive/default                             1.02    207.0±5.41ms     2.6 GB/sec      1.00    203.7±6.20ms     2.6 GB/sec
list_primitive/parquet_2                           1.01    227.7±2.97ms     2.3 GB/sec      1.00    225.4±2.96ms     2.4 GB/sec
list_primitive/zstd                                1.01   463.4±10.73ms  1177.0 MB/sec      1.00    457.7±9.01ms  1191.6 MB/sec
list_primitive/zstd_parquet_2                      1.00    451.9±4.71ms  1206.9 MB/sec      1.00    450.1±4.92ms  1211.7 MB/sec
list_primitive_non_null/bloom_filter               1.09   407.2±38.78ms  1336.6 MB/sec      1.00   371.9±30.35ms  1463.2 MB/sec
list_primitive_non_null/cdc                        1.02   403.9±12.25ms  1347.3 MB/sec      1.00   395.4±12.41ms  1376.5 MB/sec
list_primitive_non_null/default                    1.11   252.9±10.58ms     2.1 GB/sec      1.00    227.9±8.49ms     2.3 GB/sec
list_primitive_non_null/parquet_2                  1.05   274.5±15.04ms  1982.4 MB/sec      1.00    261.9±4.72ms     2.0 GB/sec
list_primitive_non_null/zstd                       1.06   686.3±20.09ms   793.0 MB/sec      1.00   647.4±15.67ms   840.6 MB/sec
list_primitive_non_null/zstd_parquet_2             1.03   673.1±10.38ms   808.6 MB/sec      1.00   652.5±11.33ms   834.1 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     12.6±0.29ms     2.9 GB/sec      1.00     12.6±0.27ms     2.9 GB/sec
list_primitive_sparse_99pct_null/cdc               1.02     24.6±0.56ms  1517.6 MB/sec      1.00     24.0±0.11ms  1554.3 MB/sec
list_primitive_sparse_99pct_null/default           1.00     12.7±0.36ms     2.9 GB/sec      1.01     12.8±0.30ms     2.8 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.01     12.7±0.41ms     2.9 GB/sec      1.00     12.5±0.34ms     2.9 GB/sec
list_primitive_sparse_99pct_null/zstd              1.01     14.2±0.06ms     2.6 GB/sec      1.00     14.0±0.02ms     2.6 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.04     13.2±0.28ms     2.8 GB/sec      1.00     12.8±0.44ms     2.9 GB/sec
list_struct_with_list/bloom_filter                 1.02    291.7±5.54ms   156.3 MB/sec      1.00    286.5±5.63ms   159.1 MB/sec
list_struct_with_list/cdc                          1.00    323.6±2.79ms   140.9 MB/sec      1.01    326.3±3.74ms   139.7 MB/sec
list_struct_with_list/default                      1.00    259.0±2.04ms   176.0 MB/sec      1.00    258.5±1.88ms   176.4 MB/sec
list_struct_with_list/parquet_2                    1.01    278.0±3.22ms   164.0 MB/sec      1.00    276.4±2.34ms   165.0 MB/sec
list_struct_with_list/zstd                         1.00    280.8±2.64ms   162.4 MB/sec      1.01    282.7±3.70ms   161.3 MB/sec
list_struct_with_list/zstd_parquet_2               1.01    301.1±3.46ms   151.4 MB/sec      1.00    299.5±2.71ms   152.2 MB/sec
primitive/bloom_filter                             1.00    154.5±6.27ms   290.4 MB/sec      1.00    155.2±4.69ms   289.2 MB/sec
primitive/cdc                                      1.00    160.9±1.82ms   278.9 MB/sec      1.00    161.5±2.87ms   277.9 MB/sec
primitive/default                                  1.00    119.2±0.98ms   376.4 MB/sec      1.04    123.8±2.72ms   362.5 MB/sec
primitive/parquet_2                                1.00    134.8±2.11ms   333.0 MB/sec      1.00    135.3±2.40ms   331.6 MB/sec
primitive/zstd                                     1.00    149.1±1.90ms   300.9 MB/sec      1.02    152.4±3.74ms   294.5 MB/sec
primitive/zstd_parquet_2                           1.01    171.0±2.94ms   262.5 MB/sec      1.00    169.3±2.70ms   265.1 MB/sec
primitive_all_null/bloom_filter                    1.00    888.7±1.89µs    49.3 GB/sec      1.01   895.5±40.40µs    48.9 GB/sec
primitive_all_null/cdc                             1.00     19.0±0.29ms     2.3 GB/sec      1.00     19.0±0.28ms     2.3 GB/sec
primitive_all_null/default                         1.00    272.3±1.64µs   160.9 GB/sec      1.00    271.1±1.43µs   161.7 GB/sec
primitive_all_null/parquet_2                       1.01    281.0±1.62µs   155.9 GB/sec      1.00    278.3±1.79µs   157.5 GB/sec
primitive_all_null/zstd                            1.01    420.4±1.46µs   104.2 GB/sec      1.00    415.3±1.29µs   105.5 GB/sec
primitive_all_null/zstd_parquet_2                  1.01    378.6±1.74µs   115.8 GB/sec      1.00    374.8±1.63µs   116.9 GB/sec
primitive_non_null/bloom_filter                    1.00    115.2±5.68ms   382.1 MB/sec      1.00    115.4±5.23ms   381.1 MB/sec
primitive_non_null/cdc                             1.02     97.1±1.85ms   453.0 MB/sec      1.00     94.8±2.53ms   464.2 MB/sec
primitive_non_null/default                         1.00     69.8±0.35ms   630.2 MB/sec      1.03     71.8±2.49ms   613.0 MB/sec
primitive_non_null/parquet_2                       1.00     92.2±1.52ms   477.4 MB/sec      1.00     91.9±1.87ms   478.8 MB/sec
primitive_non_null/zstd                            1.00     99.6±0.88ms   441.9 MB/sec      1.02    101.6±2.64ms   433.1 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    125.0±2.53ms   352.1 MB/sec      1.01    126.4±2.66ms   348.1 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.00     12.2±0.10ms     3.6 GB/sec      1.01     12.4±0.36ms     3.5 GB/sec
primitive_sparse_99pct_null/cdc                    1.00     30.0±0.74ms  1493.6 MB/sec      1.00     30.1±0.76ms  1490.2 MB/sec
primitive_sparse_99pct_null/default                1.01     11.2±0.38ms     3.9 GB/sec      1.00     11.1±0.43ms     3.9 GB/sec
primitive_sparse_99pct_null/parquet_2              1.01     11.0±0.31ms     4.0 GB/sec      1.00     10.9±0.20ms     4.0 GB/sec
primitive_sparse_99pct_null/zstd                   1.00     14.1±0.04ms     3.1 GB/sec      1.00     14.1±0.05ms     3.1 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.09     13.8±0.03ms     3.2 GB/sec      1.00     12.7±0.16ms     3.5 GB/sec
short_string_non_null/bloom_filter                 1.04     28.6±0.95ms   418.9 MB/sec      1.00     27.6±0.86ms   435.0 MB/sec
short_string_non_null/cdc                          1.01     20.2±0.28ms   595.3 MB/sec      1.00     20.0±0.23ms   600.2 MB/sec
short_string_non_null/default                      1.02     15.9±0.18ms   755.4 MB/sec      1.00     15.6±0.19ms   769.3 MB/sec
short_string_non_null/parquet_2                    1.00     25.8±0.05ms   464.7 MB/sec      1.00     25.8±0.11ms   464.6 MB/sec
short_string_non_null/zstd                         1.00     35.8±0.15ms   334.9 MB/sec      1.00     35.9±0.31ms   334.3 MB/sec
short_string_non_null/zstd_parquet_2               1.00     28.6±0.05ms   420.1 MB/sec      1.01     28.7±0.13ms   417.9 MB/sec
string/bloom_filter                                1.04   217.0±25.35ms     2.4 GB/sec      1.00   207.7±17.88ms     2.5 GB/sec
string/cdc                                         1.01    212.5±9.00ms     2.4 GB/sec      1.00    211.2±8.45ms     2.4 GB/sec
string/default                                     1.00   126.2±17.33ms     4.1 GB/sec      1.04   131.3±21.18ms     3.9 GB/sec
string/parquet_2                                   1.11    118.4±3.69ms     4.3 GB/sec      1.00   106.3±12.00ms     4.8 GB/sec
string/zstd                                        1.10   467.4±15.90ms  1121.7 MB/sec      1.00   423.3±12.37ms  1238.4 MB/sec
string/zstd_parquet_2                              1.07    412.5±6.87ms  1271.0 MB/sec      1.00    385.4±7.67ms  1360.2 MB/sec
string_and_binary_view/bloom_filter                1.00     64.9±0.25ms   496.5 MB/sec      1.01     65.7±4.56ms   490.6 MB/sec
string_and_binary_view/cdc                         1.01     59.0±1.04ms   546.2 MB/sec      1.00     58.3±0.14ms   553.1 MB/sec
string_and_binary_view/default                     1.02     48.6±1.32ms   662.9 MB/sec      1.00     47.7±0.13ms   676.4 MB/sec
string_and_binary_view/parquet_2                   1.06     63.1±2.03ms   510.7 MB/sec      1.00     59.6±1.61ms   541.0 MB/sec
string_and_binary_view/zstd                        1.00     87.2±2.49ms   369.7 MB/sec      1.00     87.6±2.70ms   368.3 MB/sec
string_and_binary_view/zstd_parquet_2              1.01     74.8±2.10ms   430.9 MB/sec      1.00     74.4±1.92ms   433.5 MB/sec
string_dictionary/bloom_filter                     1.05   106.7±11.09ms     2.4 GB/sec      1.00   102.0±13.21ms     2.5 GB/sec
string_dictionary/cdc                              1.71     85.3±3.75ms     3.0 GB/sec      1.00     49.8±3.03ms     5.2 GB/sec
string_dictionary/default                          1.00     43.4±0.22ms     5.9 GB/sec      1.03     44.7±3.30ms     5.8 GB/sec
string_dictionary/parquet_2                        1.35     64.9±1.70ms     4.0 GB/sec      1.00     48.1±1.03ms     5.4 GB/sec
string_dictionary/zstd                             1.06    222.8±7.29ms  1185.6 MB/sec      1.00    209.6±6.60ms  1260.2 MB/sec
string_dictionary/zstd_parquet_2                   1.07    208.4±3.80ms  1267.5 MB/sec      1.00    194.7±3.41ms  1356.6 MB/sec
string_non_null/bloom_filter                       1.01   243.2±31.88ms     2.1 GB/sec      1.00   241.7±34.05ms     2.1 GB/sec
string_non_null/cdc                                1.07    254.0±7.66ms     2.0 GB/sec      1.00    237.1±5.92ms     2.2 GB/sec
string_non_null/default                            1.00   123.2±15.70ms     4.2 GB/sec      1.01   123.9±12.90ms     4.1 GB/sec
string_non_null/parquet_2                          1.00    106.4±2.63ms     4.8 GB/sec      1.17    124.9±6.42ms     4.1 GB/sec
string_non_null/zstd                               1.01   574.3±27.46ms   912.5 MB/sec      1.00   569.6±21.29ms   920.0 MB/sec
string_non_null/zstd_parquet_2                     1.03   507.1±13.45ms  1033.3 MB/sec      1.00    493.7±8.10ms  1061.4 MB/sec
string_ree/bloom_filter                            1.00    155.9±5.51ms   105.2 MB/sec      1.00    156.1±6.12ms   105.1 MB/sec
string_ree/cdc                                     1.00    223.0±5.52ms    73.6 MB/sec      1.01    225.0±5.84ms    72.9 MB/sec
string_ree/default                                 1.01    129.6±6.83ms   126.6 MB/sec      1.00    128.2±6.36ms   128.0 MB/sec
string_ree/parquet_2                               1.00    178.2±2.55ms    92.1 MB/sec      1.00    178.5±2.79ms    91.9 MB/sec
string_ree/zstd                                    1.01   195.7±10.93ms    83.8 MB/sec      1.00   194.6±13.17ms    84.3 MB/sec
string_ree/zstd_parquet_2                          1.00    193.1±1.73ms    85.0 MB/sec      1.00    192.7±2.25ms    85.1 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     26.0±0.06ms    54.1 MB/sec      1.00     26.1±0.19ms    54.0 MB/sec
string_ree_95pct_null/cdc                          1.00     32.7±0.65ms    43.0 MB/sec      1.00     32.9±0.55ms    42.8 MB/sec
string_ree_95pct_null/default                      1.00     24.6±0.24ms    57.1 MB/sec      1.01     24.8±0.43ms    56.8 MB/sec
string_ree_95pct_null/parquet_2                    1.00     24.5±0.05ms    57.3 MB/sec      1.01     24.7±0.19ms    57.0 MB/sec
string_ree_95pct_null/zstd                         1.00     25.4±0.05ms    55.5 MB/sec      1.00     25.4±0.07ms    55.3 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.00     26.4±0.05ms    53.2 MB/sec      1.00     26.4±0.15ms    53.3 MB/sec
struct_all_null/bloom_filter                       1.03    381.1±9.77µs    41.3 GB/sec      1.00    369.9±8.64µs    42.6 GB/sec
struct_all_null/cdc                                1.01      7.9±0.10ms     2.0 GB/sec      1.00      7.8±0.12ms     2.0 GB/sec
struct_all_null/default                            1.01    116.9±0.76µs   134.7 GB/sec      1.00    115.6±0.88µs   136.3 GB/sec
struct_all_null/parquet_2                          1.01    120.7±0.74µs   130.5 GB/sec      1.00    118.9±0.68µs   132.5 GB/sec
struct_all_null/zstd                               1.01    180.2±0.68µs    87.4 GB/sec      1.00    178.0±0.70µs    88.5 GB/sec
struct_all_null/zstd_parquet_2                     1.02    161.7±0.73µs    97.4 GB/sec      1.00    159.2±0.72µs    98.9 GB/sec
struct_non_null/bloom_filter                       1.03     47.9±0.25ms   334.0 MB/sec      1.00     46.5±1.02ms   344.4 MB/sec
struct_non_null/cdc                                1.00     46.7±0.70ms   342.3 MB/sec      1.02     47.8±1.14ms   334.7 MB/sec
struct_non_null/default                            1.00     33.7±0.99ms   474.2 MB/sec      1.01     34.2±0.98ms   468.1 MB/sec
struct_non_null/parquet_2                          1.06     43.9±1.78ms   364.8 MB/sec      1.00     41.3±0.09ms   387.2 MB/sec
struct_non_null/zstd                               1.08     44.4±0.47ms   360.6 MB/sec      1.00     41.2±0.18ms   388.1 MB/sec
struct_non_null/zstd_parquet_2                     1.04     57.5±2.34ms   278.2 MB/sec      1.00     55.5±1.09ms   288.2 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      6.8±0.02ms     2.3 GB/sec      1.02      7.0±0.36ms     2.3 GB/sec
struct_sparse_99pct_null/cdc                       1.00     14.1±0.45ms  1145.7 MB/sec      1.04     14.7±0.06ms  1098.4 MB/sec
struct_sparse_99pct_null/default                   1.03      6.6±0.30ms     2.4 GB/sec      1.00      6.4±0.18ms     2.5 GB/sec
struct_sparse_99pct_null/parquet_2                 1.04      6.6±0.29ms     2.4 GB/sec      1.00      6.3±0.01ms     2.5 GB/sec
struct_sparse_99pct_null/zstd                      1.04      8.1±0.32ms  1999.0 MB/sec      1.00      7.7±0.23ms     2.0 GB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.02      7.2±0.15ms     2.2 GB/sec      1.00      7.0±0.01ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 2990.7s
Peak memory 2.9 GiB
Avg memory 2.7 GiB
CPU user 2907.4s
CPU sys 78.0s
Peak spill 0 B

branch

Metric Value
Wall time 3020.7s
Peak memory 2.9 GiB
Avg memory 2.6 GiB
CPU user 2910.9s
CPU sys 106.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

1 similar comment
@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5169957461-1358-xgg4w 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_overhead
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-c5169957461-1357-lxn5n 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5169956996-1355-d72xc 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5169956996-1356-5r2x7 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_overhead
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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead
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                         fix-delta-byte-array-page-split-10489    main
-----                         -------------------------------------    ----
writer_overhead/10000_cols    1.22     47.6±0.70ms        ? ?/sec      1.00     39.0±0.61ms        ? ?/sec
writer_overhead/1000_cols     1.00      3.6±0.02ms        ? ?/sec      1.00      3.5±0.04ms        ? ?/sec
writer_overhead/5000_cols     1.00     18.5±0.33ms        ? ?/sec      1.11     20.5±0.28ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 55.8 MiB
Avg memory 31.3 MiB
CPU user 31.8s
CPU sys 1.1s
Peak spill 0 B

branch

Metric Value
Wall time 35.0s
Peak memory 54.7 MiB
Avg memory 27.3 MiB
CPU user 28.6s
CPU sys 2.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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark writer_overhead
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                         fix-delta-byte-array-page-split-10489    main
-----                         -------------------------------------    ----
writer_overhead/10000_cols    1.00     38.0±0.59ms        ? ?/sec      1.00     38.1±0.51ms        ? ?/sec
writer_overhead/1000_cols     1.02      3.6±0.03ms        ? ?/sec      1.00      3.5±0.04ms        ? ?/sec
writer_overhead/5000_cols     1.00     18.2±0.19ms        ? ?/sec      1.12     20.4±0.28ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 55.8 MiB
Avg memory 31.6 MiB
CPU user 31.7s
CPU sys 1.1s
Peak spill 0 B

branch

Metric Value
Wall time 35.0s
Peak memory 55.9 MiB
Avg memory 32.6 MiB
CPU user 31.0s
CPU sys 0.0s
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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.00     12.8±0.04ms    19.5 MB/sec      1.01     12.9±0.06ms    19.4 MB/sec
bool/cdc                                           1.00     15.6±0.04ms    16.0 MB/sec      1.00     15.7±0.09ms    16.0 MB/sec
bool/default                                       1.00     10.8±0.03ms    23.3 MB/sec      1.00     10.8±0.05ms    23.2 MB/sec
bool/parquet_2                                     1.00     14.6±0.04ms    17.2 MB/sec      1.00     14.6±0.07ms    17.1 MB/sec
bool/zstd                                          1.00     11.3±0.03ms    22.2 MB/sec      1.01     11.3±0.06ms    22.1 MB/sec
bool/zstd_parquet_2                                1.00     14.9±0.03ms    16.7 MB/sec      1.00     15.0±0.07ms    16.7 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.02ms    18.0 MB/sec      1.00      7.0±0.02ms    17.9 MB/sec
bool_non_null/cdc                                  1.00      6.8±0.03ms    18.5 MB/sec      1.00      6.8±0.03ms    18.5 MB/sec
bool_non_null/default                              1.00      4.2±0.02ms    29.6 MB/sec      1.00      4.2±0.02ms    29.7 MB/sec
bool_non_null/parquet_2                            1.00      9.0±0.04ms    13.9 MB/sec      1.00      9.0±0.03ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.6±0.02ms    27.3 MB/sec      1.00      4.6±0.02ms    27.4 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.05ms    13.3 MB/sec      1.00      9.4±0.04ms    13.3 MB/sec
bool_ree/bloom_filter                              1.00     30.2±0.05ms     7.0 MB/sec      1.00     30.3±0.05ms     7.0 MB/sec
bool_ree/cdc                                       1.00     31.5±0.10ms     6.8 MB/sec      1.00     31.6±0.12ms     6.7 MB/sec
bool_ree/default                                   1.00     27.5±0.05ms     7.7 MB/sec      1.00     27.6±0.04ms     7.7 MB/sec
bool_ree/parquet_2                                 1.00     29.1±0.05ms     7.3 MB/sec      1.00     29.2±0.06ms     7.3 MB/sec
bool_ree/zstd                                      1.00     28.2±0.05ms     7.6 MB/sec      1.00     28.2±0.08ms     7.5 MB/sec
bool_ree/zstd_parquet_2                            1.00     29.4±0.06ms     7.2 MB/sec      1.00     29.5±0.10ms     7.2 MB/sec
decimal/bloom_filter                               1.02    125.5±1.08ms   478.1 MB/sec      1.00    123.1±1.41ms   487.2 MB/sec
decimal/cdc                                        1.00    106.7±0.61ms   562.1 MB/sec      1.00    106.8±0.32ms   562.0 MB/sec
decimal/default                                    1.01     85.4±0.41ms   702.5 MB/sec      1.00     84.4±2.16ms   710.7 MB/sec
decimal/parquet_2                                  1.00    183.6±1.14ms   326.8 MB/sec      1.00    183.9±2.33ms   326.2 MB/sec
decimal/zstd                                       1.01     96.3±1.71ms   623.3 MB/sec      1.00     95.5±0.36ms   628.2 MB/sec
decimal/zstd_parquet_2                             1.00    203.0±2.06ms   295.5 MB/sec      1.00    203.3±1.53ms   295.1 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     58.8±0.91ms    17.1 MB/sec      1.01     59.3±0.37ms    17.0 MB/sec
fixed_size_binary_ree/cdc                          1.00     61.9±0.19ms    16.3 MB/sec      1.00     61.8±0.23ms    16.3 MB/sec
fixed_size_binary_ree/default                      1.01     52.1±0.90ms    19.3 MB/sec      1.00     51.7±0.20ms    19.5 MB/sec
fixed_size_binary_ree/parquet_2                    1.01     67.0±1.44ms    15.0 MB/sec      1.00     66.2±0.51ms    15.2 MB/sec
fixed_size_binary_ree/zstd                         1.01     58.0±1.54ms    17.4 MB/sec      1.00     57.3±0.21ms    17.6 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.01     67.1±0.36ms    15.0 MB/sec      1.00     66.6±0.26ms    15.1 MB/sec
float_with_nans/bloom_filter                       1.02     80.9±0.24ms   173.1 MB/sec      1.00     79.5±0.42ms   176.1 MB/sec
float_with_nans/cdc                                1.01     70.8±0.51ms   197.8 MB/sec      1.00     70.1±0.50ms   199.9 MB/sec
float_with_nans/default                            1.00     62.9±0.21ms   222.5 MB/sec      1.00     63.0±1.41ms   222.2 MB/sec
float_with_nans/parquet_2                          1.00     80.9±0.37ms   173.0 MB/sec      1.00     80.7±0.27ms   173.6 MB/sec
float_with_nans/zstd                               1.00    101.1±0.21ms   138.5 MB/sec      1.00    100.9±0.24ms   138.7 MB/sec
float_with_nans/zstd_parquet_2                     1.01    118.5±1.11ms   118.2 MB/sec      1.00    117.5±1.36ms   119.1 MB/sec
fsb/bloom_filter                                   1.00      8.1±0.04ms  1997.4 MB/sec      1.03      8.3±0.13ms  1944.3 MB/sec
fsb/cdc                                            1.01     10.5±0.03ms  1539.6 MB/sec      1.00     10.4±0.05ms  1548.8 MB/sec
fsb/default                                        1.00      7.0±0.06ms     2.2 GB/sec      1.03      7.2±0.07ms     2.2 GB/sec
fsb/parquet_2                                      1.00     13.3±0.09ms  1212.6 MB/sec      1.01     13.5±0.15ms  1198.6 MB/sec
fsb/zstd                                           1.00      9.5±0.05ms  1705.7 MB/sec      1.01      9.5±0.06ms  1690.5 MB/sec
fsb/zstd_parquet_2                                 1.00     14.2±0.07ms  1134.9 MB/sec      1.01     14.3±0.14ms  1126.6 MB/sec
int32_ree/bloom_filter                             1.00     41.3±0.16ms     9.9 MB/sec      1.02     42.0±0.45ms     9.7 MB/sec
int32_ree/cdc                                      1.00     41.1±0.06ms     9.9 MB/sec      1.00     41.2±0.14ms     9.9 MB/sec
int32_ree/default                                  1.00     37.4±0.06ms    10.9 MB/sec      1.01     37.7±0.23ms    10.8 MB/sec
int32_ree/parquet_2                                1.00     37.4±0.06ms    10.9 MB/sec      1.02     38.1±0.27ms    10.7 MB/sec
int32_ree/zstd                                     1.00     37.9±0.06ms    10.7 MB/sec      1.02     38.6±0.26ms    10.5 MB/sec
int32_ree/zstd_parquet_2                           1.00     37.8±0.04ms    10.7 MB/sec      1.02     38.6±0.26ms    10.5 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     21.9±0.08ms    18.5 MB/sec      1.00     21.9±0.05ms    18.6 MB/sec
int32_ree_95pct_null/cdc                           1.00     23.9±0.06ms    17.0 MB/sec      1.00     23.8±0.09ms    17.1 MB/sec
int32_ree_95pct_null/default                       1.00     21.6±0.08ms    18.8 MB/sec      1.00     21.5±0.04ms    18.9 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.6±0.05ms    18.9 MB/sec      1.00     21.5±0.04ms    18.9 MB/sec
int32_ree_95pct_null/zstd                          1.00     21.8±0.05ms    18.6 MB/sec      1.00     21.8±0.05ms    18.7 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.00     21.7±0.04ms    18.7 MB/sec      1.00     21.7±0.03ms    18.7 MB/sec
large_string_distinct/delta_byte_array             1.00     66.5±0.83ms     3.8 GB/sec      1.14     75.5±0.92ms     3.3 GB/sec
large_string_distinct/plain                        1.00     60.3±0.57ms     4.1 GB/sec      1.01     61.2±0.64ms     4.1 GB/sec
large_string_non_null/bloom_filter                 1.00     73.2±0.15ms     3.4 GB/sec      1.00     73.4±0.24ms     3.4 GB/sec
large_string_non_null/cdc                          1.03    249.9±1.54ms  1024.3 MB/sec      1.00    243.8±1.46ms  1050.1 MB/sec
large_string_non_null/default                      1.01     55.3±0.11ms     4.5 GB/sec      1.00     54.8±0.18ms     4.6 GB/sec
large_string_non_null/parquet_2                    1.00     55.9±1.04ms     4.5 GB/sec      1.02     56.8±4.01ms     4.4 GB/sec
large_string_non_null/zstd                         1.05     57.7±1.33ms     4.3 GB/sec      1.00     54.7±0.16ms     4.6 GB/sec
large_string_non_null/zstd_parquet_2               1.07     59.2±0.77ms     4.2 GB/sec      1.00     55.3±0.62ms     4.5 GB/sec
large_string_shared_prefix/delta_byte_array        1.28    141.6±0.60ms  1807.9 MB/sec      1.00    110.5±0.97ms     2.3 GB/sec
large_string_shared_prefix/plain                   1.00     93.8±0.93ms     2.7 GB/sec      1.02     95.3±1.58ms     2.6 GB/sec
list_nested/bloom_filter                           1.00    147.2±0.49ms   196.0 MB/sec      1.01    148.2±0.32ms   194.7 MB/sec
list_nested/cdc                                    1.00    164.2±0.38ms   175.7 MB/sec      1.00    164.2±0.23ms   175.7 MB/sec
list_nested/default                                1.00    133.1±0.16ms   216.8 MB/sec      1.00    133.3±0.37ms   216.5 MB/sec
list_nested/parquet_2                              1.00    146.4±0.18ms   197.1 MB/sec      1.00    146.5±0.37ms   197.0 MB/sec
list_nested/zstd                                   1.00    142.4±0.16ms   202.6 MB/sec      1.00    142.5±0.43ms   202.5 MB/sec
list_nested/zstd_parquet_2                         1.00    159.0±0.16ms   181.4 MB/sec      1.00    159.1±0.36ms   181.3 MB/sec
list_primitive/bloom_filter                        1.06    299.0±4.11ms  1823.8 MB/sec      1.00    281.9±1.27ms  1934.8 MB/sec
list_primitive/cdc                                 1.04    322.8±8.39ms  1689.5 MB/sec      1.00    309.8±2.45ms  1760.7 MB/sec
list_primitive/default                             1.11    222.6±4.52ms     2.4 GB/sec      1.00    201.0±1.27ms     2.6 GB/sec
list_primitive/parquet_2                           1.10    247.5±0.72ms     2.2 GB/sec      1.00    225.9±0.75ms     2.4 GB/sec
list_primitive/zstd                                1.04    472.2±2.95ms  1155.0 MB/sec      1.00    453.9±2.13ms  1201.4 MB/sec
list_primitive/zstd_parquet_2                      1.04    465.5±0.37ms  1171.5 MB/sec      1.00    447.5±0.46ms  1218.8 MB/sec
list_primitive_non_null/bloom_filter               1.09    404.6±9.73ms  1345.2 MB/sec      1.00    370.7±7.69ms  1468.0 MB/sec
list_primitive_non_null/cdc                        1.00    395.7±9.68ms  1375.5 MB/sec      1.00    393.9±7.19ms  1381.8 MB/sec
list_primitive_non_null/default                    1.20   275.0±10.10ms  1979.1 MB/sec      1.00    230.1±5.21ms     2.3 GB/sec
list_primitive_non_null/parquet_2                  1.13   302.1±21.46ms  1801.4 MB/sec      1.00    267.6±1.50ms  2034.2 MB/sec
list_primitive_non_null/zstd                       1.08    707.3±5.55ms   769.4 MB/sec      1.00    654.0±4.82ms   832.1 MB/sec
list_primitive_non_null/zstd_parquet_2             1.04   682.1±15.51ms   797.8 MB/sec      1.00    653.1±2.12ms   833.3 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     12.7±0.27ms     2.9 GB/sec      1.00     12.6±0.06ms     2.9 GB/sec
list_primitive_sparse_99pct_null/cdc               1.01     24.2±0.08ms  1544.7 MB/sec      1.00     24.1±0.09ms  1553.3 MB/sec
list_primitive_sparse_99pct_null/default           1.00     12.3±0.03ms     3.0 GB/sec      1.00     12.3±0.06ms     3.0 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     12.4±0.04ms     3.0 GB/sec      1.00     12.3±0.04ms     3.0 GB/sec
list_primitive_sparse_99pct_null/zstd              1.00     14.2±0.05ms     2.6 GB/sec      1.00     14.2±0.04ms     2.6 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.00     12.5±0.05ms     2.9 GB/sec      1.00     12.4±0.04ms     2.9 GB/sec
list_struct_with_list/bloom_filter                 1.01    287.2±0.59ms   158.8 MB/sec      1.00    285.4±1.07ms   159.8 MB/sec
list_struct_with_list/cdc                          1.00    323.4±0.59ms   141.0 MB/sec      1.00    324.1±0.73ms   140.7 MB/sec
list_struct_with_list/default                      1.00    258.6±0.49ms   176.3 MB/sec      1.00    258.9±0.74ms   176.1 MB/sec
list_struct_with_list/parquet_2                    1.00    276.1±0.77ms   165.1 MB/sec      1.00    276.3±0.85ms   165.0 MB/sec
list_struct_with_list/zstd                         1.00    280.2±0.45ms   162.7 MB/sec      1.00    280.8±0.83ms   162.4 MB/sec
list_struct_with_list/zstd_parquet_2               1.00    299.1±0.53ms   152.4 MB/sec      1.00    300.3±1.40ms   151.9 MB/sec
primitive/bloom_filter                             1.01    153.3±0.76ms   292.7 MB/sec      1.00    151.9±1.41ms   295.5 MB/sec
primitive/cdc                                      1.00    160.2±0.58ms   280.2 MB/sec      1.00    159.9±0.76ms   280.6 MB/sec
primitive/default                                  1.00    120.8±0.54ms   371.4 MB/sec      1.00    120.4±1.78ms   372.8 MB/sec
primitive/parquet_2                                1.00    134.6±0.32ms   333.5 MB/sec      1.00    134.3±1.03ms   334.1 MB/sec
primitive/zstd                                     1.00    149.5±0.26ms   300.2 MB/sec      1.00    149.1±0.96ms   300.9 MB/sec
primitive/zstd_parquet_2                           1.00    167.2±0.26ms   268.4 MB/sec      1.00    167.2±1.14ms   268.4 MB/sec
primitive_all_null/bloom_filter                    1.00    886.0±2.87µs    49.5 GB/sec      1.00    890.2±2.34µs    49.2 GB/sec
primitive_all_null/cdc                             1.01     19.1±0.24ms     2.3 GB/sec      1.00     18.9±0.22ms     2.3 GB/sec
primitive_all_null/default                         1.00    271.0±1.46µs   161.7 GB/sec      1.00    271.8±1.29µs   161.2 GB/sec
primitive_all_null/parquet_2                       1.00    279.0±1.45µs   157.1 GB/sec      1.00    280.0±1.50µs   156.5 GB/sec
primitive_all_null/zstd                            1.00    419.4±1.62µs   104.5 GB/sec      1.00    421.5±1.86µs   104.0 GB/sec
primitive_all_null/zstd_parquet_2                  1.00    376.2±1.48µs   116.5 GB/sec      1.01    378.1±1.49µs   115.9 GB/sec
primitive_non_null/bloom_filter                    1.01    110.9±0.32ms   396.9 MB/sec      1.00    109.7±0.82ms   401.2 MB/sec
primitive_non_null/cdc                             1.00     92.5±0.36ms   475.9 MB/sec      1.00     92.8±0.37ms   474.0 MB/sec
primitive_non_null/default                         1.00     69.6±0.18ms   632.5 MB/sec      1.00     69.8±0.87ms   630.1 MB/sec
primitive_non_null/parquet_2                       1.00     91.2±0.18ms   482.3 MB/sec      1.01     91.9±0.85ms   478.6 MB/sec
primitive_non_null/zstd                            1.00    100.2±0.17ms   439.3 MB/sec      1.01    101.2±0.84ms   434.8 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    124.8±0.36ms   352.6 MB/sec      1.00    125.0±0.87ms   351.9 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.01     12.4±0.18ms     3.5 GB/sec      1.00     12.4±0.10ms     3.5 GB/sec
primitive_sparse_99pct_null/cdc                    1.02     30.1±0.45ms  1491.2 MB/sec      1.00     29.6±0.27ms  1515.0 MB/sec
primitive_sparse_99pct_null/default                1.01     10.9±0.14ms     4.0 GB/sec      1.00     10.9±0.07ms     4.0 GB/sec
primitive_sparse_99pct_null/parquet_2              1.01     10.9±0.07ms     4.0 GB/sec      1.00     10.9±0.06ms     4.0 GB/sec
primitive_sparse_99pct_null/zstd                   1.01     14.4±0.10ms     3.1 GB/sec      1.00     14.3±0.08ms     3.1 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     12.9±0.09ms     3.4 GB/sec      1.00     12.8±0.07ms     3.4 GB/sec
short_string_non_null/bloom_filter                 1.05     28.6±0.06ms   419.3 MB/sec      1.00     27.3±0.05ms   439.8 MB/sec
short_string_non_null/cdc                          1.00     19.9±0.06ms   604.3 MB/sec      1.00     19.8±0.05ms   607.2 MB/sec
short_string_non_null/default                      1.00     15.8±0.05ms   761.6 MB/sec      1.00     15.7±0.08ms   764.1 MB/sec
short_string_non_null/parquet_2                    1.00     25.8±0.06ms   464.5 MB/sec      1.01     26.0±0.11ms   461.7 MB/sec
short_string_non_null/zstd                         1.01     36.1±0.11ms   332.6 MB/sec      1.00     35.9±0.09ms   334.5 MB/sec
short_string_non_null/zstd_parquet_2               1.00     28.9±0.07ms   415.6 MB/sec      1.00     28.9±0.12ms   415.0 MB/sec
string/bloom_filter                                1.09   215.9±21.90ms     2.4 GB/sec      1.00    198.3±4.51ms     2.6 GB/sec
string/cdc                                         1.00    207.4±6.67ms     2.5 GB/sec      1.00    207.0±8.81ms     2.5 GB/sec
string/default                                     1.12   123.8±16.96ms     4.1 GB/sec      1.00   110.7±14.69ms     4.6 GB/sec
string/parquet_2                                   1.01    114.9±0.26ms     4.5 GB/sec      1.00    113.9±0.44ms     4.5 GB/sec
string/zstd                                        1.01   463.4±11.10ms  1131.3 MB/sec      1.00   458.9±14.48ms  1142.5 MB/sec
string/zstd_parquet_2                              1.00    409.4±0.71ms  1280.6 MB/sec      1.07    436.5±1.10ms  1201.1 MB/sec
string_and_binary_view/bloom_filter                1.15     73.1±0.75ms   441.4 MB/sec      1.00     63.7±0.20ms   506.5 MB/sec
string_and_binary_view/cdc                         1.07     62.7±0.50ms   514.3 MB/sec      1.00     58.7±0.23ms   548.9 MB/sec
string_and_binary_view/default                     1.06     51.3±0.47ms   628.8 MB/sec      1.00     48.2±0.27ms   669.6 MB/sec
string_and_binary_view/parquet_2                   1.06     62.7±0.43ms   514.2 MB/sec      1.00     59.4±0.16ms   543.0 MB/sec
string_and_binary_view/zstd                        1.04     88.2±1.25ms   365.7 MB/sec      1.00     85.1±0.23ms   378.8 MB/sec
string_and_binary_view/zstd_parquet_2              1.05     77.2±0.69ms   417.7 MB/sec      1.00     73.4±0.24ms   439.6 MB/sec
string_dictionary/bloom_filter                     1.14     97.3±5.68ms     2.7 GB/sec      1.00     85.1±0.69ms     3.0 GB/sec
string_dictionary/cdc                              1.00     69.7±4.34ms     3.7 GB/sec      1.22     84.9±4.25ms     3.0 GB/sec
string_dictionary/default                          1.16     50.3±0.65ms     5.1 GB/sec      1.00     43.5±0.27ms     5.9 GB/sec
string_dictionary/parquet_2                        1.39     67.1±0.46ms     3.8 GB/sec      1.00     48.3±0.17ms     5.3 GB/sec
string_dictionary/zstd                             1.12    233.3±2.27ms  1132.1 MB/sec      1.00    208.0±0.95ms  1270.0 MB/sec
string_dictionary/zstd_parquet_2                   1.10    210.9±0.54ms  1252.6 MB/sec      1.00    191.2±0.16ms  1381.3 MB/sec
string_non_null/bloom_filter                       1.15   286.0±20.79ms  1832.5 MB/sec      1.00   249.2±29.93ms     2.1 GB/sec
string_non_null/cdc                                1.00    239.6±0.60ms     2.1 GB/sec      1.06    253.9±7.83ms     2.0 GB/sec
string_non_null/default                            1.05   138.0±11.14ms     3.7 GB/sec      1.00   131.3±26.98ms     3.9 GB/sec
string_non_null/parquet_2                          1.12   125.4±11.64ms     4.1 GB/sec      1.00    112.0±8.00ms     4.6 GB/sec
string_non_null/zstd                               1.06   569.1±10.92ms   920.7 MB/sec      1.00    535.1±2.92ms   979.2 MB/sec
string_non_null/zstd_parquet_2                     1.01    493.7±8.02ms  1061.4 MB/sec      1.00    487.3±1.18ms  1075.3 MB/sec
string_ree/bloom_filter                            1.01    153.9±1.58ms   106.6 MB/sec      1.00    151.8±1.43ms   108.1 MB/sec
string_ree/cdc                                     1.30    226.9±0.76ms    72.3 MB/sec      1.00    174.7±1.33ms    93.9 MB/sec
string_ree/default                                 1.01    125.3±2.12ms   131.0 MB/sec      1.00    124.6±1.62ms   131.7 MB/sec
string_ree/parquet_2                               1.02    180.5±1.97ms    90.9 MB/sec      1.00    176.8±0.72ms    92.8 MB/sec
string_ree/zstd                                    1.03    188.6±1.49ms    87.0 MB/sec      1.00    183.3±1.84ms    89.5 MB/sec
string_ree/zstd_parquet_2                          1.04    198.0±0.68ms    82.9 MB/sec      1.00    191.1±0.48ms    85.9 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     26.2±0.09ms    53.7 MB/sec      1.00     26.2±0.11ms    53.7 MB/sec
string_ree_95pct_null/cdc                          1.00     32.3±0.08ms    43.5 MB/sec      1.00     32.3±0.07ms    43.6 MB/sec
string_ree_95pct_null/default                      1.00     24.7±0.07ms    57.0 MB/sec      1.00     24.7±0.07ms    56.9 MB/sec
string_ree_95pct_null/parquet_2                    1.00     24.7±0.10ms    56.9 MB/sec      1.00     24.7±0.07ms    56.9 MB/sec
string_ree_95pct_null/zstd                         1.00     25.6±0.08ms    55.0 MB/sec      1.00     25.5±0.08ms    55.1 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.00     25.5±0.11ms    55.1 MB/sec      1.00     25.5±0.08ms    55.3 MB/sec
struct_all_null/bloom_filter                       1.00    372.8±1.37µs    42.2 GB/sec      1.00    371.8±1.48µs    42.4 GB/sec
struct_all_null/cdc                                1.00      7.8±0.07ms     2.0 GB/sec      1.00      7.8±0.08ms     2.0 GB/sec
struct_all_null/default                            1.01    117.2±0.69µs   134.4 GB/sec      1.00    116.4±0.65µs   135.3 GB/sec
struct_all_null/parquet_2                          1.00    120.2±0.61µs   131.0 GB/sec      1.00    120.3±0.63µs   130.9 GB/sec
struct_all_null/zstd                               1.00    179.5±0.74µs    87.7 GB/sec      1.00    180.3±0.93µs    87.4 GB/sec
struct_all_null/zstd_parquet_2                     1.00    161.4±0.60µs    97.5 GB/sec      1.00    162.0±0.72µs    97.2 GB/sec
struct_non_null/bloom_filter                       1.03     48.2±0.14ms   332.0 MB/sec      1.00     46.9±0.47ms   341.1 MB/sec
struct_non_null/cdc                                1.00     46.4±0.14ms   344.5 MB/sec      1.00     46.4±0.15ms   344.5 MB/sec
struct_non_null/default                            1.00     33.1±0.10ms   484.0 MB/sec      1.00     33.1±0.46ms   483.0 MB/sec
struct_non_null/parquet_2                          1.00     41.8±0.09ms   382.3 MB/sec      1.00     42.0±0.58ms   380.5 MB/sec
struct_non_null/zstd                               1.00     41.6±0.09ms   384.3 MB/sec      1.01     42.0±0.47ms   381.2 MB/sec
struct_non_null/zstd_parquet_2                     1.00     55.6±0.12ms   287.7 MB/sec      1.00     55.9±0.57ms   286.3 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      6.9±0.03ms     2.3 GB/sec      1.01      6.9±0.03ms     2.3 GB/sec
struct_sparse_99pct_null/cdc                       1.00     13.7±0.07ms  1177.6 MB/sec      1.01     13.9±0.26ms  1160.4 MB/sec
struct_sparse_99pct_null/default                   1.00      6.3±0.02ms     2.5 GB/sec      1.01      6.4±0.04ms     2.5 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.3±0.01ms     2.5 GB/sec      1.00      6.4±0.04ms     2.5 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.7±0.02ms     2.0 GB/sec      1.01      7.8±0.04ms     2.0 GB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      7.1±0.03ms     2.2 GB/sec      1.00      7.1±0.03ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 2980.6s
Peak memory 2.9 GiB
Avg memory 2.6 GiB
CPU user 2888.6s
CPU sys 87.9s
Peak spill 0 B

branch

Metric Value
Wall time 3025.7s
Peak memory 2.9 GiB
Avg memory 2.6 GiB
CPU user 2888.9s
CPU sys 129.7s
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)

Comparing fix-delta-byte-array-page-split-10489 (c284081) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.00     12.9±0.08ms    19.4 MB/sec      1.00     12.9±0.07ms    19.4 MB/sec
bool/cdc                                           1.00     15.7±0.17ms    15.9 MB/sec      1.00     15.7±0.13ms    15.9 MB/sec
bool/default                                       1.00     10.8±0.04ms    23.2 MB/sec      1.00     10.8±0.04ms    23.3 MB/sec
bool/parquet_2                                     1.00     14.6±0.07ms    17.1 MB/sec      1.00     14.6±0.04ms    17.1 MB/sec
bool/zstd                                          1.00     11.3±0.04ms    22.2 MB/sec      1.00     11.3±0.04ms    22.2 MB/sec
bool/zstd_parquet_2                                1.00     15.0±0.09ms    16.7 MB/sec      1.00     15.0±0.08ms    16.6 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.05ms    17.8 MB/sec      1.00      7.0±0.05ms    17.8 MB/sec
bool_non_null/cdc                                  1.01      6.8±0.12ms    18.3 MB/sec      1.00      6.8±0.04ms    18.4 MB/sec
bool_non_null/default                              1.00      4.2±0.02ms    29.7 MB/sec      1.00      4.2±0.02ms    29.6 MB/sec
bool_non_null/parquet_2                            1.00      9.0±0.04ms    13.9 MB/sec      1.00      9.0±0.04ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.6±0.02ms    27.3 MB/sec      1.00      4.6±0.03ms    27.3 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.04ms    13.3 MB/sec      1.01      9.5±0.04ms    13.2 MB/sec
bool_ree/bloom_filter                              1.00     30.4±0.15ms     7.0 MB/sec      1.00     30.3±0.10ms     7.0 MB/sec
bool_ree/cdc                                       1.00     31.6±0.09ms     6.7 MB/sec      1.00     31.5±0.07ms     6.8 MB/sec
bool_ree/default                                   1.00     27.6±0.14ms     7.7 MB/sec      1.00     27.6±0.14ms     7.7 MB/sec
bool_ree/parquet_2                                 1.00     29.1±0.07ms     7.3 MB/sec      1.00     29.2±0.12ms     7.3 MB/sec
bool_ree/zstd                                      1.00     28.3±0.14ms     7.5 MB/sec      1.00     28.3±0.10ms     7.5 MB/sec
bool_ree/zstd_parquet_2                            1.00     29.5±0.11ms     7.2 MB/sec      1.00     29.5±0.08ms     7.2 MB/sec
decimal/bloom_filter                               1.04    128.5±3.24ms   467.0 MB/sec      1.00    123.7±2.98ms   485.2 MB/sec
decimal/cdc                                        1.01    107.4±0.90ms   558.4 MB/sec      1.00    106.6±0.65ms   562.7 MB/sec
decimal/default                                    1.01     85.6±2.14ms   700.6 MB/sec      1.00     85.1±2.07ms   704.8 MB/sec
decimal/parquet_2                                  1.01    185.1±3.01ms   324.1 MB/sec      1.00    183.7±2.64ms   326.6 MB/sec
decimal/zstd                                       1.02     96.9±2.00ms   619.4 MB/sec      1.00     94.9±1.76ms   632.1 MB/sec
decimal/zstd_parquet_2                             1.01    204.1±3.50ms   293.9 MB/sec      1.00    202.0±2.44ms   297.0 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     58.0±0.64ms    17.4 MB/sec      1.02     59.4±1.54ms    17.0 MB/sec
fixed_size_binary_ree/cdc                          1.00     62.0±0.29ms    16.2 MB/sec      1.00     61.7±0.27ms    16.3 MB/sec
fixed_size_binary_ree/default                      1.00     52.1±0.64ms    19.3 MB/sec      1.00     51.8±0.56ms    19.4 MB/sec
fixed_size_binary_ree/parquet_2                    1.00     65.9±0.21ms    15.3 MB/sec      1.00     65.7±0.25ms    15.3 MB/sec
fixed_size_binary_ree/zstd                         1.00     57.7±0.61ms    17.5 MB/sec      1.01     58.1±1.49ms    17.3 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.00     67.7±1.52ms    14.9 MB/sec      1.00     67.5±1.72ms    14.9 MB/sec
float_with_nans/bloom_filter                       1.01     81.6±1.49ms   171.5 MB/sec      1.00     80.8±1.37ms   173.4 MB/sec
float_with_nans/cdc                                1.01     71.0±1.21ms   197.3 MB/sec      1.00     70.3±0.66ms   199.3 MB/sec
float_with_nans/default                            1.00     64.1±1.48ms   218.5 MB/sec      1.00     64.1±1.39ms   218.4 MB/sec
float_with_nans/parquet_2                          1.00     81.5±1.47ms   171.9 MB/sec      1.00     81.1±1.26ms   172.6 MB/sec
float_with_nans/zstd                               1.00    101.1±0.29ms   138.5 MB/sec      1.00    100.9±0.45ms   138.7 MB/sec
float_with_nans/zstd_parquet_2                     1.01    118.7±1.79ms   118.0 MB/sec      1.00    117.6±0.65ms   119.0 MB/sec
fsb/bloom_filter                                   1.02      8.2±0.32ms  1960.1 MB/sec      1.00      8.1±0.08ms  2002.9 MB/sec
fsb/cdc                                            1.02     10.6±0.23ms  1526.6 MB/sec      1.00     10.4±0.03ms  1551.5 MB/sec
fsb/default                                        1.00      7.0±0.07ms     2.2 GB/sec      1.00      7.1±0.22ms     2.2 GB/sec
fsb/parquet_2                                      1.00     13.3±0.08ms  1212.4 MB/sec      1.05     14.0±0.97ms  1155.0 MB/sec
fsb/zstd                                           1.02      9.7±0.26ms  1667.2 MB/sec      1.00      9.5±0.21ms  1702.8 MB/sec
fsb/zstd_parquet_2                                 1.00     14.2±0.18ms  1133.8 MB/sec      1.02     14.4±0.79ms  1116.8 MB/sec
int32_ree/bloom_filter                             1.00     42.1±1.20ms     9.7 MB/sec      1.01     42.4±1.33ms     9.6 MB/sec
int32_ree/cdc                                      1.00     41.3±0.18ms     9.8 MB/sec      1.00     41.1±0.11ms     9.9 MB/sec
int32_ree/default                                  1.00     37.3±0.13ms    10.9 MB/sec      1.00     37.4±0.13ms    10.9 MB/sec
int32_ree/parquet_2                                1.00     37.6±0.38ms    10.8 MB/sec      1.00     37.5±0.24ms    10.8 MB/sec
int32_ree/zstd                                     1.00     38.0±0.18ms    10.7 MB/sec      1.00     37.9±0.17ms    10.7 MB/sec
int32_ree/zstd_parquet_2                           1.00     37.9±0.22ms    10.7 MB/sec      1.00     38.0±0.25ms    10.7 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     22.0±0.26ms    18.5 MB/sec      1.01     22.3±0.12ms    18.2 MB/sec
int32_ree_95pct_null/cdc                           1.00     24.0±0.24ms    17.0 MB/sec      1.00     24.0±0.15ms    16.9 MB/sec
int32_ree_95pct_null/default                       1.00     21.6±0.16ms    18.8 MB/sec      1.00     21.7±0.11ms    18.7 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.5±0.08ms    18.9 MB/sec      1.01     21.6±0.05ms    18.8 MB/sec
int32_ree_95pct_null/zstd                          1.00     21.8±0.15ms    18.6 MB/sec      1.00     21.9±0.07ms    18.6 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.00     21.7±0.05ms    18.8 MB/sec      1.01     21.8±0.03ms    18.7 MB/sec
large_string_distinct/delta_byte_array             1.00     65.4±0.86ms     3.8 GB/sec      1.15     75.3±4.20ms     3.3 GB/sec
large_string_distinct/plain                        1.00     60.5±1.93ms     4.1 GB/sec      1.04     63.0±4.28ms     4.0 GB/sec
large_string_non_null/bloom_filter                 1.00     75.4±2.74ms     3.3 GB/sec      1.02     76.8±2.18ms     3.3 GB/sec
large_string_non_null/cdc                          1.01    246.3±2.65ms  1039.3 MB/sec      1.00    243.0±2.50ms  1053.6 MB/sec
large_string_non_null/default                      1.00     55.6±0.19ms     4.5 GB/sec      1.03     57.4±0.60ms     4.4 GB/sec
large_string_non_null/parquet_2                    1.00     57.3±2.18ms     4.4 GB/sec      1.03     59.2±2.66ms     4.2 GB/sec
large_string_non_null/zstd                         1.00     55.6±0.12ms     4.5 GB/sec      1.03     57.5±0.57ms     4.3 GB/sec
large_string_non_null/zstd_parquet_2               1.00     57.8±2.30ms     4.3 GB/sec      1.00     58.0±0.92ms     4.3 GB/sec
large_string_shared_prefix/delta_byte_array        1.27    143.7±2.78ms  1782.0 MB/sec      1.00   113.1±12.04ms     2.2 GB/sec
large_string_shared_prefix/plain                   1.00     92.4±1.69ms     2.7 GB/sec      1.02     94.3±6.38ms     2.7 GB/sec
list_nested/bloom_filter                           1.00    147.1±1.66ms   196.1 MB/sec      1.01    148.0±1.93ms   195.0 MB/sec
list_nested/cdc                                    1.00    164.9±1.23ms   175.0 MB/sec      1.00    164.6±1.37ms   175.3 MB/sec
list_nested/default                                1.00    133.3±0.72ms   216.5 MB/sec      1.00    133.5±1.11ms   216.1 MB/sec
list_nested/parquet_2                              1.00    147.0±1.04ms   196.3 MB/sec      1.00    146.9±1.22ms   196.4 MB/sec
list_nested/zstd                                   1.00    142.8±1.19ms   202.0 MB/sec      1.00    143.2±1.51ms   201.5 MB/sec
list_nested/zstd_parquet_2                         1.01    160.1±1.38ms   180.3 MB/sec      1.00    159.3±1.09ms   181.2 MB/sec
list_primitive/bloom_filter                        1.10   314.1±22.15ms  1736.2 MB/sec      1.00   284.8±18.38ms  1915.1 MB/sec
list_primitive/cdc                                 1.04   326.8±13.44ms  1668.9 MB/sec      1.00    313.2±4.43ms  1741.5 MB/sec
list_primitive/default                             1.13    229.4±8.76ms     2.3 GB/sec      1.00    203.3±4.50ms     2.6 GB/sec
list_primitive/parquet_2                           1.05    239.3±2.94ms     2.2 GB/sec      1.00    228.3±2.67ms     2.3 GB/sec
list_primitive/zstd                                1.08   495.8±14.95ms  1100.0 MB/sec      1.00    460.0±9.67ms  1185.7 MB/sec
list_primitive/zstd_parquet_2                      1.05    472.4±9.13ms  1154.5 MB/sec      1.00    450.5±5.25ms  1210.7 MB/sec
list_primitive_non_null/bloom_filter               1.15   436.1±41.93ms  1247.9 MB/sec      1.00   379.1±30.91ms  1435.5 MB/sec
list_primitive_non_null/cdc                        1.02   401.5±14.64ms  1355.5 MB/sec      1.00   393.8±10.73ms  1382.0 MB/sec
list_primitive_non_null/default                    1.24   300.8±17.63ms  1809.3 MB/sec      1.00    242.7±7.82ms     2.2 GB/sec
list_primitive_non_null/parquet_2                  1.17    307.4±5.21ms  1770.6 MB/sec      1.00   263.4±14.61ms     2.0 GB/sec
list_primitive_non_null/zstd                       1.11   739.1±16.67ms   736.3 MB/sec      1.00   664.5±12.47ms   819.0 MB/sec
list_primitive_non_null/zstd_parquet_2             1.11   720.4±11.01ms   755.5 MB/sec      1.00   649.3±10.21ms   838.2 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.03     13.0±0.44ms     2.8 GB/sec      1.00     12.7±0.17ms     2.9 GB/sec
list_primitive_sparse_99pct_null/cdc               1.00     24.0±0.10ms  1558.2 MB/sec      1.02     24.4±0.53ms  1530.6 MB/sec
list_primitive_sparse_99pct_null/default           1.01     12.6±0.35ms     2.9 GB/sec      1.00     12.5±0.32ms     2.9 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     12.3±0.11ms     3.0 GB/sec      1.03     12.7±0.36ms     2.9 GB/sec
list_primitive_sparse_99pct_null/zstd              1.01     14.6±0.40ms     2.5 GB/sec      1.00     14.4±0.40ms     2.5 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.03     12.7±0.39ms     2.9 GB/sec      1.00     12.3±0.04ms     3.0 GB/sec
list_struct_with_list/bloom_filter                 1.00    286.8±4.59ms   159.0 MB/sec      1.00    286.5±4.27ms   159.1 MB/sec
list_struct_with_list/cdc                          1.00    323.8±2.44ms   140.8 MB/sec      1.00    324.4±2.84ms   140.6 MB/sec
list_struct_with_list/default                      1.00    259.5±2.39ms   175.7 MB/sec      1.00    259.0±2.49ms   176.1 MB/sec
list_struct_with_list/parquet_2                    1.00    276.0±2.12ms   165.2 MB/sec      1.00    276.4±2.32ms   165.0 MB/sec
list_struct_with_list/zstd                         1.00    281.0±2.91ms   162.3 MB/sec      1.00    281.1±2.82ms   162.2 MB/sec
list_struct_with_list/zstd_parquet_2               1.00    299.7±2.48ms   152.2 MB/sec      1.00    299.7±2.18ms   152.2 MB/sec
primitive/bloom_filter                             1.02    153.1±4.51ms   293.1 MB/sec      1.00    150.6±5.48ms   298.0 MB/sec
primitive/cdc                                      1.00    160.7±2.74ms   279.2 MB/sec      1.00    161.2±4.50ms   278.4 MB/sec
primitive/default                                  1.01    120.8±2.32ms   371.6 MB/sec      1.00    119.6±2.41ms   375.1 MB/sec
primitive/parquet_2                                1.00    135.5±2.57ms   331.1 MB/sec      1.00    134.9±2.83ms   332.7 MB/sec
primitive/zstd                                     1.01    150.3±2.62ms   298.6 MB/sec      1.00    149.0±2.67ms   301.2 MB/sec
primitive/zstd_parquet_2                           1.01    167.8±2.21ms   267.5 MB/sec      1.00    166.3±2.04ms   269.8 MB/sec
primitive_all_null/bloom_filter                    1.02   895.1±34.60µs    49.0 GB/sec      1.00    876.7±3.11µs    50.0 GB/sec
primitive_all_null/cdc                             1.00     19.0±0.27ms     2.3 GB/sec      1.00     19.0±0.36ms     2.3 GB/sec
primitive_all_null/default                         1.01    273.2±1.75µs   160.4 GB/sec      1.00    271.3±1.44µs   161.5 GB/sec
primitive_all_null/parquet_2                       1.01    280.8±1.40µs   156.1 GB/sec      1.00    279.1±1.76µs   157.0 GB/sec
primitive_all_null/zstd                            1.01    420.5±1.71µs   104.2 GB/sec      1.00    417.9±1.47µs   104.9 GB/sec
primitive_all_null/zstd_parquet_2                  1.01    378.2±1.66µs   115.9 GB/sec      1.00    375.6±1.35µs   116.7 GB/sec
primitive_non_null/bloom_filter                    1.05    113.4±5.52ms   388.0 MB/sec      1.00    108.2±4.10ms   406.6 MB/sec
primitive_non_null/cdc                             1.01     93.5±2.63ms   470.4 MB/sec      1.00     92.4±1.43ms   476.3 MB/sec
primitive_non_null/default                         1.01     69.6±0.90ms   632.4 MB/sec      1.00     68.8±0.56ms   639.4 MB/sec
primitive_non_null/parquet_2                       1.01     91.3±0.55ms   482.2 MB/sec      1.00     90.7±0.25ms   485.0 MB/sec
primitive_non_null/zstd                            1.00     99.8±0.35ms   440.7 MB/sec      1.02    102.0±2.78ms   431.5 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    124.0±0.81ms   354.7 MB/sec      1.00    124.2±0.29ms   354.4 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.05     12.8±0.80ms     3.4 GB/sec      1.00     12.2±0.25ms     3.6 GB/sec
primitive_sparse_99pct_null/cdc                    1.00     29.5±0.32ms  1520.6 MB/sec      1.03     30.3±0.99ms  1481.4 MB/sec
primitive_sparse_99pct_null/default                1.02     11.1±0.43ms     3.9 GB/sec      1.00     10.9±0.37ms     4.0 GB/sec
primitive_sparse_99pct_null/parquet_2              1.01     10.8±0.13ms     4.0 GB/sec      1.00     10.7±0.03ms     4.1 GB/sec
primitive_sparse_99pct_null/zstd                   1.00     14.2±0.08ms     3.1 GB/sec      1.02     14.5±0.54ms     3.0 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.04     13.1±0.49ms     3.4 GB/sec      1.00     12.6±0.04ms     3.5 GB/sec
short_string_non_null/bloom_filter                 1.06     29.6±1.36ms   405.3 MB/sec      1.00     27.9±1.08ms   430.4 MB/sec
short_string_non_null/cdc                          1.02     20.0±0.32ms   600.6 MB/sec      1.00     19.7±0.30ms   609.6 MB/sec
short_string_non_null/default                      1.01     15.6±0.10ms   768.5 MB/sec      1.00     15.4±0.04ms   778.8 MB/sec
short_string_non_null/parquet_2                    1.00     25.7±0.05ms   467.4 MB/sec      1.00     25.8±0.11ms   465.7 MB/sec
short_string_non_null/zstd                         1.01     35.9±0.09ms   334.0 MB/sec      1.00     35.6±0.11ms   336.6 MB/sec
short_string_non_null/zstd_parquet_2               1.00     28.9±0.29ms   414.6 MB/sec      1.00     28.9±0.27ms   415.2 MB/sec
string/bloom_filter                                1.03   216.5±28.19ms     2.4 GB/sec      1.00   209.8±24.41ms     2.4 GB/sec
string/cdc                                         1.01    209.2±7.63ms     2.4 GB/sec      1.00   207.3±10.81ms     2.5 GB/sec
string/default                                     1.09   121.3±15.74ms     4.2 GB/sec      1.00   111.2±13.74ms     4.6 GB/sec
string/parquet_2                                   1.00    115.3±2.32ms     4.4 GB/sec      1.00    115.0±2.72ms     4.5 GB/sec
string/zstd                                        1.00   464.4±17.79ms  1128.9 MB/sec      1.01   468.5±21.89ms  1119.1 MB/sec
string/zstd_parquet_2                              1.00    410.6±5.91ms  1276.7 MB/sec      1.09    447.5±6.80ms  1171.5 MB/sec
string_and_binary_view/bloom_filter                1.04     65.8±0.24ms   489.9 MB/sec      1.00     63.2±0.77ms   510.4 MB/sec
string_and_binary_view/cdc                         1.02     61.2±2.83ms   526.8 MB/sec      1.00     59.9±2.41ms   538.2 MB/sec
string_and_binary_view/default                     1.02     49.6±2.11ms   650.5 MB/sec      1.00     48.8±2.08ms   661.2 MB/sec
string_and_binary_view/parquet_2                   1.03     61.7±2.42ms   522.9 MB/sec      1.00     59.8±1.51ms   539.3 MB/sec
string_and_binary_view/zstd                        1.01     86.4±1.87ms   373.4 MB/sec      1.00     85.4±1.52ms   377.8 MB/sec
string_and_binary_view/zstd_parquet_2              1.01     75.5±2.70ms   427.0 MB/sec      1.00     75.1±2.55ms   429.3 MB/sec
string_dictionary/bloom_filter                     1.09    92.2±11.41ms     2.8 GB/sec      1.00     84.3±1.81ms     3.1 GB/sec
string_dictionary/cdc                              1.71     79.3±4.93ms     3.3 GB/sec      1.00     46.4±0.38ms     5.6 GB/sec
string_dictionary/default                          1.03     44.3±1.25ms     5.8 GB/sec      1.00     42.8±0.42ms     6.0 GB/sec
string_dictionary/parquet_2                        1.29     63.2±0.34ms     4.1 GB/sec      1.00     48.9±1.09ms     5.3 GB/sec
string_dictionary/zstd                             1.05    222.4±7.39ms  1187.5 MB/sec      1.00    211.0±6.51ms  1251.6 MB/sec
string_dictionary/zstd_parquet_2                   1.07    207.0±3.44ms  1276.0 MB/sec      1.00    193.1±3.42ms  1367.8 MB/sec
string_non_null/bloom_filter                       1.08   251.5±26.23ms     2.0 GB/sec      1.00   232.6±27.20ms     2.2 GB/sec
string_non_null/cdc                                1.02    260.0±8.62ms  2015.6 MB/sec      1.00   255.8±10.01ms     2.0 GB/sec
string_non_null/default                            1.02   129.8±18.58ms     3.9 GB/sec      1.00   127.6±24.17ms     4.0 GB/sec
string_non_null/parquet_2                          1.00   111.9±10.00ms     4.6 GB/sec      1.05    117.0±6.73ms     4.4 GB/sec
string_non_null/zstd                               1.00   539.7±14.27ms   970.8 MB/sec      1.03   557.7±15.66ms   939.6 MB/sec
string_non_null/zstd_parquet_2                     1.00    490.7±6.57ms  1067.9 MB/sec      1.01    493.9±9.93ms  1060.9 MB/sec
string_ree/bloom_filter                            1.20    157.9±4.81ms   103.9 MB/sec      1.00    131.2±5.55ms   125.1 MB/sec
string_ree/cdc                                     1.18    226.4±3.63ms    72.5 MB/sec      1.00    191.8±5.26ms    85.5 MB/sec
string_ree/default                                 1.44    131.0±4.69ms   125.3 MB/sec      1.00     90.7±4.29ms   180.9 MB/sec
string_ree/parquet_2                               1.37    181.1±2.06ms    90.6 MB/sec      1.00    132.0±1.19ms   124.3 MB/sec
string_ree/zstd                                    1.39    191.7±8.76ms    85.6 MB/sec      1.00    137.9±5.21ms   119.0 MB/sec
string_ree/zstd_parquet_2                          1.33    195.6±2.74ms    83.9 MB/sec      1.00    147.0±1.07ms   111.6 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     26.5±0.63ms    53.1 MB/sec      1.00     26.6±0.58ms    52.9 MB/sec
string_ree_95pct_null/cdc                          1.00     32.1±0.17ms    43.8 MB/sec      1.02     32.7±0.08ms    43.1 MB/sec
string_ree_95pct_null/default                      1.01     25.0±0.46ms    56.2 MB/sec      1.00     24.7±0.21ms    57.0 MB/sec
string_ree_95pct_null/parquet_2                    1.00     24.6±0.04ms    57.3 MB/sec      1.00     24.7±0.12ms    57.0 MB/sec
string_ree_95pct_null/zstd                         1.00     25.8±0.49ms    54.4 MB/sec      1.00     25.9±0.41ms    54.3 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.00     25.6±0.50ms    54.9 MB/sec      1.01     25.9±0.29ms    54.3 MB/sec
struct_all_null/bloom_filter                       1.00    368.5±1.76µs    42.7 GB/sec      1.00    367.8±1.99µs    42.8 GB/sec
struct_all_null/cdc                                1.00      7.8±0.10ms     2.0 GB/sec      1.00      7.7±0.08ms     2.0 GB/sec
struct_all_null/default                            1.00    117.2±0.73µs   134.4 GB/sec      1.00    116.9±0.96µs   134.7 GB/sec
struct_all_null/parquet_2                          1.00    120.0±0.57µs   131.2 GB/sec      1.00    120.1±0.92µs   131.1 GB/sec
struct_all_null/zstd                               1.01    179.9±0.74µs    87.5 GB/sec      1.00    178.0±0.83µs    88.5 GB/sec
struct_all_null/zstd_parquet_2                     1.00    160.3±0.66µs    98.2 GB/sec      1.00    160.9±0.86µs    97.9 GB/sec
struct_non_null/bloom_filter                       1.00     47.5±1.05ms   337.1 MB/sec      1.00     47.6±2.55ms   336.1 MB/sec
struct_non_null/cdc                                1.02     47.0±0.91ms   340.7 MB/sec      1.00     46.0±0.40ms   347.7 MB/sec
struct_non_null/default                            1.00     33.4±0.96ms   478.4 MB/sec      1.00     33.5±1.03ms   476.9 MB/sec
struct_non_null/parquet_2                          1.01     42.4±1.10ms   377.1 MB/sec      1.00     42.1±1.03ms   380.5 MB/sec
struct_non_null/zstd                               1.02     42.0±1.05ms   380.6 MB/sec      1.00     41.4±0.43ms   386.7 MB/sec
struct_non_null/zstd_parquet_2                     1.01     55.7±0.63ms   287.3 MB/sec      1.00     55.1±0.27ms   290.4 MB/sec
struct_sparse_99pct_null/bloom_filter              1.06      7.3±0.43ms     2.2 GB/sec      1.00      6.8±0.20ms     2.3 GB/sec
struct_sparse_99pct_null/cdc                       1.01     13.8±0.29ms  1167.3 MB/sec      1.00     13.6±0.09ms  1183.5 MB/sec
struct_sparse_99pct_null/default                   1.00      6.3±0.03ms     2.5 GB/sec      1.03      6.5±0.25ms     2.4 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.3±0.02ms     2.5 GB/sec      1.00      6.3±0.01ms     2.5 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.7±0.10ms     2.0 GB/sec      1.01      7.8±0.20ms     2.0 GB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.02      7.1±0.19ms     2.2 GB/sec      1.00      7.0±0.01ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 2970.6s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2901.3s
CPU sys 63.0s
Peak spill 0 B

branch

Metric Value
Wall time 3050.7s
Peak memory 2.9 GiB
Avg memory 2.6 GiB
CPU user 2903.8s
CPU sys 140.8s
Peak spill 0 B

File an issue against this benchmark runner

Keeping large values on the same page means the encoder finally has a
previous value to dedup against — and the prefix scan that had been
returning 0 on every value now runs over the whole value. It was written
a byte at a time, so it became the dominant cost: profiling
`large_string_shared_prefix/delta_byte_array` (128 x 2 MiB values sharing
a 2 MiB prefix) puts 76% of total runtime in that one loop, which is what
made the benchmark ~38% slower than before the page-limit fix.

Compare a block at a time instead. On the same benchmark:

  base (before the page fix)  66.7 ms
  page fix only               90.3 ms   +35.5%
  page fix + this             26.5 ms   -60.3%

`large_string_distinct` (no shared prefix) is unchanged at -40.6%, and
the PARQUET_2_0 string paths that use DELTA_BYTE_ARRAY are flat.

The same scan exists in the non-Arrow `DeltaByteArrayEncoder`, so both
now share one helper.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

2 similar comments
@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

@adriangb

adriangb commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

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-c5172829324-1363-462c4 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5172829832-1365-cm2jr 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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-c5172829594-1364-spfkf 6.12.85+ #1 SMP Wed Jun 17 20:31:55 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 fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_writer
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)

Comparing fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.04     13.4±0.20ms    18.6 MB/sec      1.00     12.9±0.05ms    19.4 MB/sec
bool/cdc                                           1.02     16.1±0.22ms    15.5 MB/sec      1.00     15.8±0.10ms    15.8 MB/sec
bool/default                                       1.04     11.2±0.06ms    22.3 MB/sec      1.00     10.8±0.05ms    23.2 MB/sec
bool/parquet_2                                     1.02     15.0±0.13ms    16.7 MB/sec      1.00     14.7±0.11ms    17.0 MB/sec
bool/zstd                                          1.04     11.9±0.20ms    21.1 MB/sec      1.00     11.4±0.09ms    22.0 MB/sec
bool/zstd_parquet_2                                1.02     15.4±0.08ms    16.3 MB/sec      1.00     15.0±0.07ms    16.6 MB/sec
bool_non_null/bloom_filter                         1.00      6.9±0.02ms    18.1 MB/sec      1.01      7.0±0.02ms    17.9 MB/sec
bool_non_null/cdc                                  1.00      6.7±0.02ms    18.7 MB/sec      1.01      6.8±0.03ms    18.5 MB/sec
bool_non_null/default                              1.00      4.2±0.02ms    30.1 MB/sec      1.02      4.2±0.02ms    29.7 MB/sec
bool_non_null/parquet_2                            1.00      8.9±0.03ms    14.1 MB/sec      1.01      9.0±0.04ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.5±0.02ms    27.8 MB/sec      1.01      4.6±0.02ms    27.4 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.3±0.03ms    13.5 MB/sec      1.01      9.4±0.05ms    13.3 MB/sec
bool_ree/bloom_filter                              1.01     30.7±0.13ms     6.9 MB/sec      1.00     30.3±0.06ms     7.0 MB/sec
bool_ree/cdc                                       1.01     31.9±0.13ms     6.7 MB/sec      1.00     31.7±0.09ms     6.7 MB/sec
bool_ree/default                                   1.02     28.0±0.11ms     7.6 MB/sec      1.00     27.6±0.07ms     7.7 MB/sec
bool_ree/parquet_2                                 1.01     29.6±0.14ms     7.2 MB/sec      1.00     29.2±0.07ms     7.3 MB/sec
bool_ree/zstd                                      1.01     28.6±0.14ms     7.4 MB/sec      1.00     28.2±0.06ms     7.5 MB/sec
bool_ree/zstd_parquet_2                            1.01     30.0±0.15ms     7.1 MB/sec      1.00     29.5±0.07ms     7.2 MB/sec
decimal/bloom_filter                               1.00    123.6±0.31ms   485.5 MB/sec      1.00    123.6±1.01ms   485.3 MB/sec
decimal/cdc                                        1.00    106.6±0.37ms   562.9 MB/sec      1.02    108.6±0.97ms   552.2 MB/sec
decimal/default                                    1.00     84.1±0.33ms   713.3 MB/sec      1.00     84.5±0.97ms   709.8 MB/sec
decimal/parquet_2                                  1.00    183.0±1.42ms   327.9 MB/sec      1.00    182.7±1.93ms   328.4 MB/sec
decimal/zstd                                       1.00     95.0±0.29ms   631.4 MB/sec      1.00     95.5±1.47ms   628.4 MB/sec
decimal/zstd_parquet_2                             1.00    201.9±2.07ms   297.2 MB/sec      1.01    204.8±2.43ms   293.0 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     59.3±0.30ms    17.0 MB/sec      1.00     59.1±1.27ms    17.0 MB/sec
fixed_size_binary_ree/cdc                          1.01     62.6±0.31ms    16.1 MB/sec      1.00     62.0±0.26ms    16.3 MB/sec
fixed_size_binary_ree/default                      1.01     52.4±0.30ms    19.2 MB/sec      1.00     51.8±0.20ms    19.5 MB/sec
fixed_size_binary_ree/parquet_2                    1.00     67.0±0.33ms    15.0 MB/sec      1.00     66.8±0.24ms    15.1 MB/sec
fixed_size_binary_ree/zstd                         1.01     58.0±0.26ms    17.4 MB/sec      1.00     57.7±0.93ms    17.5 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.01     67.9±0.32ms    14.8 MB/sec      1.00     67.5±0.95ms    14.9 MB/sec
float_with_nans/bloom_filter                       1.00     80.4±0.22ms   174.1 MB/sec      1.00     80.7±0.46ms   173.4 MB/sec
float_with_nans/cdc                                1.00     70.5±0.34ms   198.6 MB/sec      1.00     70.4±0.17ms   198.8 MB/sec
float_with_nans/default                            1.00     63.1±0.18ms   221.7 MB/sec      1.00     63.3±0.27ms   221.1 MB/sec
float_with_nans/parquet_2                          1.00     80.6±0.26ms   173.6 MB/sec      1.01     81.3±1.00ms   172.3 MB/sec
float_with_nans/zstd                               1.00    101.3±0.17ms   138.2 MB/sec      1.00    101.4±0.29ms   138.0 MB/sec
float_with_nans/zstd_parquet_2                     1.00    117.5±0.22ms   119.1 MB/sec      1.00    117.8±0.28ms   118.9 MB/sec
fsb/bloom_filter                                   1.00      8.4±0.08ms  1928.8 MB/sec      1.06      8.9±0.47ms  1818.3 MB/sec
fsb/cdc                                            1.00     10.6±0.04ms  1518.9 MB/sec      1.01     10.7±0.04ms  1506.1 MB/sec
fsb/default                                        1.00      7.2±0.06ms     2.2 GB/sec      1.01      7.3±0.05ms     2.2 GB/sec
fsb/parquet_2                                      1.00     13.4±0.07ms  1203.1 MB/sec      1.02     13.7±0.09ms  1175.1 MB/sec
fsb/zstd                                           1.00      9.6±0.03ms  1672.4 MB/sec      1.00      9.6±0.04ms  1673.2 MB/sec
fsb/zstd_parquet_2                                 1.00     14.3±0.07ms  1130.0 MB/sec      1.03     14.6±0.10ms  1102.0 MB/sec
int32_ree/bloom_filter                             1.01     43.1±0.14ms     9.4 MB/sec      1.00     42.6±0.14ms     9.6 MB/sec
int32_ree/cdc                                      1.01     41.7±0.13ms     9.8 MB/sec      1.00     41.4±0.17ms     9.8 MB/sec
int32_ree/default                                  1.02     38.1±0.14ms    10.7 MB/sec      1.00     37.5±0.08ms    10.8 MB/sec
int32_ree/parquet_2                                1.01     38.1±0.13ms    10.7 MB/sec      1.00     37.6±0.10ms    10.8 MB/sec
int32_ree/zstd                                     1.01     38.6±0.14ms    10.5 MB/sec      1.00     38.2±0.13ms    10.7 MB/sec
int32_ree/zstd_parquet_2                           1.01     38.5±0.13ms    10.6 MB/sec      1.00     38.0±0.07ms    10.7 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     22.2±0.03ms    18.3 MB/sec      1.00     22.1±0.03ms    18.4 MB/sec
int32_ree_95pct_null/cdc                           1.00     24.0±0.04ms    16.9 MB/sec      1.00     23.9±0.05ms    17.0 MB/sec
int32_ree_95pct_null/default                       1.01     21.7±0.02ms    18.7 MB/sec      1.00     21.6±0.02ms    18.8 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.7±0.03ms    18.7 MB/sec      1.00     21.6±0.02ms    18.8 MB/sec
int32_ree_95pct_null/zstd                          1.00     22.0±0.02ms    18.5 MB/sec      1.00     21.9±0.02ms    18.6 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.00     21.9±0.03ms    18.6 MB/sec      1.00     21.8±0.02ms    18.7 MB/sec
large_string_distinct/delta_byte_array             1.00     66.3±0.39ms     3.8 GB/sec      1.15     76.4±0.64ms     3.3 GB/sec
large_string_distinct/plain                        1.00     61.2±0.78ms     4.1 GB/sec      1.02     62.5±0.97ms     4.0 GB/sec
large_string_non_null/bloom_filter                 1.00     73.0±0.11ms     3.4 GB/sec      1.00     73.3±0.34ms     3.4 GB/sec
large_string_non_null/cdc                          1.01    244.2±1.09ms  1048.3 MB/sec      1.00    243.0±1.12ms  1053.6 MB/sec
large_string_non_null/default                      1.00     55.2±0.10ms     4.5 GB/sec      1.00     55.0±0.34ms     4.5 GB/sec
large_string_non_null/parquet_2                    1.01     55.2±0.09ms     4.5 GB/sec      1.00     54.8±0.30ms     4.6 GB/sec
large_string_non_null/zstd                         1.00     55.1±0.08ms     4.5 GB/sec      1.00     54.9±0.37ms     4.6 GB/sec
large_string_non_null/zstd_parquet_2               1.03     56.8±4.13ms     4.4 GB/sec      1.00     54.9±0.37ms     4.6 GB/sec
large_string_shared_prefix/delta_byte_array        1.00     56.7±0.35ms     4.4 GB/sec      1.98    112.3±0.76ms     2.2 GB/sec
large_string_shared_prefix/plain                   1.00     95.0±1.29ms     2.6 GB/sec      1.02     96.8±0.83ms     2.6 GB/sec
list_nested/bloom_filter                           1.00    150.0±0.70ms   192.4 MB/sec      1.01    150.9±0.44ms   191.3 MB/sec
list_nested/cdc                                    1.00    165.1±0.21ms   174.8 MB/sec      1.00    165.0±0.46ms   174.9 MB/sec
list_nested/default                                1.00    134.1±0.24ms   215.2 MB/sec      1.00    133.9±0.36ms   215.5 MB/sec
list_nested/parquet_2                              1.00    147.2±0.17ms   196.0 MB/sec      1.00    146.9±0.38ms   196.4 MB/sec
list_nested/zstd                                   1.00    143.2±0.20ms   201.5 MB/sec      1.00    143.3±0.47ms   201.4 MB/sec
list_nested/zstd_parquet_2                         1.00    160.0±0.19ms   180.4 MB/sec      1.00    159.7±0.35ms   180.6 MB/sec
list_primitive/bloom_filter                        1.00    300.7±3.14ms  1813.4 MB/sec      1.02    305.6±7.21ms  1784.6 MB/sec
list_primitive/cdc                                 1.03    323.0±6.99ms  1688.7 MB/sec      1.00    313.7±5.26ms  1738.4 MB/sec
list_primitive/default                             1.04    221.0±3.23ms     2.4 GB/sec      1.00    212.9±4.51ms     2.5 GB/sec
list_primitive/parquet_2                           1.06    244.9±1.10ms     2.2 GB/sec      1.00    231.5±2.40ms     2.3 GB/sec
list_primitive/zstd                                1.00    468.2±3.58ms  1164.9 MB/sec      1.01    473.0±6.15ms  1152.9 MB/sec
list_primitive/zstd_parquet_2                      1.02    462.2±3.50ms  1179.9 MB/sec      1.00    451.5±3.84ms  1207.9 MB/sec
list_primitive_non_null/bloom_filter               1.07   420.4±10.11ms  1294.5 MB/sec      1.00    393.6±9.34ms  1382.7 MB/sec
list_primitive_non_null/cdc                        1.00   403.3±14.76ms  1349.4 MB/sec      1.02   412.8±10.07ms  1318.3 MB/sec
list_primitive_non_null/default                    1.07   276.7±10.96ms  1967.0 MB/sec      1.00    258.2±6.14ms     2.1 GB/sec
list_primitive_non_null/parquet_2                  1.05    311.8±0.88ms  1745.7 MB/sec      1.00    297.0±8.55ms  1832.4 MB/sec
list_primitive_non_null/zstd                       1.02    703.5±8.19ms   773.6 MB/sec      1.00    692.4±2.61ms   786.0 MB/sec
list_primitive_non_null/zstd_parquet_2             1.01    685.2±1.16ms   794.3 MB/sec      1.00    678.6±4.04ms   802.0 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.00     13.0±0.04ms     2.8 GB/sec      1.03     13.4±0.17ms     2.7 GB/sec
list_primitive_sparse_99pct_null/cdc               1.00     24.6±0.04ms  1517.7 MB/sec      1.01     25.0±0.17ms  1497.4 MB/sec
list_primitive_sparse_99pct_null/default           1.00     12.6±0.03ms     2.9 GB/sec      1.03     12.9±0.13ms     2.8 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     12.6±0.03ms     2.9 GB/sec      1.02     12.9±0.10ms     2.8 GB/sec
list_primitive_sparse_99pct_null/zstd              1.00     14.5±0.03ms     2.5 GB/sec      1.02     14.8±0.13ms     2.5 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.00     12.8±0.03ms     2.9 GB/sec      1.02     13.1±0.12ms     2.8 GB/sec
list_struct_with_list/bloom_filter                 1.00    288.4±0.60ms   158.1 MB/sec      1.00    288.1±0.49ms   158.2 MB/sec
list_struct_with_list/cdc                          1.00    326.3±1.85ms   139.8 MB/sec      1.00    325.2±0.95ms   140.2 MB/sec
list_struct_with_list/default                      1.00    259.4±0.32ms   175.8 MB/sec      1.00    260.3±0.69ms   175.2 MB/sec
list_struct_with_list/parquet_2                    1.00    277.6±0.68ms   164.2 MB/sec      1.00    277.8±0.41ms   164.2 MB/sec
list_struct_with_list/zstd                         1.00    283.3±0.84ms   161.0 MB/sec      1.00    282.0±0.42ms   161.7 MB/sec
list_struct_with_list/zstd_parquet_2               1.00    302.1±0.56ms   150.9 MB/sec      1.00    300.7±0.63ms   151.6 MB/sec
primitive/bloom_filter                             1.00    152.5±0.48ms   294.2 MB/sec      1.00    152.2±0.91ms   294.8 MB/sec
primitive/cdc                                      1.01    161.9±0.69ms   277.2 MB/sec      1.00    160.9±0.85ms   278.9 MB/sec
primitive/default                                  1.01    121.6±0.41ms   369.1 MB/sec      1.00    119.9±0.56ms   374.3 MB/sec
primitive/parquet_2                                1.02    137.0±0.55ms   327.6 MB/sec      1.00    134.8±0.55ms   332.9 MB/sec
primitive/zstd                                     1.01    151.4±0.49ms   296.4 MB/sec      1.00    149.7±0.63ms   299.8 MB/sec
primitive/zstd_parquet_2                           1.01    169.2±0.39ms   265.3 MB/sec      1.00    168.0±0.56ms   267.2 MB/sec
primitive_all_null/bloom_filter                    1.00    884.3±3.53µs    49.6 GB/sec      1.09   960.4±21.14µs    45.6 GB/sec
primitive_all_null/cdc                             1.00     18.9±0.23ms     2.3 GB/sec      1.00     18.9±0.18ms     2.3 GB/sec
primitive_all_null/default                         1.00    268.4±2.02µs   163.2 GB/sec      1.01    272.4±1.48µs   160.9 GB/sec
primitive_all_null/parquet_2                       1.00    279.7±1.92µs   156.7 GB/sec      1.01    281.2±1.38µs   155.8 GB/sec
primitive_all_null/zstd                            1.00    417.9±2.14µs   104.9 GB/sec      1.01    423.3±1.75µs   103.5 GB/sec
primitive_all_null/zstd_parquet_2                  1.00    377.8±2.15µs   116.0 GB/sec      1.01    380.6±1.40µs   115.2 GB/sec
primitive_non_null/bloom_filter                    1.00    108.5±0.30ms   405.7 MB/sec      1.01    109.4±0.45ms   402.1 MB/sec
primitive_non_null/cdc                             1.00     91.9±0.26ms   478.9 MB/sec      1.01     93.0±0.96ms   473.0 MB/sec
primitive_non_null/default                         1.00     69.4±0.15ms   634.4 MB/sec      1.01     70.1±0.43ms   627.4 MB/sec
primitive_non_null/parquet_2                       1.00     90.9±0.15ms   483.8 MB/sec      1.01     91.9±0.69ms   478.7 MB/sec
primitive_non_null/zstd                            1.00    100.0±0.15ms   440.2 MB/sec      1.01    100.6±0.49ms   437.3 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    123.7±0.12ms   355.6 MB/sec      1.01    124.7±0.46ms   352.7 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.00     12.8±0.07ms     3.4 GB/sec      1.08     13.9±0.32ms     3.2 GB/sec
primitive_sparse_99pct_null/cdc                    1.00     29.9±0.21ms  1498.5 MB/sec      1.03     30.8±0.45ms  1457.7 MB/sec
primitive_sparse_99pct_null/default                1.00     11.0±0.06ms     4.0 GB/sec      1.05     11.6±0.14ms     3.8 GB/sec
primitive_sparse_99pct_null/parquet_2              1.00     11.1±0.03ms     4.0 GB/sec      1.05     11.6±0.16ms     3.8 GB/sec
primitive_sparse_99pct_null/zstd                   1.00     14.4±0.05ms     3.0 GB/sec      1.04     15.1±0.20ms     2.9 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     13.0±0.04ms     3.4 GB/sec      1.04     13.5±0.16ms     3.2 GB/sec
short_string_non_null/bloom_filter                 1.02     28.2±0.04ms   426.3 MB/sec      1.00     27.5±0.04ms   436.1 MB/sec
short_string_non_null/cdc                          1.00     19.8±0.06ms   605.0 MB/sec      1.00     19.8±0.03ms   605.4 MB/sec
short_string_non_null/default                      1.00     15.8±0.03ms   758.4 MB/sec      1.00     15.8±0.03ms   758.4 MB/sec
short_string_non_null/parquet_2                    1.00     26.0±0.03ms   462.2 MB/sec      1.01     26.2±0.07ms   457.4 MB/sec
short_string_non_null/zstd                         1.00     36.1±0.10ms   332.7 MB/sec      1.00     36.0±0.10ms   333.6 MB/sec
short_string_non_null/zstd_parquet_2               1.00     29.0±0.05ms   413.7 MB/sec      1.00     29.1±0.09ms   412.1 MB/sec
string/bloom_filter                                1.00    192.9±1.84ms     2.7 GB/sec      1.04    201.4±4.84ms     2.5 GB/sec
string/cdc                                         1.02   210.5±10.26ms     2.4 GB/sec      1.00    206.1±6.43ms     2.5 GB/sec
string/default                                     1.00   111.8±15.23ms     4.6 GB/sec      1.03   114.9±15.27ms     4.5 GB/sec
string/parquet_2                                   1.00    107.5±0.29ms     4.8 GB/sec      1.07    115.4±0.90ms     4.4 GB/sec
string/zstd                                        1.00   457.2±21.73ms  1146.5 MB/sec      1.03   471.5±15.85ms  1112.0 MB/sec
string/zstd_parquet_2                              1.00    405.4±0.40ms  1293.3 MB/sec      1.00    405.1±0.39ms  1294.0 MB/sec
string_and_binary_view/bloom_filter                1.03     66.1±0.32ms   487.8 MB/sec      1.00     64.2±0.22ms   502.1 MB/sec
string_and_binary_view/cdc                         1.01     59.4±0.25ms   543.1 MB/sec      1.00     58.8±0.19ms   548.8 MB/sec
string_and_binary_view/default                     1.02     48.9±0.20ms   659.3 MB/sec      1.00     48.1±0.12ms   670.3 MB/sec
string_and_binary_view/parquet_2                   1.01     60.3±0.28ms   535.0 MB/sec      1.00     59.6±0.19ms   541.5 MB/sec
string_and_binary_view/zstd                        1.01     86.0±0.22ms   375.2 MB/sec      1.00     85.3±0.21ms   378.2 MB/sec
string_and_binary_view/zstd_parquet_2              1.00     73.8±0.23ms   436.7 MB/sec      1.00     73.5±0.20ms   438.5 MB/sec
string_dictionary/bloom_filter                     1.01     86.7±0.57ms     3.0 GB/sec      1.00     86.1±1.29ms     3.0 GB/sec
string_dictionary/cdc                              1.00     47.5±1.22ms     5.4 GB/sec      1.02     48.3±1.26ms     5.3 GB/sec
string_dictionary/default                          1.00     44.0±0.44ms     5.9 GB/sec      1.04     45.6±0.63ms     5.7 GB/sec
string_dictionary/parquet_2                        1.00     48.1±0.16ms     5.4 GB/sec      1.02     48.9±0.12ms     5.3 GB/sec
string_dictionary/zstd                             1.00    210.1±0.78ms  1257.1 MB/sec      1.00    209.4±2.14ms  1261.5 MB/sec
string_dictionary/zstd_parquet_2                   1.00    192.6±0.21ms  1371.5 MB/sec      1.00    191.8±0.23ms  1377.0 MB/sec
string_non_null/bloom_filter                       1.01   238.4±16.07ms     2.1 GB/sec      1.00   236.0±19.68ms     2.2 GB/sec
string_non_null/cdc                                1.00    246.3±6.80ms     2.1 GB/sec      1.00    246.2±3.00ms     2.1 GB/sec
string_non_null/default                            1.05   128.9±16.59ms     4.0 GB/sec      1.00   122.5±18.77ms     4.2 GB/sec
string_non_null/parquet_2                          1.00    126.2±9.53ms     4.1 GB/sec      1.02    129.1±6.67ms     4.0 GB/sec
string_non_null/zstd                               1.01    561.9±7.22ms   932.5 MB/sec      1.00    556.0±4.83ms   942.5 MB/sec
string_non_null/zstd_parquet_2                     1.00    492.7±4.85ms  1063.6 MB/sec      1.01    495.3±4.62ms  1058.0 MB/sec
string_ree/bloom_filter                            1.02    156.3±1.21ms   105.0 MB/sec      1.00    153.8±0.63ms   106.7 MB/sec
string_ree/cdc                                     1.00    220.6±1.94ms    74.4 MB/sec      1.00    221.6±0.54ms    74.0 MB/sec
string_ree/default                                 1.01    125.8±1.05ms   130.5 MB/sec      1.00    124.4±1.10ms   131.8 MB/sec
string_ree/parquet_2                               1.00    127.4±0.47ms   128.8 MB/sec      1.39    176.7±0.67ms    92.9 MB/sec
string_ree/zstd                                    1.01    187.9±0.49ms    87.3 MB/sec      1.00    185.3±0.64ms    88.6 MB/sec
string_ree/zstd_parquet_2                          1.00    142.0±0.44ms   115.6 MB/sec      1.35    191.2±0.41ms    85.8 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     26.7±0.05ms    52.7 MB/sec      1.00     26.6±0.04ms    52.9 MB/sec
string_ree_95pct_null/cdc                          1.00     32.7±0.06ms    43.1 MB/sec      1.00     32.6±0.07ms    43.2 MB/sec
string_ree_95pct_null/default                      1.00     25.0±0.03ms    56.2 MB/sec      1.00     25.0±0.04ms    56.3 MB/sec
string_ree_95pct_null/parquet_2                    1.00     25.0±0.03ms    56.2 MB/sec      1.00     25.0±0.03ms    56.4 MB/sec
string_ree_95pct_null/zstd                         1.00     25.9±0.04ms    54.3 MB/sec      1.00     25.8±0.04ms    54.5 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.00     25.8±0.06ms    54.5 MB/sec      1.00     25.7±0.04ms    54.7 MB/sec
struct_all_null/bloom_filter                       1.00    369.4±2.09µs    42.6 GB/sec      1.02    375.4±1.53µs    42.0 GB/sec
struct_all_null/cdc                                1.01      7.8±0.07ms     2.0 GB/sec      1.00      7.8±0.06ms     2.0 GB/sec
struct_all_null/default                            1.00    116.6±0.89µs   135.1 GB/sec      1.00    116.4±0.73µs   135.3 GB/sec
struct_all_null/parquet_2                          1.00    120.4±0.86µs   130.8 GB/sec      1.00    120.5±0.59µs   130.6 GB/sec
struct_all_null/zstd                               1.01    180.5±1.12µs    87.2 GB/sec      1.00    178.6±0.72µs    88.2 GB/sec
struct_all_null/zstd_parquet_2                     1.00    161.9±0.93µs    97.3 GB/sec      1.00    161.4±0.58µs    97.5 GB/sec
struct_non_null/bloom_filter                       1.00     48.3±0.18ms   331.5 MB/sec      1.07     51.7±1.31ms   309.5 MB/sec
struct_non_null/cdc                                1.00     46.6±0.15ms   343.1 MB/sec      1.05     48.9±0.70ms   327.2 MB/sec
struct_non_null/default                            1.00     33.2±0.12ms   482.3 MB/sec      1.06     35.1±0.61ms   455.4 MB/sec
struct_non_null/parquet_2                          1.00     41.8±0.27ms   383.1 MB/sec      1.05     43.8±0.78ms   365.3 MB/sec
struct_non_null/zstd                               1.00     41.8±0.08ms   382.5 MB/sec      1.05     44.0±0.58ms   363.8 MB/sec
struct_non_null/zstd_parquet_2                     1.00     55.5±0.12ms   288.2 MB/sec      1.04     57.9±0.96ms   276.3 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      6.7±0.06ms     2.3 GB/sec      1.15      7.7±0.14ms     2.0 GB/sec
struct_sparse_99pct_null/cdc                       1.00     13.7±0.10ms  1174.6 MB/sec      1.03     14.1±0.08ms  1140.2 MB/sec
struct_sparse_99pct_null/default                   1.00      6.1±0.05ms     2.6 GB/sec      1.11      6.8±0.07ms     2.3 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.1±0.02ms     2.6 GB/sec      1.12      6.8±0.07ms     2.3 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.6±0.04ms     2.1 GB/sec      1.08      8.2±0.08ms  1968.0 MB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      6.9±0.04ms     2.3 GB/sec      1.08      7.4±0.12ms     2.1 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 3010.7s
Peak memory 2.9 GiB
Avg memory 2.6 GiB
CPU user 2907.9s
CPU sys 99.5s
Peak spill 0 B

branch

Metric Value
Wall time 3000.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2884.5s
CPU sys 114.0s
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)

Comparing fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.02     13.5±0.13ms    18.5 MB/sec      1.00     13.2±0.10ms    19.0 MB/sec
bool/cdc                                           1.00     16.1±0.09ms    15.5 MB/sec      1.00     16.0±0.14ms    15.6 MB/sec
bool/default                                       1.02     11.4±0.11ms    22.0 MB/sec      1.00     11.1±0.09ms    22.5 MB/sec
bool/parquet_2                                     1.01     15.1±0.12ms    16.6 MB/sec      1.00     15.0±0.11ms    16.7 MB/sec
bool/zstd                                          1.02     11.8±0.11ms    21.2 MB/sec      1.00     11.6±0.10ms    21.6 MB/sec
bool/zstd_parquet_2                                1.00     15.5±0.11ms    16.2 MB/sec      1.00     15.4±0.10ms    16.2 MB/sec
bool_non_null/bloom_filter                         1.00      7.0±0.04ms    18.0 MB/sec      1.00      7.0±0.03ms    17.9 MB/sec
bool_non_null/cdc                                  1.00      6.6±0.03ms    18.8 MB/sec      1.03      6.9±0.13ms    18.2 MB/sec
bool_non_null/default                              1.00      4.2±0.03ms    29.8 MB/sec      1.00      4.2±0.02ms    29.8 MB/sec
bool_non_null/parquet_2                            1.00      8.9±0.04ms    14.0 MB/sec      1.01      9.0±0.05ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.5±0.02ms    27.7 MB/sec      1.01      4.5±0.02ms    27.5 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.07ms    13.4 MB/sec      1.01      9.5±0.03ms    13.2 MB/sec
bool_ree/bloom_filter                              1.00     30.7±0.18ms     6.9 MB/sec      1.00     30.7±0.18ms     6.9 MB/sec
bool_ree/cdc                                       1.01     32.3±0.18ms     6.6 MB/sec      1.00     32.0±0.15ms     6.7 MB/sec
bool_ree/default                                   1.00     28.1±0.17ms     7.6 MB/sec      1.00     28.1±0.13ms     7.6 MB/sec
bool_ree/parquet_2                                 1.00     29.6±0.16ms     7.2 MB/sec      1.00     29.6±0.15ms     7.2 MB/sec
bool_ree/zstd                                      1.00     28.7±0.19ms     7.4 MB/sec      1.00     28.6±0.14ms     7.4 MB/sec
bool_ree/zstd_parquet_2                            1.00     29.9±0.18ms     7.1 MB/sec      1.01     30.1±0.17ms     7.1 MB/sec
decimal/bloom_filter                               1.13    138.8±3.77ms   432.1 MB/sec      1.00    123.4±2.22ms   486.2 MB/sec
decimal/cdc                                        1.00    107.6±1.16ms   557.7 MB/sec      1.01    108.3±1.59ms   553.9 MB/sec
decimal/default                                    1.12     94.3±2.06ms   636.0 MB/sec      1.00     83.9±1.40ms   714.7 MB/sec
decimal/parquet_2                                  1.05    194.2±2.80ms   308.9 MB/sec      1.00    185.7±3.06ms   323.1 MB/sec
decimal/zstd                                       1.10    104.9±1.25ms   572.0 MB/sec      1.00     95.4±1.37ms   629.2 MB/sec
decimal/zstd_parquet_2                             1.06    215.1±3.55ms   279.0 MB/sec      1.00    202.5±2.37ms   296.4 MB/sec
fixed_size_binary_ree/bloom_filter                 1.00     58.9±0.28ms    17.1 MB/sec      1.01     59.6±1.04ms    16.9 MB/sec
fixed_size_binary_ree/cdc                          1.03     63.4±0.43ms    15.9 MB/sec      1.00     61.8±0.31ms    16.3 MB/sec
fixed_size_binary_ree/default                      1.00     52.4±0.37ms    19.2 MB/sec      1.01     53.0±0.55ms    19.0 MB/sec
fixed_size_binary_ree/parquet_2                    1.00     66.6±0.89ms    15.1 MB/sec      1.00     66.5±0.17ms    15.2 MB/sec
fixed_size_binary_ree/zstd                         1.01     58.5±1.20ms    17.2 MB/sec      1.00     57.7±0.18ms    17.5 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.00     67.2±0.28ms    15.0 MB/sec      1.02     68.4±1.63ms    14.7 MB/sec
float_with_nans/bloom_filter                       1.01     81.3±0.22ms   172.1 MB/sec      1.00     80.3±2.44ms   174.4 MB/sec
float_with_nans/cdc                                1.02     71.1±1.24ms   197.0 MB/sec      1.00     70.0±0.20ms   200.1 MB/sec
float_with_nans/default                            1.00     63.0±0.18ms   222.3 MB/sec      1.01     63.8±1.65ms   219.4 MB/sec
float_with_nans/parquet_2                          1.00     80.8±0.60ms   173.2 MB/sec      1.01     81.5±1.68ms   171.8 MB/sec
float_with_nans/zstd                               1.03    103.6±2.32ms   135.1 MB/sec      1.00    100.7±0.17ms   139.1 MB/sec
float_with_nans/zstd_parquet_2                     1.00    118.5±1.61ms   118.2 MB/sec      1.01    120.2±2.02ms   116.5 MB/sec
fsb/bloom_filter                                   1.00      8.5±0.41ms  1889.7 MB/sec      1.00      8.5±0.44ms  1886.4 MB/sec
fsb/cdc                                            1.01     10.4±0.04ms  1545.5 MB/sec      1.00     10.4±0.08ms  1553.5 MB/sec
fsb/default                                        1.06      7.5±0.04ms     2.1 GB/sec      1.00      7.0±0.21ms     2.2 GB/sec
fsb/parquet_2                                      1.00     13.2±0.08ms  1218.9 MB/sec      1.02     13.5±0.55ms  1193.2 MB/sec
fsb/zstd                                           1.00      9.4±0.03ms  1715.9 MB/sec      1.01      9.5±0.24ms  1693.5 MB/sec
fsb/zstd_parquet_2                                 1.06     14.8±0.78ms  1086.3 MB/sec      1.00     14.0±0.11ms  1149.2 MB/sec
int32_ree/bloom_filter                             1.01     43.4±1.04ms     9.4 MB/sec      1.00     42.8±1.48ms     9.5 MB/sec
int32_ree/cdc                                      1.02     42.3±0.41ms     9.6 MB/sec      1.00     41.6±0.30ms     9.8 MB/sec
int32_ree/default                                  1.01     37.9±0.17ms    10.7 MB/sec      1.00     37.6±0.25ms    10.8 MB/sec
int32_ree/parquet_2                                1.00     37.9±0.19ms    10.7 MB/sec      1.00     38.1±0.26ms    10.7 MB/sec
int32_ree/zstd                                     1.00     38.5±0.17ms    10.6 MB/sec      1.00     38.4±0.29ms    10.6 MB/sec
int32_ree/zstd_parquet_2                           1.01     38.5±0.18ms    10.6 MB/sec      1.00     38.2±0.19ms    10.6 MB/sec
int32_ree_95pct_null/bloom_filter                  1.00     22.0±0.06ms    18.5 MB/sec      1.00     22.1±0.24ms    18.4 MB/sec
int32_ree_95pct_null/cdc                           1.00     24.1±0.18ms    16.9 MB/sec      1.01     24.2±0.05ms    16.8 MB/sec
int32_ree_95pct_null/default                       1.00     21.8±0.11ms    18.7 MB/sec      1.00     21.9±0.04ms    18.6 MB/sec
int32_ree_95pct_null/parquet_2                     1.00     21.6±0.03ms    18.8 MB/sec      1.00     21.6±0.13ms    18.8 MB/sec
int32_ree_95pct_null/zstd                          1.00     21.9±0.07ms    18.6 MB/sec      1.00     21.9±0.15ms    18.6 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.01     22.0±0.17ms    18.5 MB/sec      1.00     21.7±0.05ms    18.7 MB/sec
large_string_distinct/delta_byte_array             1.00     81.3±8.26ms     3.1 GB/sec      1.03    83.4±10.47ms     3.0 GB/sec
large_string_distinct/plain                        1.00     60.6±1.49ms     4.1 GB/sec      1.01     61.4±2.06ms     4.1 GB/sec
large_string_non_null/bloom_filter                 1.07     75.6±3.05ms     3.3 GB/sec      1.00     70.7±0.10ms     3.5 GB/sec
large_string_non_null/cdc                          1.01    246.3±3.61ms  1039.4 MB/sec      1.00    243.9±2.56ms  1049.6 MB/sec
large_string_non_null/default                      1.03     54.7±0.08ms     4.6 GB/sec      1.00     53.1±1.72ms     4.7 GB/sec
large_string_non_null/parquet_2                    1.00     54.8±0.42ms     4.6 GB/sec      1.00     54.7±2.44ms     4.6 GB/sec
large_string_non_null/zstd                         1.06     56.1±2.12ms     4.5 GB/sec      1.00     52.8±0.10ms     4.7 GB/sec
large_string_non_null/zstd_parquet_2               1.00     54.8±0.10ms     4.6 GB/sec      1.01     55.5±2.70ms     4.5 GB/sec
large_string_shared_prefix/delta_byte_array        1.00     55.2±0.18ms     4.5 GB/sec      1.95    107.4±1.18ms     2.3 GB/sec
large_string_shared_prefix/plain                   1.02     95.6±7.16ms     2.6 GB/sec      1.00     93.9±1.16ms     2.7 GB/sec
list_nested/bloom_filter                           1.01    147.8±1.32ms   195.2 MB/sec      1.00    146.9±1.68ms   196.4 MB/sec
list_nested/cdc                                    1.01    165.7±1.22ms   174.2 MB/sec      1.00    164.5±1.62ms   175.4 MB/sec
list_nested/default                                1.01    135.4±1.32ms   213.1 MB/sec      1.00    134.7±1.45ms   214.3 MB/sec
list_nested/parquet_2                              1.01    147.4±1.10ms   195.7 MB/sec      1.00    146.6±1.10ms   196.8 MB/sec
list_nested/zstd                                   1.01    145.1±1.63ms   198.9 MB/sec      1.00    143.7±1.77ms   200.8 MB/sec
list_nested/zstd_parquet_2                         1.01    160.4±0.89ms   179.9 MB/sec      1.00    159.5±1.08ms   180.9 MB/sec
list_primitive/bloom_filter                        1.16   337.3±25.67ms  1616.7 MB/sec      1.00   291.5±18.79ms  1870.9 MB/sec
list_primitive/cdc                                 1.07   331.5±13.43ms  1645.2 MB/sec      1.00    311.1±3.41ms  1753.2 MB/sec
list_primitive/default                             1.19   237.8±11.73ms     2.2 GB/sec      1.00    199.8±2.42ms     2.7 GB/sec
list_primitive/parquet_2                           1.16    264.0±7.56ms     2.0 GB/sec      1.00    226.8±2.28ms     2.3 GB/sec
list_primitive/zstd                                1.08   497.2±12.97ms  1096.9 MB/sec      1.00    458.5±9.68ms  1189.5 MB/sec
list_primitive/zstd_parquet_2                      1.05    474.6±9.35ms  1149.2 MB/sec      1.00    451.2±6.15ms  1208.7 MB/sec
list_primitive_non_null/bloom_filter               1.20   439.8±44.24ms  1237.6 MB/sec      1.00   367.3±23.15ms  1481.7 MB/sec
list_primitive_non_null/cdc                        1.03   404.7±13.06ms  1344.9 MB/sec      1.00   394.4±10.04ms  1379.8 MB/sec
list_primitive_non_null/default                    1.20   288.0±15.16ms  1889.6 MB/sec      1.00   240.5±10.74ms     2.2 GB/sec
list_primitive_non_null/parquet_2                  1.29    336.4±7.88ms  1617.6 MB/sec      1.00   260.1±11.54ms     2.0 GB/sec
list_primitive_non_null/zstd                       1.10   728.8±19.32ms   746.7 MB/sec      1.00   665.0±18.45ms   818.4 MB/sec
list_primitive_non_null/zstd_parquet_2             1.08   708.6±11.34ms   768.1 MB/sec      1.00    656.0±7.95ms   829.6 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.11     13.9±0.09ms     2.6 GB/sec      1.00     12.5±0.02ms     2.9 GB/sec
list_primitive_sparse_99pct_null/cdc               1.01     24.3±0.09ms  1537.4 MB/sec      1.00     24.1±0.41ms  1553.2 MB/sec
list_primitive_sparse_99pct_null/default           1.00     12.4±0.05ms     2.9 GB/sec      1.00     12.5±0.36ms     2.9 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.00     12.7±0.24ms     2.9 GB/sec      1.02     12.9±0.31ms     2.8 GB/sec
list_primitive_sparse_99pct_null/zstd              1.00     14.3±0.05ms     2.6 GB/sec      1.01     14.5±0.32ms     2.5 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.04     12.9±0.38ms     2.8 GB/sec      1.00     12.3±0.03ms     3.0 GB/sec
list_struct_with_list/bloom_filter                 1.01    288.3±3.38ms   158.1 MB/sec      1.00    284.2±3.71ms   160.4 MB/sec
list_struct_with_list/cdc                          1.00    326.8±3.49ms   139.5 MB/sec      1.00    327.1±4.01ms   139.4 MB/sec
list_struct_with_list/default                      1.00    261.9±3.34ms   174.1 MB/sec      1.00    260.9±3.03ms   174.8 MB/sec
list_struct_with_list/parquet_2                    1.00    279.1±2.83ms   163.4 MB/sec      1.00    278.1±3.01ms   163.9 MB/sec
list_struct_with_list/zstd                         1.00    282.4±3.13ms   161.5 MB/sec      1.00    281.3±2.45ms   162.1 MB/sec
list_struct_with_list/zstd_parquet_2               1.00    301.5±2.23ms   151.2 MB/sec      1.00    301.2±2.93ms   151.4 MB/sec
primitive/bloom_filter                             1.01    153.9±3.41ms   291.6 MB/sec      1.00    152.8±4.27ms   293.8 MB/sec
primitive/cdc                                      1.01    163.5±2.19ms   274.4 MB/sec      1.00    162.2±2.23ms   276.6 MB/sec
primitive/default                                  1.00    122.0±0.54ms   367.9 MB/sec      1.01    123.4±3.64ms   363.6 MB/sec
primitive/parquet_2                                1.02    138.8±2.33ms   323.2 MB/sec      1.00    135.5±1.58ms   331.1 MB/sec
primitive/zstd                                     1.00    152.0±1.97ms   295.2 MB/sec      1.00    151.5±3.12ms   296.3 MB/sec
primitive/zstd_parquet_2                           1.01    170.5±2.29ms   263.1 MB/sec      1.00    169.3±1.97ms   265.1 MB/sec
primitive_all_null/bloom_filter                    1.05   923.7±41.91µs    47.4 GB/sec      1.00    880.7±1.80µs    49.8 GB/sec
primitive_all_null/cdc                             1.01     19.1±0.34ms     2.3 GB/sec      1.00     18.8±0.24ms     2.3 GB/sec
primitive_all_null/default                         1.00    270.2±1.29µs   162.2 GB/sec      1.00    270.5±1.24µs   162.0 GB/sec
primitive_all_null/parquet_2                       1.00    279.7±1.44µs   156.7 GB/sec      1.00    279.3±1.50µs   156.9 GB/sec
primitive_all_null/zstd                            1.00    418.8±1.52µs   104.6 GB/sec      1.00    417.4±1.62µs   105.0 GB/sec
primitive_all_null/zstd_parquet_2                  1.00    376.0±1.30µs   116.6 GB/sec      1.00    376.3±1.31µs   116.5 GB/sec
primitive_non_null/bloom_filter                    1.00    111.6±4.75ms   394.3 MB/sec      1.00    112.1±5.23ms   392.4 MB/sec
primitive_non_null/cdc                             1.00     93.2±2.05ms   472.4 MB/sec      1.01     93.8±2.61ms   469.2 MB/sec
primitive_non_null/default                         1.01     69.3±0.52ms   635.2 MB/sec      1.00     68.7±0.32ms   640.5 MB/sec
primitive_non_null/parquet_2                       1.03     93.6±2.53ms   469.9 MB/sec      1.00     90.9±1.70ms   484.2 MB/sec
primitive_non_null/zstd                            1.02    101.3±1.93ms   434.5 MB/sec      1.00     99.1±0.96ms   444.1 MB/sec
primitive_non_null/zstd_parquet_2                  1.01    124.3±1.57ms   353.9 MB/sec      1.00    123.1±0.23ms   357.5 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.17     14.2±0.40ms     3.1 GB/sec      1.00     12.1±0.07ms     3.6 GB/sec
primitive_sparse_99pct_null/cdc                    1.03     30.2±0.79ms  1485.8 MB/sec      1.00     29.2±0.21ms  1534.4 MB/sec
primitive_sparse_99pct_null/default                1.00     10.7±0.05ms     4.1 GB/sec      1.01     10.9±0.37ms     4.0 GB/sec
primitive_sparse_99pct_null/parquet_2              1.00     11.2±0.37ms     3.9 GB/sec      1.03     11.5±0.44ms     3.8 GB/sec
primitive_sparse_99pct_null/zstd                   1.00     14.4±0.39ms     3.0 GB/sec      1.02     14.6±0.46ms     3.0 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.00     12.7±0.08ms     3.5 GB/sec      1.02     12.9±0.48ms     3.4 GB/sec
short_string_non_null/bloom_filter                 1.10     29.6±0.17ms   405.6 MB/sec      1.00     27.0±0.07ms   445.3 MB/sec
short_string_non_null/cdc                          1.00     19.7±0.22ms   610.4 MB/sec      1.01     19.8±0.22ms   606.4 MB/sec
short_string_non_null/default                      1.00     15.5±0.06ms   772.2 MB/sec      1.00     15.5±0.05ms   775.0 MB/sec
short_string_non_null/parquet_2                    1.02     26.2±0.23ms   458.6 MB/sec      1.00     25.7±0.09ms   466.4 MB/sec
short_string_non_null/zstd                         1.00     35.9±0.27ms   334.0 MB/sec      1.00     35.9±0.11ms   334.1 MB/sec
short_string_non_null/zstd_parquet_2               1.00     28.7±0.05ms   418.0 MB/sec      1.01     29.0±0.22ms   413.8 MB/sec
string/bloom_filter                                1.05   210.5±24.30ms     2.4 GB/sec      1.00   200.1±16.84ms     2.6 GB/sec
string/cdc                                         1.00    211.0±9.42ms     2.4 GB/sec      1.00   210.4±10.69ms     2.4 GB/sec
string/default                                     1.08   121.8±15.72ms     4.2 GB/sec      1.00   112.4±14.39ms     4.6 GB/sec
string/parquet_2                                   1.00    114.4±2.23ms     4.5 GB/sec      1.04    118.8±3.49ms     4.3 GB/sec
string/zstd                                        1.02   470.5±21.66ms  1114.3 MB/sec      1.00   462.0±19.51ms  1134.7 MB/sec
string/zstd_parquet_2                              1.00   389.0±10.61ms  1347.7 MB/sec      1.12    437.3±6.37ms  1198.7 MB/sec
string_and_binary_view/bloom_filter                1.06     67.4±4.03ms   478.7 MB/sec      1.00     63.5±0.29ms   508.1 MB/sec
string_and_binary_view/cdc                         1.03     60.8±2.24ms   530.0 MB/sec      1.00     59.0±0.28ms   547.1 MB/sec
string_and_binary_view/default                     1.01     49.5±1.61ms   651.0 MB/sec      1.00     49.0±1.48ms   658.7 MB/sec
string_and_binary_view/parquet_2                   1.00     60.0±0.28ms   537.9 MB/sec      1.07     64.5±0.74ms   500.4 MB/sec
string_and_binary_view/zstd                        1.00     85.7±0.25ms   376.5 MB/sec      1.01     86.9±2.32ms   371.2 MB/sec
string_and_binary_view/zstd_parquet_2              1.05     77.9±2.10ms   413.8 MB/sec      1.00     74.5±1.85ms   432.7 MB/sec
string_dictionary/bloom_filter                     1.00    92.4±10.29ms     2.8 GB/sec      1.10   102.0±12.12ms     2.5 GB/sec
string_dictionary/cdc                              1.00     55.8±4.25ms     4.6 GB/sec      1.55     86.6±3.73ms     3.0 GB/sec
string_dictionary/default                          1.05     45.5±2.56ms     5.7 GB/sec      1.00     43.1±0.54ms     6.0 GB/sec
string_dictionary/parquet_2                        1.01     49.7±1.53ms     5.2 GB/sec      1.00     49.1±1.08ms     5.3 GB/sec
string_dictionary/zstd                             1.04   217.3±13.40ms  1215.4 MB/sec      1.00    209.3±5.67ms  1262.3 MB/sec
string_dictionary/zstd_parquet_2                   1.00    194.4±2.34ms  1358.9 MB/sec      1.00    194.5±3.37ms  1358.2 MB/sec
string_non_null/bloom_filter                       1.00   248.8±30.88ms     2.1 GB/sec      1.02   252.7±40.60ms     2.0 GB/sec
string_non_null/cdc                                1.02   261.6±12.45ms  2003.1 MB/sec      1.00    255.7±8.15ms     2.0 GB/sec
string_non_null/default                            1.08   133.5±19.22ms     3.8 GB/sec      1.00   123.9±23.42ms     4.1 GB/sec
string_non_null/parquet_2                          1.13    125.7±8.30ms     4.1 GB/sec      1.00    110.8±8.44ms     4.6 GB/sec
string_non_null/zstd                               1.01   564.4±18.59ms   928.4 MB/sec      1.00   558.4±18.19ms   938.4 MB/sec
string_non_null/zstd_parquet_2                     1.00    498.0±9.86ms  1052.1 MB/sec      1.02    505.8±7.66ms  1036.1 MB/sec
string_ree/bloom_filter                            1.66   180.8±10.05ms    90.7 MB/sec      1.00    109.0±3.90ms   150.6 MB/sec
string_ree/cdc                                     1.37    239.1±5.44ms    68.6 MB/sec      1.00    174.1±2.53ms    94.2 MB/sec
string_ree/default                                 1.57    132.4±4.50ms   123.9 MB/sec      1.00     84.2±4.63ms   194.9 MB/sec
string_ree/parquet_2                               1.00    132.0±2.22ms   124.3 MB/sec      1.00    131.7±1.04ms   124.6 MB/sec
string_ree/zstd                                    1.38    191.2±7.21ms    85.8 MB/sec      1.00    138.4±4.38ms   118.6 MB/sec
string_ree/zstd_parquet_2                          1.00    148.7±3.67ms   110.3 MB/sec      1.00    148.4±2.18ms   110.5 MB/sec
string_ree_95pct_null/bloom_filter                 1.00     26.2±0.12ms    53.6 MB/sec      1.02     26.8±0.41ms    52.6 MB/sec
string_ree_95pct_null/cdc                          1.01     32.7±0.59ms    43.1 MB/sec      1.00     32.3±0.16ms    43.6 MB/sec
string_ree_95pct_null/default                      1.00     25.2±0.33ms    55.7 MB/sec      1.02     25.7±0.10ms    54.8 MB/sec
string_ree_95pct_null/parquet_2                    1.01     24.9±0.09ms    56.5 MB/sec      1.00     24.7±0.20ms    57.0 MB/sec
string_ree_95pct_null/zstd                         1.00     25.6±0.10ms    55.1 MB/sec      1.00     25.5±0.09ms    55.2 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.00     25.5±0.15ms    55.1 MB/sec      1.00     25.7±0.48ms    54.8 MB/sec
struct_all_null/bloom_filter                       1.00    371.2±6.07µs    42.4 GB/sec      1.03    383.8±7.06µs    41.0 GB/sec
struct_all_null/cdc                                1.01      7.8±0.08ms     2.0 GB/sec      1.00      7.8±0.05ms     2.0 GB/sec
struct_all_null/default                            1.01    117.0±0.60µs   134.6 GB/sec      1.00    116.0±0.60µs   135.8 GB/sec
struct_all_null/parquet_2                          1.01    119.8±0.63µs   131.5 GB/sec      1.00    119.1±0.61µs   132.3 GB/sec
struct_all_null/zstd                               1.00    179.6±0.72µs    87.7 GB/sec      1.00    179.3±0.70µs    87.8 GB/sec
struct_all_null/zstd_parquet_2                     1.01    162.5±0.75µs    96.9 GB/sec      1.00    160.3±0.66µs    98.2 GB/sec
struct_non_null/bloom_filter                       1.10     52.2±2.02ms   306.4 MB/sec      1.00     47.4±2.14ms   337.5 MB/sec
struct_non_null/cdc                                1.03     47.5±1.18ms   336.9 MB/sec      1.00     46.0±0.15ms   347.7 MB/sec
struct_non_null/default                            1.00     33.1±0.08ms   484.0 MB/sec      1.01     33.4±0.98ms   478.7 MB/sec
struct_non_null/parquet_2                          1.00     41.9±0.19ms   381.7 MB/sec      1.01     42.1±0.74ms   379.7 MB/sec
struct_non_null/zstd                               1.00     41.6±0.10ms   385.0 MB/sec      1.00     41.7±0.91ms   383.5 MB/sec
struct_non_null/zstd_parquet_2                     1.03     56.8±1.33ms   281.8 MB/sec      1.00     55.1±0.09ms   290.2 MB/sec
struct_sparse_99pct_null/bloom_filter              1.00      6.7±0.22ms     2.4 GB/sec      1.08      7.2±0.34ms     2.2 GB/sec
struct_sparse_99pct_null/cdc                       1.00     13.3±0.10ms  1208.5 MB/sec      1.03     13.7±0.08ms  1175.3 MB/sec
struct_sparse_99pct_null/default                   1.00      6.2±0.23ms     2.5 GB/sec      1.11      6.9±0.12ms     2.3 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.2±0.24ms     2.5 GB/sec      1.02      6.3±0.02ms     2.5 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.4±0.02ms     2.1 GB/sec      1.06      7.8±0.25ms     2.0 GB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      6.9±0.29ms     2.3 GB/sec      1.01      7.0±0.02ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 2975.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2909.4s
CPU sys 59.9s
Peak spill 0 B

branch

Metric Value
Wall time 3060.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2909.4s
CPU sys 145.1s
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)

Comparing fix-delta-byte-array-page-split-10489 (6190b5a) to f8a57f8 (merge-base) diff

Run configuration
run benchmark arrow_writer
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                                              fix-delta-byte-array-page-split-10489    main
-----                                              -------------------------------------    ----
bool/bloom_filter                                  1.02     13.1±0.18ms    19.0 MB/sec      1.00     12.8±0.04ms    19.5 MB/sec
bool/cdc                                           1.01     15.7±0.03ms    16.0 MB/sec      1.00     15.5±0.04ms    16.1 MB/sec
bool/default                                       1.02     11.0±0.03ms    22.8 MB/sec      1.00     10.7±0.03ms    23.3 MB/sec
bool/parquet_2                                     1.01     14.8±0.11ms    16.9 MB/sec      1.00     14.6±0.04ms    17.1 MB/sec
bool/zstd                                          1.03     11.6±0.17ms    21.6 MB/sec      1.00     11.3±0.03ms    22.2 MB/sec
bool/zstd_parquet_2                                1.01     15.1±0.11ms    16.5 MB/sec      1.00     14.9±0.03ms    16.7 MB/sec
bool_non_null/bloom_filter                         1.00      6.9±0.02ms    18.0 MB/sec      1.01      7.0±0.03ms    17.9 MB/sec
bool_non_null/cdc                                  1.00      6.6±0.05ms    18.8 MB/sec      1.01      6.7±0.03ms    18.7 MB/sec
bool_non_null/default                              1.00      4.2±0.02ms    30.0 MB/sec      1.01      4.2±0.02ms    29.6 MB/sec
bool_non_null/parquet_2                            1.00      8.9±0.04ms    14.0 MB/sec      1.01      9.0±0.02ms    13.9 MB/sec
bool_non_null/zstd                                 1.00      4.5±0.02ms    27.7 MB/sec      1.01      4.6±0.02ms    27.3 MB/sec
bool_non_null/zstd_parquet_2                       1.00      9.4±0.04ms    13.4 MB/sec      1.01      9.4±0.04ms    13.3 MB/sec
bool_ree/bloom_filter                              1.00     30.4±0.04ms     7.0 MB/sec      1.00     30.2±0.06ms     7.0 MB/sec
bool_ree/cdc                                       1.01     31.7±0.08ms     6.7 MB/sec      1.00     31.4±0.09ms     6.8 MB/sec
bool_ree/default                                   1.00     27.7±0.07ms     7.7 MB/sec      1.00     27.5±0.05ms     7.7 MB/sec
bool_ree/parquet_2                                 1.00     29.2±0.06ms     7.3 MB/sec      1.00     29.1±0.06ms     7.3 MB/sec
bool_ree/zstd                                      1.00     28.3±0.05ms     7.5 MB/sec      1.00     28.2±0.06ms     7.6 MB/sec
bool_ree/zstd_parquet_2                            1.00     29.6±0.05ms     7.2 MB/sec      1.00     29.5±0.09ms     7.2 MB/sec
decimal/bloom_filter                               1.04    135.8±1.15ms   441.8 MB/sec      1.00    130.5±0.98ms   459.7 MB/sec
decimal/cdc                                        1.01    107.2±0.47ms   559.5 MB/sec      1.00    106.0±0.34ms   566.0 MB/sec
decimal/default                                    1.01     93.4±1.55ms   642.1 MB/sec      1.00     92.8±1.05ms   646.4 MB/sec
decimal/parquet_2                                  1.00    193.7±1.91ms   309.7 MB/sec      1.08    209.2±1.78ms   286.9 MB/sec
decimal/zstd                                       1.00    106.0±1.06ms   566.2 MB/sec      1.18    124.7±9.04ms   481.2 MB/sec
decimal/zstd_parquet_2                             1.00    213.5±1.79ms   281.0 MB/sec      1.08    230.6±7.44ms   260.2 MB/sec
fixed_size_binary_ree/bloom_filter                 1.02     59.9±0.29ms    16.8 MB/sec      1.00     58.5±0.99ms    17.2 MB/sec
fixed_size_binary_ree/cdc                          1.02     62.6±0.34ms    16.1 MB/sec      1.00     61.5±0.23ms    16.4 MB/sec
fixed_size_binary_ree/default                      1.02     52.4±0.26ms    19.2 MB/sec      1.00     51.4±0.28ms    19.6 MB/sec
fixed_size_binary_ree/parquet_2                    1.04     68.3±0.44ms    14.8 MB/sec      1.00     65.8±0.31ms    15.3 MB/sec
fixed_size_binary_ree/zstd                         1.01     58.1±0.21ms    17.3 MB/sec      1.00     57.5±1.55ms    17.5 MB/sec
fixed_size_binary_ree/zstd_parquet_2               1.04     68.8±0.51ms    14.6 MB/sec      1.00     66.4±0.92ms    15.2 MB/sec
float_with_nans/bloom_filter                       1.05     82.2±0.41ms   170.3 MB/sec      1.00     78.5±0.24ms   178.4 MB/sec
float_with_nans/cdc                                1.02     70.8±0.29ms   197.6 MB/sec      1.00     69.5±0.36ms   201.6 MB/sec
float_with_nans/default                            1.02     63.5±0.33ms   220.6 MB/sec      1.00     62.3±0.20ms   224.7 MB/sec
float_with_nans/parquet_2                          1.02     81.6±0.38ms   171.5 MB/sec      1.00     80.3±1.00ms   174.3 MB/sec
float_with_nans/zstd                               1.01    101.8±1.04ms   137.5 MB/sec      1.00    100.5±0.99ms   139.3 MB/sec
float_with_nans/zstd_parquet_2                     1.01    117.8±0.47ms   118.8 MB/sec      1.00    116.9±0.26ms   119.8 MB/sec
fsb/bloom_filter                                   1.02      8.2±0.07ms  1965.9 MB/sec      1.00      8.1±0.05ms  1998.7 MB/sec
fsb/cdc                                            1.02     10.7±0.10ms  1511.6 MB/sec      1.00     10.4±0.06ms  1543.8 MB/sec
fsb/default                                        1.01      7.0±0.03ms     2.2 GB/sec      1.00      7.0±0.04ms     2.3 GB/sec
fsb/parquet_2                                      1.03     13.6±0.09ms  1188.8 MB/sec      1.00     13.2±0.09ms  1225.7 MB/sec
fsb/zstd                                           1.02      9.6±0.06ms  1681.9 MB/sec      1.00      9.4±0.06ms  1712.3 MB/sec
fsb/zstd_parquet_2                                 1.03     14.5±0.08ms  1115.8 MB/sec      1.00     14.1±0.11ms  1145.0 MB/sec
int32_ree/bloom_filter                             1.02     42.1±0.20ms     9.7 MB/sec      1.00     41.4±0.36ms     9.8 MB/sec
int32_ree/cdc                                      1.01     41.5±0.13ms     9.8 MB/sec      1.00     41.1±0.07ms     9.9 MB/sec
int32_ree/default                                  1.00     37.7±0.11ms    10.8 MB/sec      1.00     37.5±0.09ms    10.8 MB/sec
int32_ree/parquet_2                                1.01     37.7±0.08ms    10.8 MB/sec      1.00     37.3±0.08ms    10.9 MB/sec
int32_ree/zstd                                     1.01     38.2±0.08ms    10.6 MB/sec      1.00     37.9±0.10ms    10.7 MB/sec
int32_ree/zstd_parquet_2                           1.01     38.3±0.14ms    10.6 MB/sec      1.00     37.8±0.09ms    10.8 MB/sec
int32_ree_95pct_null/bloom_filter                  1.01     22.1±0.11ms    18.4 MB/sec      1.00     21.8±0.02ms    18.7 MB/sec
int32_ree_95pct_null/cdc                           1.01     24.0±0.06ms    17.0 MB/sec      1.00     23.7±0.03ms    17.2 MB/sec
int32_ree_95pct_null/default                       1.01     21.7±0.03ms    18.7 MB/sec      1.00     21.5±0.02ms    19.0 MB/sec
int32_ree_95pct_null/parquet_2                     1.01     21.8±0.04ms    18.7 MB/sec      1.00     21.5±0.07ms    18.9 MB/sec
int32_ree_95pct_null/zstd                          1.01     22.0±0.04ms    18.5 MB/sec      1.00     21.8±0.06ms    18.7 MB/sec
int32_ree_95pct_null/zstd_parquet_2                1.01     21.8±0.05ms    18.6 MB/sec      1.00     21.6±0.01ms    18.8 MB/sec
large_string_distinct/delta_byte_array             1.00     66.0±0.90ms     3.8 GB/sec      1.14     75.2±6.53ms     3.3 GB/sec
large_string_distinct/plain                        1.01     60.3±0.52ms     4.1 GB/sec      1.00     59.7±1.27ms     4.2 GB/sec
large_string_non_null/bloom_filter                 1.00     72.9±0.14ms     3.4 GB/sec      1.04     75.8±0.16ms     3.3 GB/sec
large_string_non_null/cdc                          1.01    244.7±1.38ms  1046.4 MB/sec      1.00    242.6±1.28ms  1055.2 MB/sec
large_string_non_null/default                      1.00     55.0±0.08ms     4.5 GB/sec      1.06     58.2±0.16ms     4.3 GB/sec
large_string_non_null/parquet_2                    1.00     55.5±0.11ms     4.5 GB/sec      1.05     58.1±0.16ms     4.3 GB/sec
large_string_non_null/zstd                         1.00     55.3±0.17ms     4.5 GB/sec      1.05     58.1±0.13ms     4.3 GB/sec
large_string_non_null/zstd_parquet_2               1.00     55.2±0.09ms     4.5 GB/sec      1.06     58.2±0.13ms     4.3 GB/sec
large_string_shared_prefix/delta_byte_array        1.00     56.1±0.45ms     4.5 GB/sec      1.87    104.8±1.03ms     2.4 GB/sec
large_string_shared_prefix/plain                   1.01     92.9±0.69ms     2.7 GB/sec      1.00     91.8±0.82ms     2.7 GB/sec
list_nested/bloom_filter                           1.00    148.1±0.28ms   194.8 MB/sec      1.00    147.4±0.25ms   195.7 MB/sec
list_nested/cdc                                    1.01    165.5±0.36ms   174.3 MB/sec      1.00    163.9±0.20ms   176.0 MB/sec
list_nested/default                                1.01    134.2±0.25ms   215.0 MB/sec      1.00    133.0±0.21ms   216.9 MB/sec
list_nested/parquet_2                              1.00    147.3±0.18ms   195.8 MB/sec      1.00    146.7±0.42ms   196.7 MB/sec
list_nested/zstd                                   1.01    143.5±0.24ms   201.1 MB/sec      1.00    142.3±0.20ms   202.8 MB/sec
list_nested/zstd_parquet_2                         1.01    160.3±0.25ms   180.0 MB/sec      1.00    159.1±0.26ms   181.3 MB/sec
list_primitive/bloom_filter                        1.00    317.4±9.96ms  1718.2 MB/sec      1.01   319.5±19.44ms  1706.7 MB/sec
list_primitive/cdc                                 1.04   329.3±11.02ms  1655.9 MB/sec      1.00    316.9±8.89ms  1720.8 MB/sec
list_primitive/default                             1.00    236.2±9.20ms     2.3 GB/sec      1.04   245.6±14.27ms     2.2 GB/sec
list_primitive/parquet_2                           1.00    264.9±4.74ms     2.0 GB/sec      1.10    291.3±1.73ms  1872.3 MB/sec
list_primitive/zstd                                1.02    496.1±2.40ms  1099.3 MB/sec      1.00    486.6±4.22ms  1120.9 MB/sec
list_primitive/zstd_parquet_2                      1.00    470.5±5.65ms  1159.2 MB/sec      1.02    481.2±2.06ms  1133.4 MB/sec
list_primitive_non_null/bloom_filter               1.02   424.2±14.23ms  1283.0 MB/sec      1.00   415.9±21.40ms  1308.7 MB/sec
list_primitive_non_null/cdc                        1.04    403.2±9.29ms  1349.8 MB/sec      1.00    389.3±9.21ms  1398.1 MB/sec
list_primitive_non_null/default                    1.00   282.8±15.90ms  1924.1 MB/sec      1.00   281.7±24.04ms  1931.7 MB/sec
list_primitive_non_null/parquet_2                  1.30    335.0±2.24ms  1624.7 MB/sec      1.00   258.3±23.33ms     2.1 GB/sec
list_primitive_non_null/zstd                       1.01    724.1±9.27ms   751.6 MB/sec      1.00   717.7±21.99ms   758.3 MB/sec
list_primitive_non_null/zstd_parquet_2             1.00   679.3±21.93ms   801.2 MB/sec      1.00    679.5±0.70ms   801.0 MB/sec
list_primitive_sparse_99pct_null/bloom_filter      1.05     13.2±0.05ms     2.8 GB/sec      1.00     12.6±0.09ms     2.9 GB/sec
list_primitive_sparse_99pct_null/cdc               1.03     24.7±0.08ms  1511.4 MB/sec      1.00     23.9±0.10ms  1560.6 MB/sec
list_primitive_sparse_99pct_null/default           1.03     12.7±0.12ms     2.9 GB/sec      1.00     12.3±0.08ms     3.0 GB/sec
list_primitive_sparse_99pct_null/parquet_2         1.03     12.7±0.10ms     2.9 GB/sec      1.00     12.3±0.08ms     3.0 GB/sec
list_primitive_sparse_99pct_null/zstd              1.03     14.5±0.09ms     2.5 GB/sec      1.00     14.1±0.09ms     2.6 GB/sec
list_primitive_sparse_99pct_null/zstd_parquet_2    1.03     12.8±0.08ms     2.8 GB/sec      1.00     12.4±0.08ms     2.9 GB/sec
list_struct_with_list/bloom_filter                 1.02    289.0±0.52ms   157.8 MB/sec      1.00    283.3±0.48ms   161.0 MB/sec
list_struct_with_list/cdc                          1.01    325.0±0.61ms   140.3 MB/sec      1.00    322.7±1.64ms   141.3 MB/sec
list_struct_with_list/default                      1.01    260.1±0.50ms   175.3 MB/sec      1.00    258.0±0.44ms   176.7 MB/sec
list_struct_with_list/parquet_2                    1.01    277.5±0.58ms   164.3 MB/sec      1.00    275.4±0.52ms   165.5 MB/sec
list_struct_with_list/zstd                         1.01    281.7±0.56ms   161.9 MB/sec      1.00    280.0±0.46ms   162.8 MB/sec
list_struct_with_list/zstd_parquet_2               1.01    300.2±0.54ms   151.9 MB/sec      1.00    298.6±0.37ms   152.7 MB/sec
primitive/bloom_filter                             1.01    150.6±0.35ms   298.0 MB/sec      1.00    148.9±0.44ms   301.4 MB/sec
primitive/cdc                                      1.00    159.1±0.45ms   282.1 MB/sec      1.00    158.4±0.55ms   283.3 MB/sec
primitive/default                                  1.00    118.4±0.49ms   378.9 MB/sec      1.00    118.1±0.31ms   380.0 MB/sec
primitive/parquet_2                                1.01    133.8±0.18ms   335.5 MB/sec      1.00    133.1±0.27ms   337.2 MB/sec
primitive/zstd                                     1.01    148.4±0.19ms   302.3 MB/sec      1.00    147.6±0.38ms   304.1 MB/sec
primitive/zstd_parquet_2                           1.00    166.4±0.19ms   269.7 MB/sec      1.00    165.8±0.27ms   270.7 MB/sec
primitive_all_null/bloom_filter                    1.01    891.4±4.23µs    49.2 GB/sec      1.00    878.5±2.59µs    49.9 GB/sec
primitive_all_null/cdc                             1.00     18.9±0.23ms     2.3 GB/sec      1.01     19.0±0.27ms     2.3 GB/sec
primitive_all_null/default                         1.00    269.3±1.43µs   162.7 GB/sec      1.01    272.5±1.81µs   160.8 GB/sec
primitive_all_null/parquet_2                       1.00    278.2±1.21µs   157.5 GB/sec      1.02    283.4±1.92µs   154.6 GB/sec
primitive_all_null/zstd                            1.00    416.9±1.61µs   105.1 GB/sec      1.01    420.2±1.68µs   104.3 GB/sec
primitive_all_null/zstd_parquet_2                  1.00    376.3±1.56µs   116.5 GB/sec      1.02    382.0±2.03µs   114.7 GB/sec
primitive_non_null/bloom_filter                    1.03    109.3±0.37ms   402.6 MB/sec      1.00    106.3±0.41ms   413.8 MB/sec
primitive_non_null/cdc                             1.01     91.6±0.27ms   480.2 MB/sec      1.00     91.1±0.26ms   483.1 MB/sec
primitive_non_null/default                         1.00     68.9±0.13ms   638.8 MB/sec      1.00     68.6±0.20ms   641.5 MB/sec
primitive_non_null/parquet_2                       1.01     90.6±0.12ms   485.8 MB/sec      1.00     89.9±0.18ms   489.4 MB/sec
primitive_non_null/zstd                            1.00     99.4±0.15ms   442.8 MB/sec      1.00     99.0±0.33ms   444.2 MB/sec
primitive_non_null/zstd_parquet_2                  1.00    123.3±0.14ms   356.8 MB/sec      1.00    123.2±0.46ms   357.2 MB/sec
primitive_sparse_99pct_null/bloom_filter           1.07     13.1±0.17ms     3.3 GB/sec      1.00     12.2±0.12ms     3.6 GB/sec
primitive_sparse_99pct_null/cdc                    1.02     30.2±0.26ms  1487.9 MB/sec      1.00     29.6±0.26ms  1517.0 MB/sec
primitive_sparse_99pct_null/default                1.04     11.2±0.08ms     3.9 GB/sec      1.00     10.8±0.05ms     4.1 GB/sec
primitive_sparse_99pct_null/parquet_2              1.02     11.0±0.14ms     4.0 GB/sec      1.00     10.8±0.04ms     4.1 GB/sec
primitive_sparse_99pct_null/zstd                   1.02     14.5±0.13ms     3.0 GB/sec      1.00     14.2±0.07ms     3.1 GB/sec
primitive_sparse_99pct_null/zstd_parquet_2         1.03     13.0±0.11ms     3.4 GB/sec      1.00     12.7±0.06ms     3.5 GB/sec
short_string_non_null/bloom_filter                 1.05     28.3±0.08ms   424.4 MB/sec      1.00     26.8±0.09ms   447.0 MB/sec
short_string_non_null/cdc                          1.01     19.6±0.04ms   611.7 MB/sec      1.00     19.5±0.05ms   615.2 MB/sec
short_string_non_null/default                      1.01     15.6±0.04ms   771.1 MB/sec      1.00     15.4±0.05ms   779.3 MB/sec
short_string_non_null/parquet_2                    1.01     25.8±0.04ms   465.1 MB/sec      1.00     25.7±0.10ms   467.7 MB/sec
short_string_non_null/zstd                         1.01     35.8±0.10ms   334.9 MB/sec      1.00     35.6±0.10ms   337.0 MB/sec
short_string_non_null/zstd_parquet_2               1.01     28.7±0.07ms   417.5 MB/sec      1.00     28.6±0.13ms   419.7 MB/sec
string/bloom_filter                                1.07   208.0±20.38ms     2.5 GB/sec      1.00    194.8±4.60ms     2.6 GB/sec
string/cdc                                         1.03    210.1±9.70ms     2.4 GB/sec      1.00    204.6±8.58ms     2.5 GB/sec
string/default                                     1.04   113.5±11.64ms     4.5 GB/sec      1.00   109.7±14.28ms     4.7 GB/sec
string/parquet_2                                   1.01    115.0±0.27ms     4.5 GB/sec      1.00    113.5±0.42ms     4.5 GB/sec
string/zstd                                        1.02   465.5±14.90ms  1126.1 MB/sec      1.00   456.5±14.49ms  1148.5 MB/sec
string/zstd_parquet_2                              1.00    385.8±6.18ms  1358.7 MB/sec      1.13    434.5±0.44ms  1206.7 MB/sec
string_and_binary_view/bloom_filter                1.04     65.4±0.22ms   493.1 MB/sec      1.00     62.6±0.26ms   514.8 MB/sec
string_and_binary_view/cdc                         1.01     58.9±0.10ms   547.2 MB/sec      1.00     58.2±0.14ms   554.1 MB/sec
string_and_binary_view/default                     1.02     48.4±0.10ms   666.7 MB/sec      1.00     47.6±0.10ms   677.4 MB/sec
string_and_binary_view/parquet_2                   1.01     59.7±0.13ms   539.9 MB/sec      1.00     58.9±0.11ms   547.6 MB/sec
string_and_binary_view/zstd                        1.01     85.4±0.12ms   377.6 MB/sec      1.00     84.6±0.20ms   381.1 MB/sec
string_and_binary_view/zstd_parquet_2              1.01     73.7±0.13ms   437.8 MB/sec      1.00     72.9±0.17ms   442.3 MB/sec
string_dictionary/bloom_filter                     1.06     87.8±2.10ms     2.9 GB/sec      1.00     83.0±0.44ms     3.1 GB/sec
string_dictionary/cdc                              1.00     48.2±0.24ms     5.3 GB/sec      1.64     79.2±0.80ms     3.3 GB/sec
string_dictionary/default                          1.03     43.7±0.21ms     5.9 GB/sec      1.00     42.6±0.24ms     6.1 GB/sec
string_dictionary/parquet_2                        1.00     48.0±0.18ms     5.4 GB/sec      1.00     48.1±0.09ms     5.4 GB/sec
string_dictionary/zstd                             1.01    207.8±0.40ms  1270.8 MB/sec      1.00    206.5±0.80ms  1278.9 MB/sec
string_dictionary/zstd_parquet_2                   1.00    192.1±0.22ms  1374.7 MB/sec      1.00    191.8±0.51ms  1377.4 MB/sec
string_non_null/bloom_filter                       1.01   242.6±22.87ms     2.1 GB/sec      1.00   239.5±32.06ms     2.1 GB/sec
string_non_null/cdc                                1.04   258.1±12.34ms  2029.9 MB/sec      1.00    248.9±6.14ms     2.1 GB/sec
string_non_null/default                            1.00   128.5±19.94ms     4.0 GB/sec      1.01   130.0±26.17ms     3.9 GB/sec
string_non_null/parquet_2                          1.03   117.8±11.38ms     4.3 GB/sec      1.00   114.5±15.93ms     4.5 GB/sec
string_non_null/zstd                               1.05   553.2±10.97ms   947.3 MB/sec      1.00    524.9±8.94ms   998.3 MB/sec
string_non_null/zstd_parquet_2                     1.00    493.6±9.21ms  1061.5 MB/sec      1.00    494.7±2.17ms  1059.3 MB/sec
string_ree/bloom_filter                            1.49    174.3±6.60ms    94.1 MB/sec      1.00    116.7±0.95ms   140.6 MB/sec
string_ree/cdc                                     1.26    240.4±3.33ms    68.3 MB/sec      1.00    191.4±1.96ms    85.7 MB/sec
string_ree/default                                 1.12    133.8±0.67ms   122.6 MB/sec      1.00   119.4±13.61ms   137.4 MB/sec
string_ree/parquet_2                               1.03    135.0±0.33ms   121.6 MB/sec      1.00    131.6±0.38ms   124.7 MB/sec
string_ree/zstd                                    1.41    191.5±1.08ms    85.7 MB/sec      1.00    136.1±0.50ms   120.6 MB/sec
string_ree/zstd_parquet_2                          1.03    149.8±0.55ms   109.5 MB/sec      1.00    145.9±0.30ms   112.5 MB/sec
string_ree_95pct_null/bloom_filter                 1.04     27.1±0.09ms    51.9 MB/sec      1.00     25.9±0.05ms    54.2 MB/sec
string_ree_95pct_null/cdc                          1.02     32.7±0.16ms    43.1 MB/sec      1.00     32.0±0.09ms    43.9 MB/sec
string_ree_95pct_null/default                      1.03     25.3±0.11ms    55.5 MB/sec      1.00     24.6±0.07ms    57.3 MB/sec
string_ree_95pct_null/parquet_2                    1.02     25.1±0.11ms    56.1 MB/sec      1.00     24.5±0.06ms    57.3 MB/sec
string_ree_95pct_null/zstd                         1.01     25.7±0.14ms    54.8 MB/sec      1.00     25.4±0.11ms    55.4 MB/sec
string_ree_95pct_null/zstd_parquet_2               1.01     25.5±0.10ms    55.1 MB/sec      1.00     25.3±0.06ms    55.7 MB/sec
struct_all_null/bloom_filter                       1.01    371.6±1.55µs    42.4 GB/sec      1.00    366.2±1.80µs    43.0 GB/sec
struct_all_null/cdc                                1.00      7.8±0.07ms     2.0 GB/sec      1.03      8.0±0.14ms  2023.3 MB/sec
struct_all_null/default                            1.00    115.9±0.61µs   135.8 GB/sec      1.00    116.0±0.86µs   135.7 GB/sec
struct_all_null/parquet_2                          1.00    120.4±0.59µs   130.8 GB/sec      1.01    121.1±0.90µs   130.0 GB/sec
struct_all_null/zstd                               1.00    179.1±0.84µs    87.9 GB/sec      1.00    178.8±0.82µs    88.1 GB/sec
struct_all_null/zstd_parquet_2                     1.00    161.2±0.77µs    97.7 GB/sec      1.01    162.4±0.78µs    96.9 GB/sec
struct_non_null/bloom_filter                       1.05     48.4±0.24ms   330.5 MB/sec      1.00     46.1±0.14ms   347.1 MB/sec
struct_non_null/cdc                                1.04     47.8±1.80ms   334.7 MB/sec      1.00     46.0±0.16ms   347.8 MB/sec
struct_non_null/default                            1.01     33.2±0.11ms   481.6 MB/sec      1.00     32.8±0.10ms   488.4 MB/sec
struct_non_null/parquet_2                          1.02     42.1±0.11ms   380.0 MB/sec      1.00     41.5±0.11ms   386.0 MB/sec
struct_non_null/zstd                               1.01     41.9±0.12ms   382.3 MB/sec      1.00     41.4±0.10ms   386.3 MB/sec
struct_non_null/zstd_parquet_2                     1.02     56.2±0.15ms   285.0 MB/sec      1.00     55.1±0.14ms   290.2 MB/sec
struct_sparse_99pct_null/bloom_filter              1.01      6.9±0.09ms     2.3 GB/sec      1.00      6.8±0.04ms     2.3 GB/sec
struct_sparse_99pct_null/cdc                       1.01     13.7±0.17ms  1175.0 MB/sec      1.00     13.7±0.09ms  1181.2 MB/sec
struct_sparse_99pct_null/default                   1.00      6.1±0.04ms     2.6 GB/sec      1.03      6.3±0.02ms     2.5 GB/sec
struct_sparse_99pct_null/parquet_2                 1.00      6.2±0.05ms     2.6 GB/sec      1.02      6.3±0.02ms     2.5 GB/sec
struct_sparse_99pct_null/zstd                      1.00      7.4±0.05ms     2.1 GB/sec      1.03      7.7±0.02ms     2.1 GB/sec
struct_sparse_99pct_null/zstd_parquet_2            1.00      6.9±0.04ms     2.3 GB/sec      1.03      7.0±0.02ms     2.2 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 3000.7s
Peak memory 2.9 GiB
Avg memory 2.5 GiB
CPU user 2869.6s
CPU sys 124.8s
Peak spill 0 B

branch

Metric Value
Wall time 3020.7s
Peak memory 2.8 GiB
Avg memory 2.6 GiB
CPU user 2870.8s
CPU sys 147.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

Local benchmark results (Apple M4 Pro, aarch64)

Since the CI runner has been noisy on this PR, I ran the same benchmarks locally as base (f8a57f8) → branch (6190b5a) → base again. The branch pass is bracketed in time so drift cancels, and comparing the two base passes against each other gives a per-benchmark noise floor to judge deltas against. 40 benchmarks, covering every group CI flagged plus controls.

Real changes — delta far outside that benchmark's own noise floor:

benchmark base branch delta noise floor
large_string_shared_prefix/delta_byte_array 64.4 ms 25.8 ms −60.0% 0.3%
string_ree/parquet_2 86.1 ms 45.0 ms −47.8% 1.4%
string_ree/zstd_parquet_2 94.4 ms 53.1 ms −43.7% 0.9%
large_string_distinct/delta_byte_array 43.9 ms 26.2 ms −40.4% 0.1%

The string_ree numbers were not something I expected, and they are worth calling out: the block-wise prefix scan helps ordinary data, not just the synthetic 2 MiB values. Run-end-encoded string columns expand to runs of identical consecutive values, so every value's shared-prefix scan runs the full length of the value — the same pathology, at normal string sizes. Splitting the two commits apart confirms where it comes from:

string_ree/parquet_2 string_ree/zstd_parquet_2
page-size fix alone −2.3% −1.3%
+ block-wise prefix scan −47.8% −43.7%

Everything else is flat. Of the remaining 36 benchmarks, 33 land within ±2%, and the three that don't (bool/default +4.2%, bool/zstd +4.4%, bool/bloom_filter +3.8%) have base-vs-base noise floors of 4–5% — they are 6–9 ms benchmarks and simply do not resolve at this magnitude.

The regressions CI reported do not reproduce. Specifically:

benchmark CI local (vs 3-pass noise floor)
list_primitive_non_null/parquet_2 +12.9% then +29.3% +0.0% (noise 0.9%)
string_dictionary/parquet_2 +34.9% then −0.2% +2.0% (noise 2.1%)
string_ree/bloom_filter +49.4% +0.6% (noise 2.0%)
string_ree/zstd +38.2% +0.8% (noise 1.2%)
string_ree/default +12.1% +0.2% (noise 1.8%)

Worth noting that string_ree/parquet_2 and string_ree/zstd_parquet_2 — which CI reported as regressions in one round — are in fact the second- and third-largest improvements in the suite.

Profile: where the time actually went

On large_string_shared_prefix/delta_byte_array before the prefix-scan change, 76% of total runtime was a single self-loop inside ByteArrayEncoder::write_gather — the byte-at-a-time shared-prefix scan. It cost nothing before the page-size fix only because flushing a page after every value cleared last_value, so the scan always exited at 0 and the encoding silently degenerated to PLAIN. Making the encoding work is what exposed the scan.

After the change that loop is gone from the profile, and the benchmark is 2.5× faster than it was before either commit.

Why 32-byte blocks

It is the widest block that both aarch64 and x86-64 still expand inline: at 64 bytes x86-64 (baseline SSE2) drops to an out-of-line bcmp call, which costs more than the extra width buys. On aarch64 every width from 16 up measures the same (~15× a byte-wise scan over a 2 MiB shared prefix), so 32 sits in the middle of a flat optimum rather than on a tuned peak. Going wider also hurts short prefixes badly — at 128 bytes, a 64-byte prefix falls back to the byte loop entirely and is as slow as no optimization at all.

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

@alamb @etseidl perf numbers are looking good, I think this is ready for review

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.

DELTA_BYTE_ARRAY stops deduplicating in parquet 59 for values larger than the page size limit

3 participants