Split core vortex-duckdb from the extension to reduce build overhead - #8494
Conversation
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
0ax1
left a comment
There was a problem hiding this comment.
Great stuff! Annoying request, please do a full extension build with this setup to make sure it'll work e2e.
|
@myrrc figured out we don't even need |
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbinview_canonical_into[(1000, 10)] |
162.1 µs | 198.6 µs | -18.39% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
178.2 µs | 214.7 µs | -17.01% |
| ❌ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
299 µs | 351 µs | -14.81% |
| ❌ | Simulation | chunked_varbinview_canonical_into[(100, 100)] |
274 µs | 308.4 µs | -11.15% |
| ⚡ | Simulation | chunked_varbinview_opt_canonical_into[(1000, 10)] |
214.7 µs | 177.8 µs | +20.8% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing adamg/split-vortex-duckdb (196084d) with develop (c2119d9)
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling (base)Vortex (geomean): 1.194x ❌ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.194x ❌, 0↑ 9↓)
No file size changes detected. |
|
Linux build just passed on duckdb-vortex! Once I'm happy benchmarks also pass here, I'll merge this and change the other repo to point at the latest commit. |
Benchmarks: FineWeb NVMe (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.029x ➖, 0↑ 1↓)
datafusion / parquet (0.989x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.982x ➖, 1↑ 1↓)
duckdb / parquet (1.000x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -46.3% overall, 0↑ 3↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVME (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.999x ➖, 0↑ 0↓)
datafusion / parquet (0.987x ➖, 3↑ 2↓)
datafusion / arrow (0.988x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (1.011x ➖, 0↑ 0↓)
duckdb / parquet (0.993x ➖, 1↑ 1↓)
File Size Changes (17 files changed, -44.5% overall, 2↑ 15↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.141x ❌, 0↑ 84↓)
datafusion / parquet (1.129x ❌, 0↑ 70↓)
duckdb / vortex-file-compressed (1.110x ❌, 0↑ 63↓)
duckdb / parquet (1.071x ➖, 0↑ 14↓)
File Size Changes (30 files changed, -43.5% overall, 2↑ 28↓)
Totals:
|
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Benchmarks: Statistical and Population Genetics (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.998x ➖, 0↑ 0↓)
duckdb / parquet (1.005x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -32.3% overall, 1↑ 2↓)
Totals:
|
Benchmarks: FineWeb S3 (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.950x ➖, 0↑ 0↓)
datafusion / parquet (1.152x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.009x ➖, 0↑ 1↓)
duckdb / parquet (1.053x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVME (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.915x ➖, 6↑ 0↓)
datafusion / parquet (0.939x ➖, 0↑ 0↓)
datafusion / arrow (0.902x ➖, 11↑ 0↓)
duckdb / vortex-file-compressed (0.944x ➖, 0↑ 0↓)
duckdb / parquet (0.971x ➖, 0↑ 0↓)
File Size Changes (47 files changed, -44.4% overall, 13↑ 34↓)
Totals:
|
Benchmarks: Clickbench on NVME (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.990x ➖, 1↑ 1↓)
datafusion / parquet (0.994x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.906x ➖, 14↑ 2↓)
duckdb / parquet (0.999x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -39.1% overall, 43↑ 158↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.031x ➖, 1↑ 2↓)
datafusion / parquet (1.212x ➖, 0↑ 9↓)
duckdb / vortex-file-compressed (0.965x ➖, 0↑ 0↓)
duckdb / parquet (0.949x ➖, 0↑ 0↓)
|
Summary
Turns out, if you mark a crate as "staticlib", it will always build the static library, even if you try and pull it as a rust dependency (Like we do for
vortex-duckdbinvortex-sqllogictestand benchmarks).This PR splits the
vortex-duckdbcrate into two:vortex-duckdb, which is now a plain old "rlib".vortex-extensioncrate that is a "staticlib", which is in theduckdb-vortexrepo (Try and replace the vortex submodule with a staticlib duckdb-vortex#91).This saves about *1GB per build of
vortex-duckdb.