Skip to content

Add elosdb (c8g.4xlarge, c8g.metal-48xl, c6a.4xlarge) - #2317

Open
decster wants to merge 8 commits into
ClickHouse:mainfrom
decster:elosdb
Open

decster wants to merge 8 commits into
ClickHouse:mainfrom
decster:elosdb

Conversation

@decster

@decster decster commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Add elosdb

elosdb is a single-node analytical database: a C++ storage and execution engine with its own column format, behind a server that speaks the PostgreSQL v3 wire protocol. It is a personal research project, not a production system.

How it runs

  • install compiles nothing. It downloads one statically-linked executable for the box's architecture and checks it against the sha256 pinned in the script for that architecture. It refuses to continue on a mismatch, or on an architecture with no pinned asset:

    • aarch64: v0.1.10, built for Neoverse V2 (SVE2), sha256 44d2a66d…;
    • x86_64: v0.1.10, built -march=x86-64-v3 (AVX2/FMA/BMI2, no AVX-512), sha256 ce12bbf7….

    It also apt-installs postgresql-client for psql.

  • start passes only --port and --data-dir; everything else is the binary's default (tuned: no).

  • load runs create.sql and then one COPY hits FROM 'hits.parquet'. The store is built inside the timed load window.

  • create.sql is umbra's column list with no per-column encoding hints. queries.sql is umbra's, unchanged.

  • There is no result cache, and nothing is precomputed per query.

Results (ClickBench's own benchmark.sh driver, through the pinned install)

machine binary (sha256) date load data size cold sum hot sum QPS
c8g.4xlarge v0.1.10 aarch64 44d2a66d 2026-10-02 44.94 s 7.67 GB 29.66 s 2.00 s 12.05
c6a.4xlarge v0.1.10 x86_64 ce12bbf7 2026-10-02 90.22 s 7.67 GB 34.66 s 5.34 s 4.95

These are my own runs of the pinned binaries. The result files in the PR are the CI's runs, which used the pins in place at the time. Each binary needs glibc >= 2.38.

validate-results.py --base <origin/main checkout> passes locally. All tags are existing ones.

🤖 Generated with Claude Code

elosdb is a single-node analytical database: a C++ engine with its own
column format behind a PostgreSQL-wire server. install fetches one
statically-linked release binary (v0.1.7) and verifies its sha256; start
passes only the port and data directory. create.sql and queries.sql are
umbra's column list and queries.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@alexey-milovidov alexey-milovidov added the machine:c6a.4xlarge PR benchmark machine: c6a.4xlarge (16 vCPU, 32 GB, AMD) — the default label Oct 1, 2026
@alexey-milovidov
alexey-milovidov deployed to benchmark-approval October 1, 2026 00:49 — with GitHub Actions Active
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

The run of elosdb on c6a.4xlarge did not produce results.

Logs:

@decster

decster commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for launching the run! elosdb ships an aarch64-only binary (the install script exits on x86_64, as in the log above), and the submitted results are for c8g.4xlarge and c8g.metal-48xl. Could you relabel this PR with machine:c8g.4xlarge (and machine:c8g.metal-48xl if possible) instead of machine:c6a.4xlarge?

install selects by uname -m: v0.1.7 on aarch64 (unchanged), v0.1.8 on x86_64
(-march=x86-64-v3), each with its sha256. Adds results/20261001/c6a.4xlarge.json
from ClickBench's own driver on c6a.4xlarge.
@decster decster changed the title Add elosdb (aarch64; c8g.4xlarge, c8g.metal-48xl) Add elosdb (c8g.4xlarge, c8g.metal-48xl, c6a.4xlarge) Oct 1, 2026
@decster

decster commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

c6a.4xlarge

I've updated the PR to add c6a.4xlarge(build a new x86_64 binary) support

@alexey-milovidov alexey-milovidov added machine:all PR benchmark on every machine type and removed machine:c6a.4xlarge PR benchmark machine: c6a.4xlarge (16 vCPU, 32 GB, AMD) — the default labels Oct 1, 2026
@alexey-milovidov
alexey-milovidov deployed to benchmark-approval October 1, 2026 18:52 — with GitHub Actions Active
…, c7a.metal-48xl, c8g.4xlarge, c8g.metal-48xl)
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Results for elosdb are ready for: c6a.2xlarge, c6a.4xlarge, c6a.metal, c7a.metal-48xl, c8g.4xlarge, c8g.metal-48xl.
The result files are committed as 813568d.
Removed manually added result files: elosdb/results/20260930/c8g.4xlarge.json, elosdb/results/20260930/c8g.metal-48xl.json.

Logs:

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Results for elosdb are ready for: c6a.xlarge.
The result files are committed as 4544f05.

Logs:

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@decster

decster commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for running it on all those machines! I've pushed one more change (0fa8029): install now pins elosdb v0.1.9 on both architectures, sha256 0f69fac7… for aarch64 and 1ec9f68b… for x86_64. Nothing else in the submission changed. v0.1.9 mostly improves hot runs (c8g.metal-48xl 1.00 s → 0.89 s, c6a.4xlarge 6.35 s → 6.19 s in my runs). The result files committed by CI were measured with the previous pins (v0.1.7 / v0.1.8). Could you re-run when convenient so they match the pinned binaries? Sorry for the extra round.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Results for elosdb are ready for: c6a.large.
The result files are committed as a105fc1.

Logs:

…_64 40981ca6)

The v0.1.9 release assets were rebuilt from a newer source revision and
replaced under the same tag, so the previous pins no longer match the
download. Nothing else in the submission changes.
@decster

decster commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Thanks for the c6a.large run! I've pushed one more commit on top of the CI's (e343849): install now pins elosdb v0.1.10 on both architectures, sha256 44d2a66d… (aarch64) and ce12bbf7… (x86_64), and the README quotes the new runs. Nothing else in the submission changed. v0.1.9 stays published, so the earlier pins still resolve.

v0.1.10 mainly improves a few query shapes outside the 43 (quantiles, rank windows, string-prefix GROUP BY keys). I re-ran c8g.4xlarge and c6a.4xlarge through the pinned install; both pass all 43 queries.

The result files committed so far were measured with earlier binaries. Could you re-run when convenient so they match the pinned ones? Sorry again for the extra round.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

The run of elosdb on t3a.small did not produce results.

Logs:

@decster
decster requested a deployment to benchmark-approval October 2, 2026 09:41 — with GitHub Actions Waiting

This branch is waiting to be deployed

1 waiting deployment
benchmark-approval — e3438490 Waiting Oct 2, 2026 by decster via launch #614
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

machine:all PR benchmark on every machine type

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants