Implement compare/between for bitpacked arrays - improve performance by up to 2X#7279
Implement compare/between for bitpacked arrays - improve performance by up to 2X#7279
Conversation
Merging this PR will improve performance by ×2.5
Performance Changes
Comparing Footnotes
|
74732ef to
8cddde0
Compare
Polar Signals Profiling ResultsLatest Run
Previous Runs (7)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.130x ❌ datafusion / vortex-file-compressed (1.130x ❌, 0↑ 8↓)
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.148x ❌, 0↑ 19↓)
datafusion / vortex-compact (1.147x ❌, 0↑ 21↓)
datafusion / parquet (1.096x ➖, 1↑ 11↓)
datafusion / arrow (1.171x ❌, 0↑ 18↓)
duckdb / vortex-file-compressed (1.125x ❌, 0↑ 14↓)
duckdb / vortex-compact (1.114x ❌, 0↑ 14↓)
duckdb / parquet (1.004x ➖, 2↑ 2↓)
duckdb / duckdb (1.112x ❌, 0↑ 11↓)
Full attributed analysis
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.989x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.006x ➖, 0↑ 0↓)
datafusion / parquet (1.014x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.004x ➖, 1↑ 0↓)
duckdb / vortex-compact (1.001x ➖, 0↑ 0↓)
duckdb / parquet (1.006x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.964x ➖, 8↑ 0↓)
datafusion / vortex-compact (0.987x ➖, 1↑ 1↓)
datafusion / parquet (1.003x ➖, 5↑ 6↓)
duckdb / vortex-file-compressed (0.973x ➖, 4↑ 1↓)
duckdb / vortex-compact (0.971x ➖, 4↑ 0↓)
duckdb / parquet (0.966x ➖, 6↑ 1↓)
duckdb / duckdb (0.978x ➖, 3↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.995x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.995x ➖, 0↑ 0↓)
datafusion / parquet (1.004x ➖, 0↑ 0↓)
datafusion / arrow (1.014x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.979x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.996x ➖, 0↑ 0↓)
duckdb / parquet (0.990x ➖, 0↑ 0↓)
duckdb / duckdb (1.001x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (0.956x ➖, 1↑ 0↓)
duckdb / vortex-compact (0.997x ➖, 0↑ 0↓)
duckdb / parquet (0.987x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.983x ➖, 0↑ 1↓)
datafusion / parquet (0.997x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.031x ➖, 2↑ 6↓)
duckdb / parquet (0.995x ➖, 0↑ 0↓)
duckdb / duckdb (0.970x ➖, 2↑ 1↓)
Full attributed analysis
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.122x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.102x ➖, 0↑ 0↓)
datafusion / parquet (1.035x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.023x ➖, 1↑ 1↓)
duckdb / vortex-compact (1.083x ➖, 0↑ 0↓)
duckdb / parquet (1.031x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.058x ➖, 2↑ 5↓)
datafusion / vortex-compact (1.001x ➖, 1↑ 3↓)
datafusion / parquet (0.928x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.001x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.986x ➖, 0↑ 0↓)
duckdb / parquet (1.036x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.881x ➖, 1↑ 0↓)
datafusion / vortex-compact (1.024x ➖, 0↑ 2↓)
datafusion / parquet (1.060x ➖, 2↑ 3↓)
duckdb / vortex-file-compressed (0.978x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.889x ➖, 1↑ 0↓)
duckdb / parquet (0.965x ➖, 0↑ 1↓)
Full attributed analysis
|
a103738 to
4454bc6
Compare
52289bf to
dbe5a37
Compare
dbe5a37 to
33e6d30
Compare
Benchmarks: Random AccessVortex (geomean): 0.841x ✅ unknown / unknown (0.915x ➖, 16↑ 0↓)
|
Benchmarks: CompressionVortex (geomean): 1.014x ➖ unknown / unknown (1.005x ➖, 2↑ 4↓)
|
File Sizes: PolarSignals ProfilingNo baseline file sizes available yet. |
File Sizes: TPC-H SF=1 on NVMENo baseline file sizes available yet. |
File Sizes: FineWeb NVMeNo baseline file sizes available yet. |
File Sizes: TPC-DS SF=1 on NVMENo baseline file sizes available yet. |
File Sizes: TPC-H SF=10 on NVMENo baseline file sizes available yet. |
File Sizes: Statistical and Population GeneticsNo baseline file sizes available yet. |
File Sizes: Clickbench on NVMENo baseline file sizes available yet. |
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
2573b0e to
a7a7eea
Compare
After some iterations, this seems to improve performance in any case we actually measure. It does require merging and releasing spiraldb/fastlanes#125.