Skip to content

Add Ravel - #1887

Open
pmoust wants to merge 1 commit into
ClickHouse:mainfrom
pmoust:add-ravel-20260907
Open

Add Ravel#1887
pmoust wants to merge 1 commit into
ClickHouse:mainfrom
pmoust:add-ravel-20260907

Conversation

@pmoust

@pmoust pmoust commented Sep 7, 2026

Copy link
Copy Markdown

Ravel is an object-storage-native telemetry database queried over SQL (and other DSLs).
Every durable byte lives in S3-compatible object storage, no WAL.

Two results on c6a.4xlarge, both true cold: the server is restarted and the page cache dropped before the first run of every query, 3 runs per query. The local disk holds only the downloaded Parquet file and a read cache.

The stock entry runs the server with no performance flags. 42 of 43 queries complete; q33 exceeds the per-query memory pool the server derives on a 30 GB machine and is recorded as null rather than run with a raised limit.

The tuned entry passes three flags through RAVEL_TUNED_ARGS in ./start: latency-first fetch policy, fetch concurrency 256, and a 12 GiB per-query pool. All 43 queries complete. It is marked tuned and sits out of competition; the README states the flags and the trade they accept, about 5.3x the object-store GET requests of the stock entry for the shorter cold wall-clock.
We're working to improve the price-perf of that mode, as well as providing adaptive modes and dynamic query-cost budgets. But it's safe to say that there always going to be a "give me best latency, no matter what, in that architecture" mode. This is that mode right now.

Load time is the shipped recipe at defaults and was measured separately from the query runs, since the load is not idempotent against an already loaded bucket. It reliably measures in the same exact w/ <+-0.5% deviation with fresh buckets.

What's different with Ravel in the context of ClickBench is that it requires an S3 bucket to ingest to (and read from).
Is that something you can facilitate @alexey-milovidov?
Happy to follow any route you feel appropriate.

@CLAassistant

CLAassistant commented Sep 7, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Ravel is an object-storage-native telemetry database queried over SQL; every
durable byte lives in S3-compatible object storage and the local disk holds
only the downloaded Parquet file and a read cache.

Two results on c6a.4xlarge, both true cold: the server is restarted and the
page cache dropped before the first run of every query, 3 runs per query.

The stock entry runs the server with no performance flags. 42 of 43 queries
complete; q33 exceeds the per-query memory pool the server derives on a 30 GB
machine and is recorded as null rather than run with a raised limit. Its warm
runs are close to its cold runs: the server holds no data on local disk, and
its derived read cache (25% of memory, 8.2 GB) is smaller than this dataset
(11.7 GB), so every warm run re-reads from object storage.

The tuned entry passes four flags through RAVEL_TUNED_ARGS in ./start:
latency-first fetch policy, fetch concurrency 256, a 12 GiB per-query pool,
and a 26.3 GB read cache that the dataset fits in. All 43 queries complete.
The cache flag changes the tuned totals by about 1%, because latency-first
reads ranged blocks whose working set already fits the default cache; it is
kept so the entry's cache behaviour does not depend on the dataset size. The
entry is marked tuned and sits out of competition; the README states each
flag, why the larger cache is safe under this benchmark's one-query-at-a-time
protocol but is not the default, and the trade the entry accepts, about 5.3x
the object-store GET requests of the stock entry for the shorter cold
wall-clock.

Load time is the shipped recipe at defaults and was measured separately from
the query runs, since the load is not idempotent against an already loaded
bucket.

Signed-off-by: Panagiotis Moustafellos <pmoust@nofire.ai>
@alexey-milovidov

Copy link
Copy Markdown
Member

This makes sense. We can start with a local instance of Minio or SeaweedFS, so the setup will be comparable with other systems. Then we can extend the benchmark to support systems on real S3 (but currently it isn't supported).

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.

3 participants