[bench, do not merge] list layout enabled for SQL benchmarks#8747
[bench, do not merge] list layout enabled for SQL benchmarks#8747mhk197 wants to merge 53 commits into
Conversation
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
…ST_LAYOUT Rework ListLayoutStrategy into a streaming transpose driven by the TableStrategy dispatcher (global u64 offsets, memory-bounded), add bounded element reads and is_null pruning routing in ListReader, and gate the whole thing off by default behind the VORTEX_EXPERIMENTAL_LIST_LAYOUT env var / with_list_layout(). Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
- Extract transpose_list_column with named senders in the writer - Fold use_experimental_list_layout into the builder default - Reader: fetch_raw_offsets/elements helpers, clearer names, doc fixes Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Polar Signals Profiling ResultsLatest Run
Previous Runs (2)
Powered by Polar Signals Cloud |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.988x ➖, 0↑ 0↓)
datafusion / parquet (1.001x ➖, 0↑ 2↓)
datafusion / arrow (1.004x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.988x ➖, 0↑ 0↓)
duckdb / parquet (1.001x ➖, 1↑ 2↓)
File Size Changes (17 files changed, -44.3% overall, 4↑ 13↓)
Totals:
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.994x ➖, 0↑ 0↓)
datafusion / parquet (0.986x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.999x ➖, 0↑ 1↓)
duckdb / parquet (0.991x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -46.3% overall, 0↑ 3↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.909x ➖, 42↑ 0↓)
datafusion / parquet (0.946x ➖, 18↑ 2↓)
duckdb / vortex-file-compressed (0.895x ✅, 56↑ 0↓)
duckdb / parquet (0.930x ➖, 15↑ 0↓)
File Size Changes (31 files changed, -43.5% overall, 4↑ 27↓)
Totals:
|
Benchmarks: FineWeb S3Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.065x ➖, 0↑ 1↓)
datafusion / parquet (0.985x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.987x ➖, 0↑ 0↓)
duckdb / parquet (0.990x ➖, 0↑ 0↓)
|
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
169.5 µs | 205.8 µs | -17.62% |
| ❌ | Simulation | chunked_varbinview_opt_canonical_into[(1000, 10)] |
168.9 µs | 205 µs | -17.59% |
| ❌ | Simulation | chunked_varbinview_into_canonical[(100, 100)] |
272.2 µs | 306.5 µs | -11.18% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
244.4 ns | 186.1 ns | +31.34% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
304.7 ns | 246.4 ns | +23.68% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[2048] |
398.6 ns | 340.3 ns | +17.14% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing mk/list-layout-bench-ci (dad2189) with develop (2f18a4c)
Footnotes
-
4 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Benchmarks: Clickbench Sorted on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.968x ➖, 1↑ 1↓)
datafusion / parquet (0.961x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.847x ✅, 6↑ 0↓)
duckdb / parquet (0.981x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.9% overall, 44↑ 157↓)
Totals:
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.945x ➖, 3↑ 1↓)
datafusion / parquet (0.944x ➖, 5↑ 0↓)
duckdb / vortex-file-compressed (0.933x ➖, 6↑ 0↓)
duckdb / parquet (0.954x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -39.3% overall, 62↑ 139↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.078x ➖, 0↑ 6↓)
datafusion / parquet (1.061x ➖, 0↑ 3↓)
datafusion / arrow (1.124x ❌, 0↑ 15↓)
duckdb / vortex-file-compressed (1.068x ➖, 0↑ 2↓)
duckdb / parquet (1.031x ➖, 0↑ 0↓)
File Size Changes (47 files changed, -44.5% overall, 10↑ 37↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.911x ➖, 1↑ 0↓)
datafusion / parquet (0.824x ➖, 3↑ 0↓)
duckdb / vortex-file-compressed (0.953x ➖, 0↑ 0↓)
duckdb / parquet (0.948x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: Likely regression (high confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (5.579x ❌, 0↑ 10↓)
duckdb / parquet (0.994x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -42.8% overall, 0↑ 3↓)
Totals:
|
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
e88f716 to
28e17e4
Compare
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.550x ❌ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.550x ❌, 3↑ 5↓)
File Size Changes (1 files changed, -8.2% overall, 0↑ 1↓)
Totals:
|
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Set VORTEX_EXPERIMENTAL_LIST_LAYOUT=1 at the job level so statpopgen data is written and queried with ListLayout. Revert before merge if list layout should stay off for the develop baseline. Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
28e17e4 to
dad2189
Compare
Measurement-only branch:
mk/list-layout-refactor(#8706) plus a one-lineVORTEX_EXPERIMENTAL_LIST_LAYOUT: "1"insql-benchmarks.yml, so statpopgen data is written and queried withListLayout.Do not merge — this exists only to trigger a benchmark run with the list layout on. The feature PR (#8706) stays free of the CI flip.