Skip to content

fix(parquet): cut data page byte-budget mini-batches on exact value counts - #10554

Open
adriangb wants to merge 2 commits into
apache:mainfrom
pydantic:claude/parquet-exact-value-windows-10538
Open

fix(parquet): cut data page byte-budget mini-batches on exact value counts#10554
adriangb wants to merge 2 commits into
apache:mainfrom
pydantic:claude/parquet-exact-value-windows-10538

Conversation

@adriangb

@adriangb adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Important

Stacked on #10505 and #10745 — do not merge first. The commits below the top one belong to those PRs.
Review only this PR's own commit: cff2ca07fe...bd66b9ed68.
Once #10505 and #10745 merge I'll rebase and this PR's diff becomes clean on its own.

The problem

byte_budget_sub_batch_size asks the encoder how many values fit in a page byte budget, then converts that to a level count using the chunk-wide level:value ratio, rounded up:

(values_per_subbatch * chunk_size).div_ceil(vals_in_chunk).max(1)

For a chunk with no nulls this is exact. With one null in 17 levels it gives ceil(17/16) == 2, and write_granular_chunk slices the chunk into uniform two-level windows — most of which carry two values, i.e. twice what the budget allowed. The mechanism predates #10505; it dates to #9972.

Where the encoding compresses a value against its predecessor, that round-up costs whole values of output. 128 values of 2 MiB at one null in 16:

file size
ratio-scaled windows 16.78 MB
value-exact windows 2.10 MB

At 8 MiB values it is 64 MiB against 8 MiB, and the acceptance case in #10538 — 16 identical 64 KiB values with one null — goes from five pages storing ~5 values in full to one page storing ~1.

The fix

Have the chunker return the value count it already computed, and let write_granular_chunk end a window by walking definition levels until it has covered that many values. No ratio, no rounding.

Then apply it only where it changes the bytes written, because it is not free — value-exact windows roughly double the mini-batch count on a nullable column. Two conditions, both required:

The budget must be the data page budget. That one is a constant data_page_size_limit, so a one-value budget means the value itself overflows a page. The dictionary page budget is the limit minus what the dictionary already holds, so it shrinks toward zero as the dictionary fills and reaches a one-value budget on perfectly ordinary values; cutting exactly there measured +13.0% on string/default and +8.3% on string/parquet_2.

The encoding must compress against the previous value. PLAIN and DELTA_LENGTH_BYTE_ARRAY store a value identically wherever it lands, so value-exact windows leave their output byte for byte the same while doubling the page count — measured +27.6% on a nullable column for no reduction in output at all. The compresses_against_previous_value flag #10505 added already marks exactly the right set.

What the other paths give up

A ratio-scaled window spans ceil(values × levels / values_in_chunk) levels. Where one value already fills the budget that covers at most two values, whatever the null density, and exactly one wherever the ratio is a whole number. Measured against a 1 MiB limit:

values nulls encoding max page, ratio max page, value-exact floor
2 MiB 1-in-16 PLAIN 4.00× 2.00× 2.00×
2 MiB 1-in-4 PLAIN 4.00× 2.00× 2.00×
2 MiB 1-in-2 PLAIN 2.00× 2.00× 2.00×
8 MiB 1-in-16 PLAIN 16.00× 8.00× 8.00×

The floor is what a page must hold: one value. So the concession is a factor of two above an unavoidable minimum, it does not vary with null density, and — the property #9972 exists for — it does not scale with write_batch_size. Before #9972 a page took a whole mini-batch: 1024 × 2 MiB, roughly 2000× the limit.

Measurements

Base is #10505's head (measured at fd806be5d3; both branches have since been rebased onto main, with the trees verified identical across the rebase), so these isolate this PR. Local, run base → branch → base on an idle machine, with the two base passes as a per-benchmark noise floor. Benchmarks are the ones added in #10561.

benchmark before the encoding gate after noise
..._nullable/plain +27.6% −0.8% 0.4%
..._nullable_trailing/delta_byte_array −27.8% −27.5% 0.8%
..._nullable/delta_byte_array +7.6% +7.4% 0.0%
..._nullable_dense/delta_byte_array −0.2% +0.6% 1.0%
large_string_distinct_nullable/delta_byte_array +3.1% +11.3% 2.0%
medium_string_shared_prefix_nullable/delta_byte_array +1.3% +1.7% 1.2%

Two costs remain, both on DELTA_BYTE_ARRAY where the byte win does not materialise:

  • +7.4% where output was already close to deduplicated (16.78 MB → 2.10 MB is still a 8× reduction, so this one pays for itself).
  • +11.3% where the values share no prefix at all, and the file is 251.670105 MB against 251.670637 MB — no reduction. The writer cannot know in advance whether values will share prefixes, so this is the premium for the 8× win when they do.

Verified byte-identical output — same length, same hash — between base and this PR for dictionary-encoded nullable columns (four shapes) and for repeated columns (both encodings), confirming those paths are untouched rather than merely unchanged in aggregate.

Scope

Repeated columns are unchanged: records cannot span pages, so a record holding several over-limit values still exceeds the budget. That is inherent to the format.

Tests

  • test_column_writer_delta_byte_array_nullable_shared_prefix_dedup — re-pinned from [2, 2, 2, 2, 9] to [17] and renamed, the layout fix(parquet): keep DELTA_BYTE_ARRAY dedup for values larger than the page size limit #10505 left a marker for.
  • test_column_writer_caps_page_size_with_sparse_nulls — pins two values per page under PLAIN, so it fails both if the encoding gate is dropped (pages would hold one) and if the bound is lost (they would hold many).

Full parquet suite green (1312 lib + integration), fmt and clippy -D warnings clean.

Note on #10505

Its bool_to_int_with_if trips cargo clippy -- -D warnings, which CI runs — worth fixing on that branch too. Corrected here as part of editing that test.

🤖 Generated with Claude Code

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Aug 4, 2026
@adriangb
adriangb force-pushed the claude/parquet-exact-value-windows-10538 branch from 967f1b7 to 5af13c0 Compare August 4, 2026 22:55
@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: bd5237f

2 similar comments
@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: bd5237f

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: bd5237f

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: main

2 similar comments
@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: main

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

baseline:
ref: main

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Run configuration
run benchmark arrow_writer
baseline:
  ref: "bd5237f38ca3229694f42dd62139435d41eb93f5"

Last 20 lines of output:

Click to expand
Cloning into '/workspace/arrow-rs-branch'...
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/10554/head -> claude/parquet-exact-value-windows-10538
 * branch            main       -> FETCH_HEAD
