Sitelet https://github.com/ClickHouse/ClickBench/pull/2471
Skip to content

Pin the ravel entry to v0.23.0 - #2471

Open
pmoust wants to merge 2 commits into
ClickHouse:mainfrom
pmoust:ravel-v0.23.0-upstream
Open

pmoust wants to merge 2 commits into
ClickHouse:mainfrom
pmoust:ravel-v0.23.0-upstream

Conversation

@pmoust

@pmoust pmoust commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Pins the ravel entry to Ravel v0.23.0 and sizes its load to the machine.

What changes for this benchmark:

  • Object size: the loader now merges its 100,000-row batches into stored objects of about 25 MB (--target-bytes 1850000000, --max-flush-delay 30s), instead of one ~4 MB object per batch. That is about 410 objects instead of about 2,600. Above the stock fetch policy's ranged-read break-even, a cold scan reads only the columns a statement needs instead of whole objects, and that is most of the change in the cold column.
  • Load sized to the machine: v0.23.0 holds the loader's batches under a memory budget. ./load picks the pipeline depth, read cursors and that budget from MemTotal (table in the README). Every value can be overridden from the environment.
  • q28: averages octet_length("URL") instead of length("URL"). ClickHouse's length() counts bytes and DataFusion's counts characters, so this is the faithful translation; q29 is unchanged.
  • Tags: stateless is dropped from template.json, so the load time is shown.
  • Server: no change to ./start. It passes no performance flags, the same as before.

Measurement. Published v0.23.0 binaries, checked against the release's SHA256SUMS, on a fresh c6a.4xlarge using this repository's cloud-init with this branch's entry:

figure v0.21.0 (published, results/20261004) v0.23.0
load 1,224 s 924 s
data size 9.84 GB 10.21 GB
statements answered 43 of 43 43 of 43
cold sum 1,291.0 s 486.6 s
hot sum (best of tries 2 and 3) 87.2 s 56.9 s
hot geometric mean 1.557 s 0.740 s
concurrent QPS / error ratio 0.623 / 0.103 0.653 / 0.084

Other machines. The same load (which does not depend on the server's configuration) completed on c6a.large, c6a.xlarge, c6a.2xlarge, c8g.4xlarge, c6a.metal, c7a.metal-48xl and c8g.metal-48xl:

  • 4 GB: load in 3,917 s, about 17 MB median objects. The budget binds there, so the loader flushes early.
  • 8 GB: 1,979 s.
  • 16 GB: 1,104 s.
  • 32 GB and up: 762 to 924 s, about 24.5 MB median objects.

The c6a.large load completes where v0.21.0's failed. Those passes ran a tuned server configuration, so they are not stock query results and are not included here.

The README's figures for the object layout, the resolved pools and the tuned configuration are updated for v0.23.0.

v0.23.0 merges the loader's 100,000-row batches into stored objects of
about 25 MB under a memory budget. ./load picks the pipeline depth, read
cursors and budget from MemTotal, so the same recipe loads on 4 GB to
metal machines. q28 averages octet_length, which matches ClickHouse's
byte length(). The stateless tag is dropped so the load time is shown.
The real-S3 figures were from v0.16.1 with 4 MB objects. Replace them with a v0.23.0 stock pass on c6a.4xlarge against a same-region bucket, beside the RustFS result from the same release.
@pmoust
pmoust requested a deployment to benchmark-approval October 9, 2026 03:39 — with GitHub Actions Waiting

This branch is waiting to be deployed

1 waiting deployment
benchmark-approval — 56fcb4a1 Waiting Oct 9, 2026 by pmoust via launch #712
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant