Skip to content

Vortex 0.90.0 results for DuckDB and DataFusion on c8g.metal-48xl, c7a.metal-48xl and c8g.4xlarge - #8

Open
joseph-isaacs wants to merge 1 commit into
ji/upstream-main-6160e81from
ji/vortex-0.90-20261102
Open

joseph-isaacs wants to merge 1 commit into
ji/upstream-main-6160e81from
ji/vortex-0.90-20261102

Conversation

@joseph-isaacs

Copy link
Copy Markdown

Vortex 0.90.0 results for the four Vortex systems on c8g.metal-48xl, c7a.metal-48xl and c8g.4xlarge, run on 2026-11-02 with one EC2 instance per system and machine (500 GB gp2, as in run-benchmark.sh).

This PR is against ji/upstream-main-6160e81, a snapshot of ClickHouse/ClickBench main at 6160e8148, because this fork's main is 7,411 commits behind upstream. It is for review in the fork, not a submission upstream.

Changes

  • datafusion-vortex and datafusion-vortex-partitioned: CLI_TAG 0.87.0-55.1.0 → 0.90.0-55.2.0 (Vortex 0.90.0, DataFusion 55.2.0).
  • duckdb-vortex and duckdb-vortex-partitioned: build duckdb-vortex 59b149bf (Vortex 0.90.0 on DuckDB v2.0.0) from source instead of INSTALL vortex. The build needed three DuckDB 2.0 workarounds: STATICALLY_LINK_EXTENSIONS including vortex, CMAKE_CXX_SCAN_FOR_MODULES=OFF, and a raised open-file limit. load, query and check call the built binary.
  • 12 result files under */results/20261102/.

Results

System Machine Load (s) Data size Cold sum (s) Hot sum (s)
DataFusion (Vortex, partitioned) c7a.metal-48xl 51 12.26 GB 164.9 5.94
DataFusion (Vortex, partitioned) c8g.4xlarge 82 12.26 GB 152.7 10.87
DataFusion (Vortex, partitioned) c8g.metal-48xl 52 12.26 GB 168.2 5.88
DataFusion (Vortex, single) c7a.metal-48xl 99 12.26 GB 166.2 7.33
DataFusion (Vortex, single) c8g.4xlarge 69 12.26 GB 183.4 53.27
DataFusion (Vortex, single) c8g.metal-48xl 102 12.26 GB 166.2 7.32
DuckDB (Vortex, partitioned) c7a.metal-48xl 87 12.25 GB 114.5 14.07
DuckDB (Vortex, partitioned) c8g.4xlarge 919 12.25 GB 127.0 12.38
DuckDB (Vortex, partitioned) c8g.metal-48xl 82 12.25 GB 113.5 13.20
DuckDB (Vortex, single) c7a.metal-48xl 715 12.26 GB 110.8 14.37
DuckDB (Vortex, single) c8g.4xlarge 884 12.26 GB 120.1 15.43
DuckDB (Vortex, single) c8g.metal-48xl 682 12.26 GB 110.4 14.85

Against the current upstream results (hot geomean with ClickBench's 10 ms offset, new/old):

  • DataFusion: 0.99 and 0.87 on c8g.metal-48xl (against 0.87.0), and 0.15–0.77 on the other two machines (against 0.70.0).
  • DuckDB single: 0.46–0.73. DuckDB partitioned has no earlier result on these machines.

Before submitting upstream

  • Merge Update Vortex and DataFusion Rust crates vortex-datafusion-cli#19 so the tag 0.90.0-55.2.0 exists. These runs built its head 869db5f.
  • Merge or tag the duckdb-vortex branch ji/vortex-0.90.0; the scripts pin commit 59b149bf. DuckDB v2.0.0's own INSTALL vortex ships Vortex from 2026-10-19 (0.88.0 plus 125 commits), which would be a simpler alternative.
  • DuckDB single-file load is 4.6–7.5× slower than the May results (148–292 s → 682–884 s) in COPY … (FORMAT vortex). DataFusion writes the same file in about 100 s.
  • DuckDB partitioned load on c8g.4xlarge (919 s) swaps: the load runs 16 conversions with 16 threads each in 32 GB.
  • DataFusion single Q23 on c8g.4xlarge takes 40 s hot, against 0.28 s partitioned.

Checks

  • validate-results.py --base upstream main passes, with no warnings in the new files.
  • Every run exited 0 with 43 rows of three timings and no nulls.
  • The DuckDB builds report vortex_version() = 0.90.0.

🤖 Generated with Claude Code

…a.metal-48xl and c8g.4xlarge

DataFusion: build vortex-datafusion-cli 0.90.0-55.2.0 (Vortex 0.90.0,
DataFusion 55.2.0).

DuckDB: build duckdb-vortex from source for both the single and the
partitioned variant, pinned to a commit with Vortex 0.90.0 on DuckDB
v2.0.0. DuckDB's own `INSTALL vortex` ships an older Vortex, and the
partitioned variant was still on v0.44.0. Building against DuckDB 2.0
needs three fixes: link vortex into the shell explicitly
(STATICALLY_LINK_EXTENSIONS), skip C++20 module scanning, which needs
clang-scan-deps, and raise the open-file limit for many-core hosts. The
install script now checks for vortex_version() rather than for the
binary, since the plain shell is linked before the extension is built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
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