Update ZigHouse#901
Merged
alexey-milovidov merged 9 commits intoJul 21, 2026
Merged
Conversation
- Refresh c6i.4xlarge result with v0.2.0-clickbench binary - Bump install to v0.2.0-clickbench (SHA256 5c30c8e3...) - Add generic-smoke.sh demonstrating the generic SQL execution path (responds to feedback in ClickHouse#895 about hardcoded query handling)
donge
force-pushed
the
zighouse-v0.2.0-clickbench-results
branch
from
May 14, 2026 11:34
a420294 to
6552027
Compare
Member
|
Could you please sign a CLA? |
Contributor
Author
|
Sure, done. |
rschu1ze
reviewed
Jun 30, 2026
rschu1ze
requested changes
Jun 30, 2026
Address review feedback (ClickHouse#901): download a generic ZigHouse release (`v1.0.2`) instead of the ClickBench-specific `v0.2.0-clickbench` binary. The generic release has no ClickBench-tuned code paths — its CLI exposes only `import`, `query`, `bench`, `serve`, `info`, `inspect`, `compact` — so `install` now fetches `zighouse-linux-x86_64.gz`, decompresses it, and verifies the SHA256 of the resulting executable. `README.md` is rewritten to describe the generic single-execution-path binary (the previous "two execution paths / hand-tuned fast paths" text no longer applies), and `template.json` drops the `tuned` marker. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… server The generic `v1.0.2` binary has no ClickBench-specific commands, and its `import` subcommand cannot write a store separate from the source Parquet file, so the previous embedded `import-clickbench-parquet-hot` / `query-timed` harness no longer works. Rework the entry as a server: - `start`/`stop`/`check` manage `zighouse serve` (native TCP on `--port`, HTTP on `--port`+1) and health-check via `/ping`. - `create.sql` is the canonical ClickBench `hits` schema in ClickHouse-native types the DDL parser understands. - `load` streams `hits.json` in <=256 MiB, line-aligned chunks, one `INSERT INTO hits FORMAT JSONEachRow` per chunk (the only bulk format the HTTP server ingests — it reads neither Parquet nor TSV), then runs `generic-smoke.sh`, which is now called from `load` per review feedback and rewritten to exercise the engine over HTTP. - `query` posts one statement over HTTP and reports the wall-clock time; `data-size` measures the store directory. The obsolete build-from-source `run.sh` is removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
These results were produced by the ClickBench-specific `v0.2.0-clickbench` binary that this PR no longer uses. They do not reflect the generic `v1.0.2` serve-mode entry and must be regenerated by a fresh benchmark run. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alexey-milovidov
had a problem deploying
to
benchmark-approval
July 20, 2026 23:52 — with
GitHub Actions
Error
…bench-results # Conflicts: # zighouse/benchmark.sh
alexey-milovidov
temporarily deployed
to
benchmark-approval
July 20, 2026 23:55 — with
GitHub Actions
Inactive
Contributor
|
The run of Logs:
|
donge
added a commit
to donge/zighouse
that referenced
this pull request
Jul 21, 2026
- install: use v1.0.0 generic release (not ClickBench-specific) - query: measure timing via date + awk on stderr - benchmark.sh: set BENCH_RESTARTABLE=no, BENCH_CONCURRENT_DURATION=0, call generic-smoke.sh after main benchmark - generic-smoke.sh: new script demonstrating generic SQL capability - Move smoke test out of load to avoid inflating load_time metric - results: c6i.4xlarge v1.0.0 generic engine (2026-07-20) Responds to review feedback in ClickHouse/ClickBench#901: - Use generic binary instead of ClickBench-specific one - Demonstrate generic SQL path via generic-smoke.sh
donge
added a commit
to donge/ClickBench
that referenced
this pull request
Jul 21, 2026
Switch from HTTP JSONEachRow ingest to direct Parquet import using the generic store. Update all scripts for v1.0.3 release binary. - install: v1.0.3 binary with correct SHA256 - load: direct parquet import, no server dependency - query: CLI-based timing via date/awk - benchmark.sh: use BENCH_DOWNLOAD_SCRIPT for parquet, set BENCH_RESTARTABLE=no (embedded CLI), skip QPS test, run generic-smoke.sh after main benchmark - generic-smoke.sh: remove expensive roadmap query, fix SCRIPT_DIR initialization - results: add c6i.4xlarge v1.0.0 generic engine (2026-07-20) Addresses review feedback in ClickHouse#901: - Generic binary instead of ClickBench-specific - Parquet import path (simpler, no server dependency) - generic-smoke.sh demonstrates SQL capability
Switch from HTTP JSONEachRow ingest (by @alexey-milovidov) to direct Parquet import using the generic store for simpler, server-free setup. - install: use v1.0.3 generic release binary with verified SHA256 - load: direct parquet import via import-parquet, no server dependency - query: CLI-based wall-clock timing via date/awk on stderr - benchmark.sh: BENCH_RESTARTABLE=no (embedded CLI), skip QPS test, use standard download-hits-parquet-single, run smoke after benchmark - generic-smoke.sh: demonstrate generic SQL capability, remove expensive roadmap GROUP BY URL query - README.md: document generic binary and parquet import path - results: c6i.4xlarge v1.0.0 generic engine (2026-07-20)
donge
force-pushed
the
zighouse-v0.2.0-clickbench-results
branch
from
July 21, 2026 15:04
b373b1e to
a26e9ae
Compare
Contributor
|
Results for Logs:
|
robot-clickhouse
had a problem deploying
to
benchmark-approval
July 21, 2026 20:36 — with
GitHub Actions
Error
alexey-milovidov
had a problem deploying
to
benchmark-approval
July 21, 2026 20:42 — with
GitHub Actions
Error
Contributor
|
The run of Logs:
|
Contributor
|
Results for Logs:
|
robot-clickhouse
had a problem deploying
to
benchmark-approval
July 21, 2026 21:37 — with
GitHub Actions
Error
Contributor
|
Results for Logs:
|
robot-clickhouse
requested a deployment
to
benchmark-approval
July 21, 2026 22:05 — with
GitHub Actions
Waiting
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update ZigHouse
Update the zighouse entry per review feedback in #901. Switch to a generic
v1.0.3release binary with direct Parquet import.Changes from review feedback
v1.0.3from donge/zighouse/releases instead of a ClickBench-specific binaryimport-parquet --format=genericwrites directly to a local column store, no HTTP server dependencydrop_caches)./load) to demonstrate generic SQL without inflatingload_timeArchitecture
ZigHouse parses SQL with a native Zig recursive-descent parser, builds an IR plan, and executes via a pipeline-parallel executor. All 43 ClickBench queries run through the same generic SQL pipeline — there is no separate ClickBench-specific fast path.
Results on c6i.4xlarge (100M rows)
The generic store format is deliberately simple (no compression, no marks, no primary index), resulting in larger storage but correct end-to-end import + query. Compression is on the roadmap.
Install
Binary: https://github.com/donge/zighouse/releases/tag/v1.0.3
SHA256:
4f63353bfc9b09a649fb54c77c447a113b4bf2b331957aa65d4b33648ef56d5b