Experiment: optimize compressor selection for scan time (revival)#8794
Experiment: optimize compressor selection for scan time (revival)#8794connortsui20 wants to merge 1 commit into
Conversation
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: Vortex queriesVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.053x ➖, 0↑ 0↓)
datafusion / parquet (0.988x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.989x ➖, 0↑ 0↓)
duckdb / parquet (0.996x ➖, 0↑ 0↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.097x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.097x ➖, 0↑ 5↓)
File Size Changes (1 files changed, +0.2% overall, 1↑ 0↓)
Totals:
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.920x ➖, 3↑ 1↓)
datafusion / vortex-compact (1.012x ➖, 1↑ 1↓)
datafusion / parquet (0.943x ➖, 2↑ 0↓)
duckdb / vortex-file-compressed (0.875x ✅, 3↑ 0↓)
duckdb / vortex-compact (1.097x ➖, 0↑ 1↓)
duckdb / parquet (0.997x ➖, 0↑ 0↓)
File Size Changes (2 files changed, +13.8% overall, 2↑ 0↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.050x ➖, 0↑ 2↓)
datafusion / vortex-compact (1.003x ➖, 0↑ 0↓)
datafusion / parquet (1.068x ➖, 1↑ 9↓)
datafusion / arrow (1.082x ➖, 0↑ 9↓)
duckdb / vortex-file-compressed (0.977x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.937x ➖, 4↑ 0↓)
duckdb / parquet (0.978x ➖, 3↑ 1↓)
duckdb / duckdb (0.981x ➖, 0↑ 0↓)
File Size Changes (18 files changed, +8.9% overall, 11↑ 7↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.064x ➖, 0↑ 17↓)
datafusion / vortex-compact (0.983x ➖, 12↑ 5↓)
datafusion / parquet (1.053x ➖, 0↑ 20↓)
duckdb / vortex-file-compressed (1.050x ➖, 1↑ 19↓)
duckdb / vortex-compact (0.864x ✅, 54↑ 4↓)
duckdb / parquet (1.031x ➖, 0↑ 3↓)
duckdb / duckdb (1.043x ➖, 0↑ 3↓)
File Size Changes (48 files changed, +12.2% overall, 22↑ 26↓)
Totals:
|
🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨Benchmark |
Benchmarks: FineWeb S3Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.092x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.989x ➖, 0↑ 0↓)
datafusion / parquet (0.942x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.150x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.059x ➖, 0↑ 0↓)
duckdb / parquet (1.016x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.937x ➖, 3↑ 0↓)
duckdb / vortex-compact (0.880x ✅, 1↑ 2↓)
duckdb / parquet (0.963x ➖, 0↑ 0↓)
File Size Changes (2 files changed, +13.9% overall, 2↑ 0↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.995x ➖, 1↑ 3↓)
datafusion / parquet (1.009x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.077x ➖, 0↑ 3↓)
duckdb / parquet (0.977x ➖, 0↑ 0↓)
duckdb / duckdb (0.991x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +16.3% overall, 173↑ 28↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.013x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.052x ➖, 2↑ 9↓)
datafusion / parquet (1.058x ➖, 0↑ 6↓)
datafusion / arrow (1.091x ➖, 0↑ 8↓)
duckdb / vortex-file-compressed (1.022x ➖, 0↑ 4↓)
duckdb / vortex-compact (0.952x ➖, 7↑ 2↓)
duckdb / parquet (1.019x ➖, 0↑ 3↓)
duckdb / duckdb (1.063x ➖, 0↑ 9↓)
File Size Changes (48 files changed, +8.9% overall, 39↑ 9↓)
Totals:
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.001x ➖, 3↑ 2↓)
datafusion / parquet (1.001x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.003x ➖, 0↑ 1↓)
duckdb / parquet (0.998x ➖, 1↑ 0↓)
duckdb / duckdb (1.001x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +24.2% overall, 199↑ 2↓)
Totals:
|
Benchmarks: Random AccessVortex (geomean): 0.972x ➖ How to read Verdict and Engines
unknown / unknown (0.988x ➖, 1↑ 0↓)
|
Benchmarks: Appian on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.023x ➖, 0↑ 0↓)
datafusion / parquet (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.035x ➖, 0↑ 0↓)
duckdb / parquet (1.045x ➖, 0↑ 0↓)
duckdb / duckdb (1.049x ➖, 0↑ 0↓)
File Size Changes (19 files changed, +6.8% overall, 3↑ 16↓)
Totals:
|
Merging this PR will improve performance by 50.92%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
646.3 µs | 299.7 µs | ×2.2 |
| ⚡ | WallTime | cuda/bitpacked_patched_u8/unpack/1%[100M] |
768.9 µs | 381.3 µs | ×2 |
| ⚡ | WallTime | cuda/bitpacked_patched_u8/unpack/10%[100M] |
828.6 µs | 481.3 µs | +72.16% |
| ⚡ | WallTime | cuda/bitpacked_patched_u16/unpack/1%[100M] |
712.3 µs | 595.6 µs | +19.6% |
| ⚡ | WallTime | cuda/bitpacked_patched_u16/unpack/10%[100M] |
831 µs | 716.4 µs | +15.99% |
| ⚡ | WallTime | cuda/bitpacked_u16/unpack/5bw[100M] |
634.8 µs | 558 µs | +13.75% |
| 🆕 | WallTime | cuda/fsst/decompress_to_varbin[10M] |
N/A | 19.3 ms | N/A |
| 🆕 | WallTime | cuda/fsst/decompress_to_varbinview[10M] |
N/A | 20.1 ms | N/A |
| 🆕 | WallTime | cuda/fsst/export_binary_view[10M] |
N/A | 20.1 ms | N/A |
| 🆕 | WallTime | cuda/fsst/export_binary[10M] |
N/A | 19.3 ms | N/A |
| 🆕 | WallTime | cuda/fsst/export_utf8_view[10M] |
N/A | 20.1 ms | N/A |
| 🆕 | Simulation | bitpacked_decode |
N/A | 2.6 ms | N/A |
| 🆕 | Simulation | bitpacked_eq_fill |
N/A | 2.4 ms | N/A |
| 🆕 | Simulation | bitpacked_filter_10pct |
N/A | 3.7 ms | N/A |
| 🆕 | Simulation | dict_decode |
N/A | 39.3 ms | N/A |
| 🆕 | Simulation | dict_eq |
N/A | 4.5 ms | N/A |
| 🆕 | Simulation | dict_like |
N/A | 62.3 ms | N/A |
| 🆕 | Simulation | fsst_decode |
N/A | 28.2 ms | N/A |
| 🆕 | Simulation | fsst_eq |
N/A | 4.3 ms | N/A |
| 🆕 | Simulation | fsst_like |
N/A | 16.4 ms | N/A |
| ... | ... | ... | ... | ... | ... |
ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ct/cost-model-scan-opt (4e73ee6) with ct/compressor-cost-model (43f6c42)
Footnotes
-
10 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: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.014x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.007x ➖, 0↑ 1↓)
datafusion / parquet (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.991x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.947x ➖, 0↑ 0↓)
duckdb / parquet (0.944x ➖, 0↑ 0↓)
|
Benchmarks: CompressionVortex (geomean): 1.036x ➖ How to read Verdict and Engines
unknown / unknown (1.008x ➖, 7↑ 8↓)
|
Revival of #8780 because actions cant seem to work