Switched to branch 'claude/parquet-exact-value-windows-10538'
Submodule path 'parquet-testing': checked out '735451181735bdd40de9a3ce85699cc8e016aed3'
Submodule path 'testing': checked out '735ae7128d571398dd798d7ff004adebeb342883'
Submodule 'parquet-testing' (https://github.com/apache/parquet-testing.git) registered for path 'parquet-testing'
Submodule 'testing' (https://github.com/apache/arrow-testing) registered for path 'testing'
Cloning into '/workspace/arrow-rs-branch/parquet-testing'...
Cloning into '/workspace/arrow-rs-branch/testing'...
b5471c192c4a2c1f274f278b6882e5eebefdca9a
    Updating crates.io index
     Locking 0 packages to latest Rust 1.88 compatible versions
note: pass `--verbose` to see 3 unchanged dependencies behind latest
Cloning into '/workspace/arrow-rs-base'...
From https://github.com/apache/arrow-rs
 * branch            refs/pull/10554/head -> FETCH_HEAD
fatal: reference is not a tree: bd5237f38ca3229694f42dd62139435d41eb93f5

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Run configuration
run benchmark arrow_writer
baseline:
  ref: "bd5237f38ca3229694f42dd62139435d41eb93f5"

Last 20 lines of output:

Click to expand
Cloning into '/workspace/arrow-rs-branch'...
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/10554/head -> claude/parquet-exact-value-windows-10538
 * branch            main       -> FETCH_HEAD
Switched to branch 'claude/parquet-exact-value-windows-10538'
Submodule path 'parquet-testing': checked out '735451181735bdd40de9a3ce85699cc8e016aed3'
Submodule path 'testing': checked out '735ae7128d571398dd798d7ff004adebeb342883'
Submodule 'parquet-testing' (https://github.com/apache/parquet-testing.git) registered for path 'parquet-testing'
Submodule 'testing' (https://github.com/apache/arrow-testing) registered for path 'testing'
Cloning into '/workspace/arrow-rs-branch/parquet-testing'...
Cloning into '/workspace/arrow-rs-branch/testing'...
b5471c192c4a2c1f274f278b6882e5eebefdca9a
    Updating crates.io index
     Locking 0 packages to latest Rust 1.88 compatible versions
note: pass `--verbose` to see 3 unchanged dependencies behind latest
Cloning into '/workspace/arrow-rs-base'...
From https://github.com/apache/arrow-rs
 * branch            refs/pull/10554/head -> FETCH_HEAD
fatal: reference is not a tree: bd5237f38ca3229694f42dd62139435d41eb93f5

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Run configuration
run benchmark arrow_writer
baseline:
  ref: "bd5237f38ca3229694f42dd62139435d41eb93f5"

Last 20 lines of output:

Click to expand
Cloning into '/workspace/arrow-rs-branch'...
From https://github.com/apache/arrow-rs
 * [new ref]         refs/pull/10554/head -> claude/parquet-exact-value-windows-10538
 * branch            main       -> FETCH_HEAD
Switched to branch 'claude/parquet-exact-value-windows-10538'
Submodule path 'parquet-testing': checked out '735451181735bdd40de9a3ce85699cc8e016aed3'
Submodule path 'testing': checked out '735ae7128d571398dd798d7ff004adebeb342883'
Submodule 'parquet-testing' (https://github.com/apache/parquet-testing.git) registered for path 'parquet-testing'
Submodule 'testing' (https://github.com/apache/arrow-testing) registered for path 'testing'
Cloning into '/workspace/arrow-rs-branch/parquet-testing'...
Cloning into '/workspace/arrow-rs-branch/testing'...
b5471c192c4a2c1f274f278b6882e5eebefdca9a
    Updating crates.io index
     Locking 0 packages to latest Rust 1.88 compatible versions
note: pass `--verbose` to see 3 unchanged dependencies behind latest
Cloning into '/workspace/arrow-rs-base'...
From https://github.com/apache/arrow-rs
 * branch            refs/pull/10554/head -> FETCH_HEAD
fatal: reference is not a tree: bd5237f38ca3229694f42dd62139435d41eb93f5

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-c5185561213-1430-dfjrk 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 claude/parquet-exact-value-windows-10538 (5af13c0) to main diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "main"

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-c5185561100-1431-9zlgf 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 claude/parquet-exact-value-windows-10538 (5af13c0) to main diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "main"

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-c5185561005-1432-npkz4 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 claude/parquet-exact-value-windows-10538 (5af13c0) to main diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "main"

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

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

baseline:
ref: fd806be

2 similar comments
@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

baseline:
ref: fd806be

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer writer_overhead

baseline:
ref: fd806be

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark writer_overhead

baseline:
ref: main

2 similar comments
@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark writer_overhead

baseline:
ref: main

@adriangb

adriangb commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark writer_overhead

baseline:
ref: main

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5185596632-1433-2nhkq 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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-c5185596632-1434-x9rjf 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"
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                         claude_parquet-exact-value-windows-10538    main
-----                         ----------------------------------------    ----
writer_overhead/10000_cols    1.02     40.6±1.92ms        ? ?/sec         1.00     40.0±0.34ms        ? ?/sec
writer_overhead/1000_cols     1.00      3.7±0.02ms        ? ?/sec         1.00      3.7±0.02ms        ? ?/sec
writer_overhead/5000_cols     1.00     19.1±0.18ms        ? ?/sec         1.00     19.2±0.16ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 56.3 MiB
Avg memory 33.7 MiB
CPU user 32.8s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 35.0s
Peak memory 56.3 MiB
Avg memory 33.6 MiB
CPU user 31.8s
CPU sys 0.2s
Peak spill 0 B

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-c5185596715-1435-xmnsk 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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-c5185596818-1438-ndfzh 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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-c5185596818-1437-vg9lk 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark arrow_writer
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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-c5185597826-1439-m5lsh 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 claude/parquet-exact-value-windows-10538 (5af13c0) to main diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "main"

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-c5185596715-1436-6skhd 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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"

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 claude/parquet-exact-value-windows-10538 (5af13c0) to fd806be diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "fd806be5d3c0ac522fd9e3e0b3dd70b08e527dd8"
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                         claude_parquet-exact-value-windows-10538    main
-----                         ----------------------------------------    ----
writer_overhead/10000_cols    1.01     42.1±3.50ms        ? ?/sec         1.00     41.7±3.09ms        ? ?/sec
writer_overhead/1000_cols     1.00      3.7±0.02ms        ? ?/sec         1.02      3.8±0.12ms        ? ?/sec
writer_overhead/5000_cols     1.05     20.5±1.68ms        ? ?/sec         1.00     19.6±0.76ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 40.0s
Peak memory 56.3 MiB
Avg memory 31.0 MiB
CPU user 33.8s
CPU sys 0.0s
Peak spill 0 B

branch

Metric Value
Wall time 35.0s
Peak memory 56.3 MiB
Avg memory 34.8 MiB
CPU user 32.8s
CPU sys 0.2s
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 claude/parquet-exact-value-windows-10538 (5af13c0) to main diff

Run configuration
run benchmark writer_overhead
baseline:
  ref: "main"
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                         claude_parquet-exact-value-windows-10538    main
-----                         ----------------------------------------    ----
writer_overhead/10000_cols    1.24     51.7±1.67ms        ? ?/sec         1.00     41.6±3.03ms        ? ?/sec
writer_overhead/1000_cols     1.02      3.9±0.10ms        ? ?/sec         1.00      3.8±0.07ms        ? ?/sec
writer_overhead/5000_cols     1.00     20.9±1.25ms        ? ?/sec         1.17     24.5±1.23ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 35.0s
Peak memory 56.2 MiB
Avg memory 31.5 MiB
CPU user 30.6s
CPU sys 2.3s
Peak spill 0 B

branch

Metric Value
Wall time 30.0s
Peak memory 56.3 MiB
Avg memory 28.0 MiB
CPU user 26.4s
CPU sys 1.7s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

env:
BENCH_FILTER: "^(small|medium|large)string(shared_prefix|partial_prefix|distinct)"
baseline:
ref: 0a8fdd5

1 similar comment
@adriangb

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

env:
BENCH_FILTER: "^(small|medium|large)string(shared_prefix|partial_prefix|distinct)"
baseline:
ref: 0a8fdd5

@adriangb

Copy link
Copy Markdown
Contributor Author

run benchmark arrow_writer

env:
BENCH_FILTER: "^(small|medium|large)string(shared_prefix|partial_prefix|distinct)"
baseline:
ref: 0a8fdd5
changed:
ref: 0a8fdd5

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5425959312-1966-6wfx4 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_page_windows
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-c5425959853-1967-wv7hj 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_page_windows
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-c5425960558-1969-47rf2 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

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-c5425959570-1968-ssnff 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_page_windows
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-c5425960365-1970-829lt 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_page_windows
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-c5425960125-1971-wq9px 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench writer_page_windows
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-c5425961299-1972-wdngr 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                                     claude_parquet-exact-value-windows-10538    main
-----                                                                     ----------------------------------------    ----
dictionary_fallback_string_distinct_nullable/fallback_delta_byte_array    1.01     33.7±0.18ms  1901.4 MB/sec         1.00     33.3±0.35ms  1923.5 MB/sec
dictionary_fallback_string_distinct_nullable/fallback_plain               1.02     25.3±0.15ms     2.5 GB/sec         1.00     24.7±0.22ms     2.5 GB/sec
dictionary_fallback_string_distinct_nullable/pinned_delta_byte_array      1.00     28.9±0.19ms     2.2 GB/sec         1.13     32.5±0.30ms  1967.4 MB/sec
small_page_limit_string_distinct_nullable/delta_byte_array                1.04     28.4±1.49ms     2.2 GB/sec         1.00     27.2±0.23ms     2.3 GB/sec
small_page_limit_string_distinct_nullable/plain                           1.08     28.4±0.60ms     2.2 GB/sec         1.00     26.2±1.05ms     2.4 GB/sec
small_page_limit_string_shared_prefix_nullable/delta_byte_array           1.22      9.6±0.18ms     6.5 GB/sec         1.00      7.9±0.12ms     7.9 GB/sec
small_page_limit_string_shared_prefix_nullable/plain                      1.01     30.4±0.58ms     2.1 GB/sec         1.00     30.2±0.22ms     2.1 GB/sec
subpage_string_distinct_nullable_128kib/delta_byte_array                  1.00     28.1±0.24ms     2.2 GB/sec         1.03     28.8±1.06ms     2.2 GB/sec
subpage_string_distinct_nullable_128kib/plain                             1.06     26.1±1.09ms     2.4 GB/sec         1.00     24.6±0.28ms     2.5 GB/sec
subpage_string_distinct_nullable_512kib/delta_byte_array                  1.00     30.9±0.27ms     2.0 GB/sec         1.01     31.3±0.21ms  2045.3 MB/sec
subpage_string_distinct_nullable_512kib/plain                             1.01     26.8±0.19ms     2.3 GB/sec         1.00     26.5±0.18ms     2.4 GB/sec
subpage_string_shared_prefix_nullable_128kib/delta_byte_array             1.02      8.8±0.60ms     7.1 GB/sec         1.00      8.6±0.19ms     7.3 GB/sec
subpage_string_shared_prefix_nullable_128kib/plain                        1.12     33.8±0.25ms  1891.2 MB/sec         1.00     30.3±0.21ms     2.1 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 140.0s
Peak memory 147.2 MiB
Avg memory 93.1 MiB
CPU user 61.7s
CPU sys 73.1s
Peak spill 0 B

branch

Metric Value
Wall time 130.0s
Peak memory 145.0 MiB
Avg memory 91.7 MiB
CPU user 58.2s
CPU sys 68.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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                                     claude_parquet-exact-value-windows-10538    main
-----                                                                     ----------------------------------------    ----
dictionary_fallback_string_distinct_nullable/fallback_delta_byte_array    1.02     32.7±0.17ms  1957.7 MB/sec         1.00     32.1±0.24ms  1995.1 MB/sec
dictionary_fallback_string_distinct_nullable/fallback_plain               1.02     24.0±0.15ms     2.6 GB/sec         1.00     23.5±0.24ms     2.7 GB/sec
dictionary_fallback_string_distinct_nullable/pinned_delta_byte_array      1.00     28.3±0.14ms     2.2 GB/sec         1.11     31.4±0.25ms  2036.8 MB/sec
small_page_limit_string_distinct_nullable/delta_byte_array                1.05     27.7±0.91ms     2.3 GB/sec         1.00     26.5±0.19ms     2.4 GB/sec
small_page_limit_string_distinct_nullable/plain                           1.00     25.7±0.83ms     2.4 GB/sec         1.00     25.7±1.03ms     2.4 GB/sec
small_page_limit_string_shared_prefix_nullable/delta_byte_array           1.15      9.1±0.12ms     6.8 GB/sec         1.00      7.9±0.09ms     7.9 GB/sec
small_page_limit_string_shared_prefix_nullable/plain                      1.00     28.3±0.94ms     2.2 GB/sec         1.04     29.5±0.22ms     2.1 GB/sec
subpage_string_distinct_nullable_128kib/delta_byte_array                  1.02     27.6±0.22ms     2.3 GB/sec         1.00     27.0±0.18ms     2.3 GB/sec
subpage_string_distinct_nullable_128kib/plain                             1.08     25.7±1.09ms     2.4 GB/sec         1.00     23.8±0.20ms     2.6 GB/sec
subpage_string_distinct_nullable_512kib/delta_byte_array                  1.03     30.7±1.15ms     2.0 GB/sec         1.00     29.7±0.16ms     2.1 GB/sec
subpage_string_distinct_nullable_512kib/plain                             1.03     26.3±0.15ms     2.4 GB/sec         1.00     25.5±0.20ms     2.4 GB/sec
subpage_string_shared_prefix_nullable_128kib/delta_byte_array             1.00      8.4±0.16ms     7.4 GB/sec         1.01      8.5±0.15ms     7.4 GB/sec
subpage_string_shared_prefix_nullable_128kib/plain                        1.03     30.2±0.14ms     2.1 GB/sec         1.00     29.2±0.14ms     2.1 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 135.0s
Peak memory 137.4 MiB
Avg memory 96.8 MiB
CPU user 60.6s
CPU sys 72.3s
Peak spill 0 B

branch

Metric Value
Wall time 135.0s
Peak memory 137.2 MiB
Avg memory 94.1 MiB
CPU user 61.2s
CPU sys 71.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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                                     claude_parquet-exact-value-windows-10538    main
-----                                                                     ----------------------------------------    ----
dictionary_fallback_string_distinct_nullable/fallback_delta_byte_array    1.01     32.8±0.19ms  1951.0 MB/sec         1.00     32.6±0.15ms  1963.5 MB/sec
dictionary_fallback_string_distinct_nullable/fallback_plain               1.03     25.3±1.68ms     2.5 GB/sec         1.00     24.6±1.32ms     2.5 GB/sec
dictionary_fallback_string_distinct_nullable/pinned_delta_byte_array      1.07     34.4±2.01ms  1861.8 MB/sec         1.00     32.1±0.47ms  1992.7 MB/sec
small_page_limit_string_distinct_nullable/delta_byte_array                1.14     31.1±0.86ms     2.0 GB/sec         1.00     27.2±0.43ms     2.3 GB/sec
small_page_limit_string_distinct_nullable/plain                           1.00     24.8±2.87ms     2.5 GB/sec         1.15     28.6±2.25ms     2.2 GB/sec
small_page_limit_string_shared_prefix_nullable/delta_byte_array           1.00      8.0±0.59ms     7.8 GB/sec         1.03      8.3±0.72ms     7.6 GB/sec
small_page_limit_string_shared_prefix_nullable/plain                      1.02     30.7±0.13ms     2.0 GB/sec         1.00     30.2±0.15ms     2.1 GB/sec
subpage_string_distinct_nullable_128kib/delta_byte_array                  1.09     29.8±1.99ms     2.1 GB/sec         1.00     27.4±0.45ms     2.3 GB/sec
subpage_string_distinct_nullable_128kib/plain                             1.00     24.9±0.75ms     2.5 GB/sec         1.10     27.3±1.14ms     2.3 GB/sec
subpage_string_distinct_nullable_512kib/delta_byte_array                  1.00     31.2±1.53ms     2.0 GB/sec         1.01     31.6±1.68ms  2028.1 MB/sec
subpage_string_distinct_nullable_512kib/plain                             1.00     26.2±0.19ms     2.4 GB/sec         1.00     26.3±1.08ms     2.4 GB/sec
subpage_string_shared_prefix_nullable_128kib/delta_byte_array             1.10      8.7±1.06ms     7.2 GB/sec         1.00      7.9±0.12ms     7.9 GB/sec
subpage_string_shared_prefix_nullable_128kib/plain                        1.00     30.6±0.33ms     2.0 GB/sec         1.01     31.0±1.76ms     2.0 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 135.0s
Peak memory 147.2 MiB
Avg memory 92.6 MiB
CPU user 58.6s
CPU sys 71.3s
Peak spill 0 B

branch

Metric Value
Wall time 135.0s
Peak memory 145.7 MiB
Avg memory 90.3 MiB
CPU user 59.8s
CPU sys 71.3s
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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                                     claude_parquet-exact-value-windows-10538    main
-----                                                                     ----------------------------------------    ----
dictionary_fallback_string_distinct_nullable/fallback_delta_byte_array    1.00     32.6±0.19ms  1962.3 MB/sec         1.01     32.8±0.51ms  1951.3 MB/sec
dictionary_fallback_string_distinct_nullable/fallback_plain               1.11     27.2±1.99ms     2.3 GB/sec         1.00     24.6±1.38ms     2.5 GB/sec
dictionary_fallback_string_distinct_nullable/pinned_delta_byte_array      1.00     29.5±1.25ms     2.1 GB/sec         1.13     33.4±2.04ms  1917.4 MB/sec
small_page_limit_string_distinct_nullable/delta_byte_array                1.11     29.8±2.23ms     2.1 GB/sec         1.00     26.8±0.13ms     2.3 GB/sec
small_page_limit_string_distinct_nullable/plain                           1.00     27.1±0.50ms     2.3 GB/sec         1.06     28.7±1.95ms     2.2 GB/sec
small_page_limit_string_shared_prefix_nullable/delta_byte_array           1.04      8.5±0.21ms     7.4 GB/sec         1.00      8.2±0.67ms     7.7 GB/sec
small_page_limit_string_shared_prefix_nullable/plain                      1.00     30.0±0.62ms     2.1 GB/sec         1.03     31.0±1.27ms     2.0 GB/sec
subpage_string_distinct_nullable_128kib/delta_byte_array                  1.07     28.9±1.69ms     2.2 GB/sec         1.00     27.0±0.16ms     2.3 GB/sec
subpage_string_distinct_nullable_128kib/plain                             1.00     25.3±1.05ms     2.5 GB/sec         1.07     27.1±1.44ms     2.3 GB/sec
subpage_string_distinct_nullable_512kib/delta_byte_array                  1.00     30.1±0.20ms     2.1 GB/sec         1.05     31.7±1.81ms  2021.9 MB/sec
subpage_string_distinct_nullable_512kib/plain                             1.02     26.6±1.17ms     2.3 GB/sec         1.00     26.2±0.43ms     2.4 GB/sec
subpage_string_shared_prefix_nullable_128kib/delta_byte_array             1.00      7.7±0.10ms     8.1 GB/sec         1.01      7.8±0.11ms     8.0 GB/sec
subpage_string_shared_prefix_nullable_128kib/plain                        1.10     34.5±2.15ms  1854.0 MB/sec         1.00     31.3±1.90ms  2043.4 MB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 140.0s
Peak memory 140.8 MiB
Avg memory 95.1 MiB
CPU user 60.8s
CPU sys 74.0s
Peak spill 0 B

branch

Metric Value
Wall time 135.0s
Peak memory 142.0 MiB
Avg memory 92.1 MiB
CPU user 58.0s
CPU sys 71.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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark writer_page_windows
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                                     claude_parquet-exact-value-windows-10538    main
-----                                                                     ----------------------------------------    ----
dictionary_fallback_string_distinct_nullable/fallback_delta_byte_array    1.03     37.5±0.20ms  1707.5 MB/sec         1.00     36.4±0.25ms  1756.8 MB/sec
dictionary_fallback_string_distinct_nullable/fallback_plain               1.04     28.0±0.16ms     2.2 GB/sec         1.00     26.9±0.16ms     2.3 GB/sec
dictionary_fallback_string_distinct_nullable/pinned_delta_byte_array      1.03     36.8±0.17ms  1740.1 MB/sec         1.00     35.7±0.21ms  1790.5 MB/sec
small_page_limit_string_distinct_nullable/delta_byte_array                1.08     32.2±0.62ms  1986.7 MB/sec         1.00     29.8±0.17ms     2.1 GB/sec
small_page_limit_string_distinct_nullable/plain                           1.01     28.9±2.59ms     2.2 GB/sec         1.00     28.5±1.47ms     2.2 GB/sec
small_page_limit_string_shared_prefix_nullable/delta_byte_array           1.01      8.8±0.05ms     7.1 GB/sec         1.00      8.7±0.06ms     7.2 GB/sec
small_page_limit_string_shared_prefix_nullable/plain                      1.23     34.0±0.18ms  1883.2 MB/sec         1.00     27.5±3.00ms     2.3 GB/sec
subpage_string_distinct_nullable_128kib/delta_byte_array                  1.05     31.8±0.19ms  2015.3 MB/sec         1.00     30.2±0.26ms     2.1 GB/sec
subpage_string_distinct_nullable_128kib/plain                             1.07     28.3±0.16ms     2.2 GB/sec         1.00     26.3±0.18ms     2.4 GB/sec
subpage_string_distinct_nullable_512kib/delta_byte_array                  1.02     34.8±0.24ms  1837.3 MB/sec         1.00     34.1±0.31ms  1877.0 MB/sec
subpage_string_distinct_nullable_512kib/plain                             1.02     29.5±0.23ms     2.1 GB/sec         1.00     28.9±0.29ms     2.2 GB/sec
subpage_string_shared_prefix_nullable_128kib/delta_byte_array             1.03     10.8±0.09ms     5.8 GB/sec         1.00     10.4±0.09ms     6.0 GB/sec
subpage_string_shared_prefix_nullable_128kib/plain                        1.04     34.3±0.19ms  1866.9 MB/sec         1.00     32.8±0.19ms  1948.5 MB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 135.0s
Peak memory 142.7 MiB
Avg memory 97.2 MiB
CPU user 60.4s
CPU sys 72.4s
Peak spill 0 B

branch

Metric Value
Wall time 145.0s
Peak memory 145.9 MiB
Avg memory 93.4 MiB
CPU user 60.4s
CPU sys 77.8s
Peak spill 0 B

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-c5425961061-1973-xkjhc 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

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-c5425960797-1974-94zgr 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"

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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                            claude_parquet-exact-value-windows-10538    main
-----                                                            ----------------------------------------    ----
large_string_distinct/delta_byte_array                           1.00     62.7±0.75ms     4.0 GB/sec         1.01     63.4±0.79ms     3.9 GB/sec
large_string_distinct/plain                                      1.00     60.6±0.55ms     4.1 GB/sec         1.02     62.1±0.94ms     4.0 GB/sec
large_string_distinct_nullable/delta_byte_array                  1.03     58.1±0.92ms     4.3 GB/sec         1.00     56.4±0.99ms     4.4 GB/sec
large_string_shared_prefix/delta_byte_array                      1.00     43.6±0.38ms     5.7 GB/sec         1.02     44.6±0.52ms     5.6 GB/sec
large_string_shared_prefix/plain                                 1.00     94.7±0.82ms     2.6 GB/sec         1.02     96.7±1.30ms     2.6 GB/sec
large_string_shared_prefix_list/delta_byte_array                 1.00     54.7±0.52ms     4.6 GB/sec         1.04     57.0±0.84ms     4.4 GB/sec
large_string_shared_prefix_nullable/delta_byte_array             1.00     41.0±0.38ms     6.1 GB/sec         1.11     45.6±0.74ms     5.5 GB/sec
large_string_shared_prefix_nullable/plain                        1.00     62.5±0.62ms     4.0 GB/sec         1.02     63.7±0.59ms     3.9 GB/sec
large_string_shared_prefix_nullable_dense/delta_byte_array       1.00     22.1±0.20ms     5.7 GB/sec         1.04     22.9±0.26ms     5.5 GB/sec
large_string_shared_prefix_nullable_trailing/delta_byte_array    1.00     41.0±0.69ms     6.1 GB/sec         1.73     70.8±1.12ms     3.5 GB/sec
medium_string_shared_prefix_nullable/delta_byte_array            1.00     35.8±0.13ms     7.0 GB/sec         1.02     36.6±0.29ms     6.8 GB/sec
small_string_distinct/delta_byte_array                           1.04    998.6±5.35µs     7.9 GB/sec         1.00    961.9±5.03µs     8.2 GB/sec
small_string_distinct/plain                                      1.00    687.6±5.63µs    11.4 GB/sec         1.02    703.5±9.46µs    11.1 GB/sec
small_string_partial_prefix/delta_byte_array                     1.00   991.0±11.43µs     7.9 GB/sec         1.02  1010.4±20.46µs     7.8 GB/sec
small_string_partial_prefix/plain                                1.00   930.9±11.83µs     8.4 GB/sec         1.03   961.0±11.07µs     8.2 GB/sec
small_string_shared_prefix/delta_byte_array                      1.01   1013.5±8.28µs     7.7 GB/sec         1.00   1000.4±6.46µs     7.8 GB/sec
small_string_shared_prefix/plain                                 1.00   1036.0±4.65µs     7.6 GB/sec         1.02   1060.1±5.62µs     7.4 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 215.1s
Peak memory 2.3 GiB
Avg memory 1.6 GiB
CPU user 210.8s
CPU sys 1.3s
Peak spill 0 B

branch

Metric Value
Wall time 210.0s
Peak memory 2.1 GiB
Avg memory 1.5 GiB
CPU user 204.1s
CPU sys 1.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 0a8fdd5 (0a8fdd5) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
changed:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                            claude_parquet-exact-value-windows-10538    main
-----                                                            ----------------------------------------    ----
large_string_distinct/delta_byte_array                           1.00     59.9±0.69ms     4.2 GB/sec         1.01     60.7±0.37ms     4.1 GB/sec
large_string_distinct/plain                                      1.00     59.8±0.54ms     4.2 GB/sec         1.02     60.8±0.54ms     4.1 GB/sec
large_string_distinct_nullable/delta_byte_array                  1.00     52.3±0.37ms     4.8 GB/sec         1.02     53.1±0.28ms     4.7 GB/sec
large_string_shared_prefix/delta_byte_array                      1.00     42.2±0.07ms     5.9 GB/sec         1.02     43.3±0.13ms     5.8 GB/sec
large_string_shared_prefix/plain                                 1.00     92.7±0.65ms     2.7 GB/sec         1.02     94.4±0.54ms     2.6 GB/sec
large_string_shared_prefix_list/delta_byte_array                 1.00     53.7±0.28ms     4.7 GB/sec         1.02     54.7±0.17ms     4.6 GB/sec
large_string_shared_prefix_nullable/delta_byte_array             1.00     42.4±0.11ms     5.9 GB/sec         1.03     43.7±0.17ms     5.7 GB/sec
large_string_shared_prefix_nullable/plain                        1.00     61.2±0.50ms     4.1 GB/sec         1.01     61.7±0.18ms     4.1 GB/sec
large_string_shared_prefix_nullable_dense/delta_byte_array       1.00     21.6±0.08ms     5.8 GB/sec         1.03     22.3±0.06ms     5.6 GB/sec
large_string_shared_prefix_nullable_trailing/delta_byte_array    1.00     66.2±0.19ms     3.8 GB/sec         1.02     67.7±0.27ms     3.7 GB/sec
medium_string_shared_prefix_nullable/delta_byte_array            1.00     35.3±0.06ms     7.1 GB/sec         1.01     35.5±0.08ms     7.0 GB/sec
small_string_distinct/delta_byte_array                           1.01    946.3±8.35µs     8.3 GB/sec         1.00    935.3±9.21µs     8.4 GB/sec
small_string_distinct/plain                                      1.00    657.1±3.18µs    11.9 GB/sec         1.05    688.4±4.16µs    11.4 GB/sec
small_string_partial_prefix/delta_byte_array                     1.00    964.2±1.80µs     8.1 GB/sec         1.00    965.0±3.65µs     8.1 GB/sec
small_string_partial_prefix/plain                                1.00    890.6±2.99µs     8.8 GB/sec         1.05    930.7±2.88µs     8.4 GB/sec
small_string_shared_prefix/delta_byte_array                      1.01    986.4±1.77µs     8.0 GB/sec         1.00    977.6±2.70µs     8.0 GB/sec
small_string_shared_prefix/plain                                 1.00   1012.9±5.84µs     7.7 GB/sec         1.03   1045.3±9.98µs     7.5 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 220.0s
Peak memory 2.3 GiB
Avg memory 1.6 GiB
CPU user 214.7s
CPU sys 1.3s
Peak spill 0 B

branch

Metric Value
Wall time 215.0s
Peak memory 2.1 GiB
Avg memory 1.5 GiB
CPU user 210.1s
CPU sys 1.2s
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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                            claude_parquet-exact-value-windows-10538    main
-----                                                            ----------------------------------------    ----
large_string_distinct/delta_byte_array                           1.00     59.5±0.79ms     4.2 GB/sec         1.04     61.7±7.10ms     4.1 GB/sec
large_string_distinct/plain                                      1.01     60.2±0.56ms     4.2 GB/sec         1.00     59.3±0.87ms     4.2 GB/sec
large_string_distinct_nullable/delta_byte_array                  1.05     55.7±0.84ms     4.5 GB/sec         1.00     53.2±0.75ms     4.7 GB/sec
large_string_shared_prefix/delta_byte_array                      1.00     42.6±0.42ms     5.9 GB/sec         1.00     42.5±0.16ms     5.9 GB/sec
large_string_shared_prefix/plain                                 1.01     92.2±0.42ms     2.7 GB/sec         1.00     91.7±0.70ms     2.7 GB/sec
large_string_shared_prefix_list/delta_byte_array                 1.00     53.8±0.26ms     4.6 GB/sec         1.00     53.9±0.39ms     4.6 GB/sec
large_string_shared_prefix_nullable/delta_byte_array             1.00     40.1±0.20ms     6.2 GB/sec         1.06     42.4±0.18ms     5.9 GB/sec
large_string_shared_prefix_nullable/plain                        1.01     61.0±0.46ms     4.1 GB/sec         1.00     60.3±0.33ms     4.1 GB/sec
large_string_shared_prefix_nullable_dense/delta_byte_array       1.00     21.7±0.14ms     5.7 GB/sec         1.00     21.6±0.27ms     5.8 GB/sec
large_string_shared_prefix_nullable_trailing/delta_byte_array    1.00     40.2±0.25ms     6.2 GB/sec         1.67     67.0±0.71ms     3.7 GB/sec
medium_string_shared_prefix_nullable/delta_byte_array            1.06     40.1±0.27ms     6.2 GB/sec         1.00     37.9±0.14ms     6.6 GB/sec
small_string_distinct/delta_byte_array                           1.01   953.4±14.29µs     8.2 GB/sec         1.00    940.5±8.89µs     8.3 GB/sec
small_string_distinct/plain                                      1.01    663.6±4.30µs    11.8 GB/sec         1.00    653.9±5.47µs    12.0 GB/sec
small_string_partial_prefix/delta_byte_array                     1.02    966.1±6.37µs     8.1 GB/sec         1.00    945.9±4.10µs     8.3 GB/sec
small_string_partial_prefix/plain                                1.00    885.3±7.27µs     8.9 GB/sec         1.00    887.5±4.05µs     8.8 GB/sec
small_string_shared_prefix/delta_byte_array                      1.02    994.9±2.60µs     7.9 GB/sec         1.00    973.7±2.28µs     8.1 GB/sec
small_string_shared_prefix/plain                                 1.01  1038.1±10.73µs     7.6 GB/sec         1.00  1026.2±21.23µs     7.6 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 210.0s
Peak memory 2.3 GiB
Avg memory 1.6 GiB
CPU user 206.9s
CPU sys 1.2s
Peak spill 0 B

branch

Metric Value
Wall time 215.0s
Peak memory 2.1 GiB
Avg memory 1.5 GiB
CPU user 209.1s
CPU sys 1.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 claude/parquet-exact-value-windows-10538 (a2e0d90) to 0a8fdd5 diff

Run configuration
run benchmark arrow_writer
env:
  BENCH_FILTER: "^(small|medium|large)_string_(shared_prefix|partial_prefix|distinct)"
baseline:
  ref: "0a8fdd505bbf1b551a7c0654f879b4bde7e41f18"
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                                                            claude_parquet-exact-value-windows-10538    main
-----                                                            ----------------------------------------    ----
large_string_distinct/delta_byte_array                           1.00     59.0±0.46ms     4.2 GB/sec         1.00     59.0±0.35ms     4.2 GB/sec
large_string_distinct/plain                                      1.00     58.9±0.33ms     4.2 GB/sec         1.01     59.7±1.03ms     4.2 GB/sec
large_string_distinct_nullable/delta_byte_array                  1.05     55.1±0.34ms     4.5 GB/sec         1.00     52.2±1.29ms     4.8 GB/sec
large_string_shared_prefix/delta_byte_array                      1.00     42.1±0.12ms     5.9 GB/sec         1.01     42.6±0.19ms     5.9 GB/sec
large_string_shared_prefix/plain                                 1.00     91.5±0.85ms     2.7 GB/sec         1.00     91.6±0.66ms     2.7 GB/sec
large_string_shared_prefix_list/delta_byte_array                 1.00     54.0±0.26ms     4.6 GB/sec         1.01     54.3±0.32ms     4.6 GB/sec
large_string_shared_prefix_nullable/delta_byte_array             1.00     39.8±0.11ms     6.3 GB/sec         1.06     42.4±0.14ms     5.9 GB/sec
large_string_shared_prefix_nullable/plain                        1.00     60.4±0.41ms     4.1 GB/sec         1.00     60.4±0.25ms     4.1 GB/sec
large_string_shared_prefix_nullable_dense/delta_byte_array       1.00     21.4±0.05ms     5.8 GB/sec         1.00     21.5±0.04ms     5.8 GB/sec
large_string_shared_prefix_nullable_trailing/delta_byte_array    1.00     39.7±0.09ms     6.3 GB/sec         1.67     66.4±0.24ms     3.8 GB/sec
medium_string_shared_prefix_nullable/delta_byte_array            1.00     36.6±0.10ms     6.8 GB/sec         1.11     40.5±4.07ms     6.2 GB/sec
small_string_distinct/delta_byte_array                           1.01    939.6±7.53µs     8.3 GB/sec         1.00    932.8±8.39µs     8.4 GB/sec
small_string_distinct/plain                                      1.00    646.8±2.76µs    12.1 GB/sec         1.00    649.7±3.67µs    12.1 GB/sec
small_string_partial_prefix/delta_byte_array                     1.00    949.0±3.36µs     8.3 GB/sec         1.00    947.2±3.77µs     8.3 GB/sec
small_string_partial_prefix/plain                                1.00    868.9±2.72µs     9.0 GB/sec         1.02    888.3±5.26µs     8.8 GB/sec
small_string_shared_prefix/delta_byte_array                      1.02    987.2±2.69µs     7.9 GB/sec         1.00    971.6±3.79µs     8.1 GB/sec
small_string_shared_prefix/plain                                 1.00   1011.1±9.09µs     7.8 GB/sec         1.00   1013.5±8.60µs     7.7 GB/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 215.0s
Peak memory 2.3 GiB
Avg memory 1.6 GiB
CPU user 210.8s
CPU sys 1.2s
Peak spill 0 B

branch

Metric Value
Wall time 215.0s
Peak memory 2.1 GiB
Avg memory 1.5 GiB
CPU user 211.1s
CPU sys 1.1s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor Author

@alamb @etseidl could you take a look at this change? it's not without tradeoffs, but in general I think the tradeoffs are worth it and minor. performance review detailed in #10554 (comment)

Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Aug 26, 2026
…ache#10745)

- Follow-up to apache#10505 / apache#10554 (independent of both; apache#10554 is now
stacked on top of this)

## What

`compute_min_max` in `arrow_writer/byte_array.rs` copies both the
minimum and the maximum of every mini-batch into fresh `ByteArray`s
(`to_vec()`) before `encode` has checked whether either one beats the
running page min/max. `write_gather` runs once per mini-batch, and a
byte-budgeted mini-batch of large values can hold a single value — so
every large value was being allocated and copied twice more, on top of
the copies the encoder itself needs.

This returns the borrowed extremes and copies only when the running
value actually changes. Statistics are unchanged; the comparison is the
same byte-lexicographic order `ByteArray` uses. It only ever removes
copies, so it cannot cost more anywhere.

## Why now

Found while profiling apache#10554 (value-exact mini-batch windows), which
showed **+12…15%** on `large_string_distinct_nullable/delta_byte_array`
across three runner runs against both `main` and apache#10505. `samply` put
the whole shift into `memmove` under `ByteArrayEncoder::write_gather`;
the encoding work per value is identical, so the cost had to be
per-mini-batch — and apache#10554 roughly doubles the mini-batch count on
nullable columns. That was this copy.

## Measurements

Runner (`c4a-highmem-16`), three runs each way with identical-code
controls; full tables and links in the [results
comment](apache#10745 (comment)).

Isolated (stacked on apache#10554, vs apache#10554 head):

| benchmark | mean of 3 | control |
|---|---|---|
| `large_string_shared_prefix_nullable/delta_byte_array` | **−24.4%** |
+0.8 |
| `large_string_shared_prefix_nullable_trailing/delta_byte_array` |
**−23.2%** | −0.2 |
| `large_string_shared_prefix_nullable_dense/delta_byte_array` |
**−22.0%** | +0.7 |
| `large_string_shared_prefix/delta_byte_array` (non-null) | **−21.9%**
| −0.7 |
| `medium_string_shared_prefix_nullable/delta_byte_array` | −7.2% | +4.9
|
| `large_string_distinct_nullable/delta_byte_array` | −5.4% | −0.8 |
| `large_string_distinct/delta_byte_array` | −4.0% | −0.2 |

Effect on apache#10554's regression:
`large_string_distinct_nullable/delta_byte_array` vs apache#10505 goes from
**+14.7% to +5.4%**, and its `_nullable` shape from +18.3% to −13.6%.

Alone, vs `main`: the over-limit `DELTA_BYTE_ARRAY` benches are flat —
there every over-limit value already opens its own page (the bug apache#10505
fixes), so `flush_data_page` takes the running min/max on every
mini-batch and both copies happen regardless. `large_string_non_null/*`
(1024 × 256 KiB, default properties) is **−7…−9%** in all three full
runs with a flat control, so it pays today wherever a page holds more
than one mini-batch of large values. Nothing else moves outside what the
main-vs-main control moves on identical code.

## Tests

No behaviour change; full `parquet` suite green, `fmt` and `clippy -D
warnings` clean.

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

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Aug 28, 2026
…ache#10745)

- Follow-up to apache#10505 / apache#10554 (independent of both; apache#10554 is now
stacked on top of this)

## What

`compute_min_max` in `arrow_writer/byte_array.rs` copies both the
minimum and the maximum of every mini-batch into fresh `ByteArray`s
(`to_vec()`) before `encode` has checked whether either one beats the
running page min/max. `write_gather` runs once per mini-batch, and a
byte-budgeted mini-batch of large values can hold a single value — so
every large value was being allocated and copied twice more, on top of
the copies the encoder itself needs.

This returns the borrowed extremes and copies only when the running
value actually changes. Statistics are unchanged; the comparison is the
same byte-lexicographic order `ByteArray` uses. It only ever removes
copies, so it cannot cost more anywhere.

## Why now

Found while profiling apache#10554 (value-exact mini-batch windows), which
showed **+12…15%** on `large_string_distinct_nullable/delta_byte_array`
across three runner runs against both `main` and apache#10505. `samply` put
the whole shift into `memmove` under `ByteArrayEncoder::write_gather`;
the encoding work per value is identical, so the cost had to be
per-mini-batch — and apache#10554 roughly doubles the mini-batch count on
nullable columns. That was this copy.

## Measurements

Runner (`c4a-highmem-16`), three runs each way with identical-code
controls; full tables and links in the [results
comment](apache#10745 (comment)).

Isolated (stacked on apache#10554, vs apache#10554 head):

| benchmark | mean of 3 | control |
|---|---|---|
| `large_string_shared_prefix_nullable/delta_byte_array` | **−24.4%** |
+0.8 |
| `large_string_shared_prefix_nullable_trailing/delta_byte_array` |
**−23.2%** | −0.2 |
| `large_string_shared_prefix_nullable_dense/delta_byte_array` |
**−22.0%** | +0.7 |
| `large_string_shared_prefix/delta_byte_array` (non-null) | **−21.9%**
| −0.7 |
| `medium_string_shared_prefix_nullable/delta_byte_array` | −7.2% | +4.9
|
| `large_string_distinct_nullable/delta_byte_array` | −5.4% | −0.8 |
| `large_string_distinct/delta_byte_array` | −4.0% | −0.2 |

Effect on apache#10554's regression:
`large_string_distinct_nullable/delta_byte_array` vs apache#10505 goes from
**+14.7% to +5.4%**, and its `_nullable` shape from +18.3% to −13.6%.

Alone, vs `main`: the over-limit `DELTA_BYTE_ARRAY` benches are flat —
there every over-limit value already opens its own page (the bug apache#10505
fixes), so `flush_data_page` takes the running min/max on every
mini-batch and both copies happen regardless. `large_string_non_null/*`
(1024 × 256 KiB, default properties) is **−7…−9%** in all three full
runs with a flat control, so it pays today wherever a page holds more
than one mini-batch of large values. Nothing else moves outside what the
main-vs-main control moves on identical code.

## Tests

No behaviour change; full `parquet` suite green, `fmt` and `clippy -D
warnings` clean.

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

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Aug 28, 2026
…ctionary fallback (apache#10836)

Adds writer benchmarks for three shapes that drive **mini-batch
windowing** and that `arrow_writer` does not reach.

When a chunk's values do not all fit in the page byte budget, the column
writer splits the chunk into mini-batches. On a nullable column, how
wide those windows are depends on the ratio between the value size and
`data_page_size_limit` — and the existing suite only samples the two
ends of that range.

## What is uncovered today

| | `arrow_writer` | gap |
| --- | --- | --- |
| value size | ~1 KiB (`small_string_*`) or 2 MiB against the 1 MiB
default (`large_string_*`) | nothing in between, where *several* values
share a page budget |
| `data_page_size_limit` | always the 1 MiB default | a smaller limit
reaches a one-value window with far less encoding work per value |
| how DBA is reached | always pinned via `set_dictionary_enabled(false)`
| dictionary spilling into `DELTA_BYTE_ARRAY`, which is how byte-array
columns are actually written |

## What is added

* **`subpage_*`** — 128 KiB and 512 KiB values against the 1 MiB
default. The existing case at this size,
`medium_string_shared_prefix_nullable`, is shared-prefix only; the
*distinct* case, where deduplication saves nothing and a narrower window
is not paid back, is uncovered. A shared-prefix counterpart at 128 KiB
varies only the prefix, so a movement present in one and absent in the
other is attributable to that.
* **`small_page_limit_*`** — 64 KiB values against a 64 KiB
`data_page_size_limit`, a realistic setting for selective reads.
* **`dictionary_fallback_*`** — a column that starts dictionary-encoded
and becomes `DELTA_BYTE_ARRAY` only when the dictionary spills, so the
windowing changes part-way through the column. `pinned_delta_byte_array`
writes the same data with the dictionary disabled, isolating the
dictionary phase and the transition.

`plain` variants accompany the `delta_byte_array` ones throughout:
`PLAIN` does not compress a value against its predecessor, so it is
insensitive to where a page boundary falls and acts as the control for
whether a movement is windowing or the machine.

## Notes

New `writer_page_windows` bench target rather than adding to
`arrow_writer` — that suite is already long enough that a full run has
to be split across jobs, and these are heavy (64 MiB written per
iteration, sized so times are comparable across value sizes).

Benchmarks only; no library code is touched.

Motivated by apache#10538 / apache#10554, where these shapes came up as unmeasured.
Landing them separately means both sides of that comparison have them,
so the change can be measured on the shapes it actually affects.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

@etseidl etseidl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks @adriangb, I think this makes sense.

///
/// [`write_granular_chunk`]: super::GenericColumnWriter::write_granular_chunk
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum SubBatch {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe something like SubBatchStrategy would be a better name 🤷

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks, renamed.

/// [`write_granular_chunk`]: super::GenericColumnWriter::write_granular_chunk
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum SubBatch {
/// Cut after exactly this many values, walking definition levels to find

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe summarize a bit more here, it's getting pretty long. Maybe some can be replaced with a link to the issue and PRs

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Trimmed a bit

Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Sep 2, 2026
…ache#10745)

- Follow-up to apache#10505 / apache#10554 (independent of both; apache#10554 is now
stacked on top of this)

## What

`compute_min_max` in `arrow_writer/byte_array.rs` copies both the
minimum and the maximum of every mini-batch into fresh `ByteArray`s
(`to_vec()`) before `encode` has checked whether either one beats the
running page min/max. `write_gather` runs once per mini-batch, and a
byte-budgeted mini-batch of large values can hold a single value — so
every large value was being allocated and copied twice more, on top of
the copies the encoder itself needs.

This returns the borrowed extremes and copies only when the running
value actually changes. Statistics are unchanged; the comparison is the
same byte-lexicographic order `ByteArray` uses. It only ever removes
copies, so it cannot cost more anywhere.

## Why now

Found while profiling apache#10554 (value-exact mini-batch windows), which
showed **+12…15%** on `large_string_distinct_nullable/delta_byte_array`
across three runner runs against both `main` and apache#10505. `samply` put
the whole shift into `memmove` under `ByteArrayEncoder::write_gather`;
the encoding work per value is identical, so the cost had to be
per-mini-batch — and apache#10554 roughly doubles the mini-batch count on
nullable columns. That was this copy.

## Measurements

Runner (`c4a-highmem-16`), three runs each way with identical-code
controls; full tables and links in the [results
comment](apache#10745 (comment)).

Isolated (stacked on apache#10554, vs apache#10554 head):

| benchmark | mean of 3 | control |
|---|---|---|
| `large_string_shared_prefix_nullable/delta_byte_array` | **−24.4%** |
+0.8 |
| `large_string_shared_prefix_nullable_trailing/delta_byte_array` |
**−23.2%** | −0.2 |
| `large_string_shared_prefix_nullable_dense/delta_byte_array` |
**−22.0%** | +0.7 |
| `large_string_shared_prefix/delta_byte_array` (non-null) | **−21.9%**
| −0.7 |
| `medium_string_shared_prefix_nullable/delta_byte_array` | −7.2% | +4.9
|
| `large_string_distinct_nullable/delta_byte_array` | −5.4% | −0.8 |
| `large_string_distinct/delta_byte_array` | −4.0% | −0.2 |

Effect on apache#10554's regression:
`large_string_distinct_nullable/delta_byte_array` vs apache#10505 goes from
**+14.7% to +5.4%**, and its `_nullable` shape from +18.3% to −13.6%.

Alone, vs `main`: the over-limit `DELTA_BYTE_ARRAY` benches are flat —
there every over-limit value already opens its own page (the bug apache#10505
fixes), so `flush_data_page` takes the running min/max on every
mini-batch and both copies happen regardless. `large_string_non_null/*`
(1024 × 256 KiB, default properties) is **−7…−9%** in all three full
runs with a flat control, so it pays today wherever a page holds more
than one mini-batch of large values. Nothing else moves outside what the
main-vs-main control moves on identical code.

## Tests

No behaviour change; full `parquet` suite green, `fmt` and `clippy -D
warnings` clean.

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

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Sep 2, 2026
…ctionary fallback (apache#10836)

Adds writer benchmarks for three shapes that drive **mini-batch
windowing** and that `arrow_writer` does not reach.

When a chunk's values do not all fit in the page byte budget, the column
writer splits the chunk into mini-batches. On a nullable column, how
wide those windows are depends on the ratio between the value size and
`data_page_size_limit` — and the existing suite only samples the two
ends of that range.

## What is uncovered today

| | `arrow_writer` | gap |
| --- | --- | --- |
| value size | ~1 KiB (`small_string_*`) or 2 MiB against the 1 MiB
default (`large_string_*`) | nothing in between, where *several* values
share a page budget |
| `data_page_size_limit` | always the 1 MiB default | a smaller limit
reaches a one-value window with far less encoding work per value |
| how DBA is reached | always pinned via `set_dictionary_enabled(false)`
| dictionary spilling into `DELTA_BYTE_ARRAY`, which is how byte-array
columns are actually written |

## What is added

* **`subpage_*`** — 128 KiB and 512 KiB values against the 1 MiB
default. The existing case at this size,
`medium_string_shared_prefix_nullable`, is shared-prefix only; the
*distinct* case, where deduplication saves nothing and a narrower window
is not paid back, is uncovered. A shared-prefix counterpart at 128 KiB
varies only the prefix, so a movement present in one and absent in the
other is attributable to that.
* **`small_page_limit_*`** — 64 KiB values against a 64 KiB
`data_page_size_limit`, a realistic setting for selective reads.
* **`dictionary_fallback_*`** — a column that starts dictionary-encoded
and becomes `DELTA_BYTE_ARRAY` only when the dictionary spills, so the
windowing changes part-way through the column. `pinned_delta_byte_array`
writes the same data with the dictionary disabled, isolating the
dictionary phase and the transition.

`plain` variants accompany the `delta_byte_array` ones throughout:
`PLAIN` does not compress a value against its predecessor, so it is
insensitive to where a page boundary falls and acts as the control for
whether a movement is windowing or the machine.

## Notes

New `writer_page_windows` bench target rather than adding to
`arrow_writer` — that suite is already long enough that a full run has
to be split across jobs, and these are heavy (64 MiB written per
iteration, sized so times are comparable across value sizes).

Benchmarks only; no library code is touched.

Motivated by apache#10538 / apache#10554, where these shapes came up as unmeasured.
Landing them separately means both sides of that comparison have them,
so the change can be measured on the shapes it actually affects.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Review feedback on apache#10554: the enum names a windowing strategy, not a
sub-batch, and its doc comment had grown long enough to be a wall of
prose. Keep the reasoning that a reader needs at the call site and hand
the measurements off to links.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017qiKn9F4vJR2xz8JuK645F
@adriangb

adriangb commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review @etseidl! From my perspective this is good to merge :)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

parquet: byte-budget mini-batches round up on nullable columns, limiting DELTA_BYTE_ARRAY dedup for over-limit values

4 participants