Better fixed-width buffer filtering#8723
Conversation
Merging this PR will improve performance by 54.04%
Performance Changes
Tip Curious why this is faster? Comment Comparing Footnotes
|
|
Moved benchmarks here #8727 |
21c1bd7 to
423cee5
Compare
Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
8633f26 to
5efe3a9
Compare
Polar Signals Profiling ResultsLatest Run
Previous Runs (3)
Powered by Polar Signals Cloud |
Benchmarks: Vortex queries 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.028x ➖, 0↑ 0↓)
datafusion / parquet (0.934x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.953x ➖, 0↑ 0↓)
duckdb / parquet (0.993x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.038x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.038x ➖, 0↑ 3↓)
No file size changes detected. |
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.964x ➖, 2↑ 0↓)
datafusion / parquet (0.980x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.966x ➖, 2↑ 0↓)
duckdb / parquet (0.996x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.997x ➖, 0↑ 0↓)
datafusion / parquet (1.004x ➖, 0↑ 0↓)
datafusion / arrow (1.002x ➖, 1↑ 1↓)
duckdb / vortex-file-compressed (0.989x ➖, 0↑ 0↓)
duckdb / parquet (1.015x ➖, 0↑ 2↓)
File Size Changes (10 files changed, -43.9% overall, 0↑ 10↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.978x ➖, 13↑ 3↓)
datafusion / parquet (0.965x ➖, 9↑ 3↓)
duckdb / vortex-file-compressed (0.963x ➖, 4↑ 1↓)
duckdb / parquet (0.997x ➖, 1↑ 1↓)
File Size Changes (25 files changed, -43.5% overall, 0↑ 25↓)
Totals:
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.973x ➖, 3↑ 0↓)
datafusion / parquet (0.997x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.992x ➖, 3↑ 0↓)
duckdb / parquet (1.000x ➖, 0↑ 0↓)
File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
Totals:
|
Benchmarks: FineWeb S3 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.149x ➖, 0↑ 1↓)
datafusion / parquet (1.036x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.148x ➖, 0↑ 0↓)
duckdb / parquet (1.026x ➖, 0↑ 0↓)
|
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.985x ➖, 0↑ 0↓)
duckdb / parquet (1.021x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.952x ➖, 1↑ 0↓)
datafusion / parquet (0.992x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.996x ➖, 0↑ 2↓)
duckdb / parquet (1.010x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.8% overall, 61↑ 140↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.952x ➖, 3↑ 1↓)
datafusion / parquet (0.939x ➖, 7↑ 2↓)
datafusion / arrow (0.971x ➖, 5↑ 4↓)
duckdb / vortex-file-compressed (0.957x ➖, 4↑ 0↓)
duckdb / parquet (1.009x ➖, 0↑ 0↓)
File Size Changes (25 files changed, -44.0% overall, 0↑ 25↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.967x ➖, 1↑ 0↓)
datafusion / parquet (1.050x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.014x ➖, 0↑ 0↓)
duckdb / parquet (1.017x ➖, 0↑ 0↓)
|
Port logic from Primitive types to Decimal types and adjust the way we choose
filter strategies from simple threshold for indices and slices