Add duckdb-vortex-tuned: variant with threads=2 for memory-constrained hosts - #2225
Merged
alexey-milovidov merged 2 commits intoSep 26, 2026
Conversation
KazukiKandaKK
had a problem deploying
to
benchmark-approval
September 25, 2026 12:48 — with
GitHub Actions
Error
alexey-milovidov
deployed
to
benchmark-approval
September 25, 2026 23:50 — with
GitHub Actions
Active
…ge, c6a.metal, c7a.metal-48xl, c8g.4xlarge, c8g.metal-48xl)
Contributor
|
Results for Logs:
|
robot-clickhouse
requested a deployment
to
benchmark-approval
September 26, 2026 00:57 — with
GitHub Actions
Waiting
Contributor
|
The run of Logs:
|
This branch is waiting to be deployed
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.
Adds
duckdb-vortex-tuned/as a variant ofduckdb-vortex/, following the existingpostgresql/postgresql-indexedandpinot/pinot-tunedsplits.Why a separate directory
On this run's host (AWS c6a.xlarge, ~7.6 GiB usable RAM),
duckdb-vortex's default recipe (threads=4, untouched) does not complete:COPY 'hits.parquet' TO 'hits.vortex' (FORMAT vortex)gets OOM-killed by the kernel before any of the 43 queries run, and loweringmemory_limitalone doesn't prevent or delay it. Only reducingthreads(to 2 or 1) let the conversion finish. Root-cause investigation is filed upstream at vortex-data/vortex#10046 (open, unresolved); that thread also links to vortex-data/vortex#9674, a broader in-progress effort to make Vortex's buffer allocations accountable to the host engine, which isn't yet wired up on the DuckDB write path.Per this repo's README (vanilla and tuned results should be reported as separate entries, e.g. "MyDatabase" and "MyDatabase-tuned"), this is
duckdb-vortex-tuned/with"tuned": "yes", not an overwrite ofduckdb-vortex/. Unlikepinot/pinot-tuned, which share machine types (e.g. c6a.4xlarge) so the site shows both side by side,duckdb-vortex/results/has noc6a.xlarge.jsonfor any date and, per the above, can't get one on this specific machine. Soduckdb-vortex-tuned/c6a.xlarge.jsonwill appear without a matching vanilla entry.What's different from
duckdb-vortex/loadaddsSET threads = 2;before theCOPYconversion. Every other script (benchmark.sh,queries.sql,install,start,stop,query,check,data-size,create.sql) is byte-identical toduckdb-vortex/(checked withdiff).threads=1also completed and was faster (load_time1,439.9s vs. 1,540.3s, n=1 each).threads=2is used here because it's the largest value that still completes, not because it's faster — this PR favors the smallest deviation from default over chasing an unreplicated speed difference.Result
c6a.xlarge, 2026-09-25, DuckDB v1.5.5. Full 43-query x 3-run timing matrix (cold + 2 hot), no nulls.load_timeis the benchmark driver's wall-clock measurement ofload(lib/benchmark-common.sh'sbench_load), rounded to whole seconds per convention;data_sizeisdu -bcs hits.vortex. Concurrent phase is skipped (BENCH_CONCURRENT_DURATION=0, already set induckdb-vortex's ownbenchmark.shfor single-process engines, see #946), soconcurrent_qps/concurrent_error_ratioarenull, matchingduckdb-vortex's own results.