Experiment: optimize compressor selection for scan time#8780
Experiment: optimize compressor selection for scan time#8780connortsui20 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: PolarSignals ProfilingVortex (geomean): 0.912x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (0.912x ➖, 6↑ 0↓)
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.943x ➖, 3↑ 3↓)
datafusion / vortex-compact (1.016x ➖, 1↑ 2↓)
datafusion / parquet (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.908x ➖, 3↑ 0↓)
duckdb / vortex-compact (1.119x ❌, 0↑ 1↓)
duckdb / parquet (1.017x ➖, 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.053x ➖, 0↑ 2↓)
datafusion / vortex-compact (1.028x ➖, 0↑ 0↓)
datafusion / parquet (1.050x ➖, 1↑ 6↓)
datafusion / arrow (1.071x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (1.045x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.000x ➖, 2↑ 2↓)
duckdb / parquet (1.057x ➖, 0↑ 3↓)
duckdb / duckdb (1.052x ➖, 0↑ 2↓)
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 (0.965x ➖, 21↑ 3↓)
datafusion / vortex-compact (0.942x ➖, 31↑ 8↓)
datafusion / parquet (0.948x ➖, 22↑ 0↓)
duckdb / vortex-file-compressed (1.014x ➖, 4↑ 10↓)
duckdb / vortex-compact (0.810x ✅, 67↑ 1↓)
duckdb / parquet (1.021x ➖, 0↑ 2↓)
duckdb / duckdb (0.990x ➖, 0↑ 0↓)
File Size Changes (48 files changed, +12.2% overall, 22↑ 26↓)
Totals:
|
Benchmarks: FineWeb S3Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.075x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.133x ➖, 0↑ 2↓)
datafusion / parquet (1.012x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.145x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.950x ➖, 0↑ 0↓)
duckdb / parquet (0.986x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.973x ➖, 2↑ 0↓)
duckdb / vortex-compact (0.904x ➖, 1↑ 2↓)
duckdb / parquet (0.988x ➖, 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 (1.032x ➖, 1↑ 3↓)
datafusion / parquet (1.007x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.059x ➖, 1↑ 3↓)
duckdb / parquet (0.999x ➖, 0↑ 0↓)
duckdb / duckdb (1.016x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +16.3% overall, 167↑ 34↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.995x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.950x ➖, 5↑ 0↓)
datafusion / parquet (1.020x ➖, 0↑ 1↓)
datafusion / arrow (1.061x ➖, 0↑ 5↓)
duckdb / vortex-file-compressed (0.986x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.021x ➖, 3↑ 6↓)
duckdb / parquet (0.987x ➖, 1↑ 0↓)
duckdb / duckdb (1.012x ➖, 0↑ 0↓)
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.024x ➖, 1↑ 6↓)
datafusion / parquet (1.045x ➖, 0↑ 9↓)
duckdb / vortex-file-compressed (0.982x ➖, 2↑ 1↓)
duckdb / parquet (0.999x ➖, 0↑ 0↓)
duckdb / duckdb (0.997x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +24.2% overall, 199↑ 2↓)
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.875x ➖, 3↑ 2↓)
datafusion / vortex-compact (0.911x ➖, 0↑ 0↓)
datafusion / parquet (1.075x ➖, 0↑ 5↓)
duckdb / vortex-file-compressed (0.972x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.972x ➖, 0↑ 0↓)
duckdb / parquet (0.978x ➖, 0↑ 0↓)
|
Benchmarks: Random AccessVortex (geomean): 1.044x ➖ How to read Verdict and Engines
unknown / unknown (1.030x ➖, 1↑ 2↓)
|
Benchmarks: Appian on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.917x ➖, 4↑ 0↓)
datafusion / parquet (0.943x ➖, 2↑ 0↓)
duckdb / vortex-file-compressed (0.950x ➖, 2↑ 0↓)
duckdb / parquet (0.987x ➖, 0↑ 0↓)
duckdb / duckdb (0.961x ➖, 1↑ 0↓)
File Size Changes (19 files changed, +6.8% overall, 3↑ 16↓)
Totals:
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.969x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.946x ➖, 1↑ 1↓)
datafusion / parquet (0.943x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.967x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.954x ➖, 0↑ 0↓)
duckdb / parquet (0.952x ➖, 0↑ 0↓)
|
Benchmarks: CompressionVortex (geomean): 1.037x ➖ How to read Verdict and Engines
unknown / unknown (1.025x ➖, 3↑ 11↓)
|
Warning
Experimental: the calibration and PR benchmark feature policy need broader workload validation before this is production-ready.
Summary
ReadTimeCost: estimated read time is encoded bytes divided by effective bandwidth, plus a per-scheme decode charge.ScanCostpreset and use it by default for the stable BtrBlocks scheme pool.SizeCostwhenunstable_encodingsis enabled; the same calibration regressed with that scheme pool.This is stacked on #8753.
Results
TPC-H SF1, DataFusion/Vortex, all 22 queries, two opposite-order runs with 30 iterations each:
Largest improvements were Q4 (-8.86%), Q21 (-4.60%), and Q6 (-3.78%). Q11 regressed by 2.30%.
With unstable encodings enabled, the initial calibration was 1.1% slower in geomean. That is why unstable builds retain
SizeCostand PR benchmarking exercises the stable pool.The focused compression timing sample was blocked by the local Public BI checkout failing its repository update, so this PR does not claim compression-job timing results.