Implement compare in vortex instead of falling back to arrow#8661
Conversation
Merging this PR will improve performance by 34.07%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
e54a66b to
7866596
Compare
Signed-off-by: Robert Kruszewski <github@robertk.io>
d23223a to
73b4b7b
Compare
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.029x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.029x ➖, 1↑ 1↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.960x ➖, 1↑ 0↓)
datafusion / vortex-compact (0.973x ➖, 1↑ 0↓)
datafusion / parquet (0.982x ➖, 1↑ 0↓)
datafusion / arrow (0.978x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.988x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.982x ➖, 0↑ 0↓)
duckdb / parquet (0.980x ➖, 2↑ 1↓)
duckdb / duckdb (0.985x ➖, 0↑ 0↓)
File Size Changes (9 files changed, +0.1% overall, 5↑ 4↓)
Totals:
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.084x ➖, 0↑ 4↓)
datafusion / vortex-compact (1.043x ➖, 0↑ 1↓)
datafusion / parquet (1.076x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.069x ➖, 0↑ 3↓)
duckdb / vortex-compact (1.042x ➖, 0↑ 1↓)
duckdb / parquet (1.040x ➖, 0↑ 1↓)
File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.983x ➖, 3↑ 0↓)
datafusion / vortex-compact (0.981x ➖, 2↑ 0↓)
datafusion / parquet (0.978x ➖, 6↑ 2↓)
duckdb / vortex-file-compressed (0.993x ➖, 3↑ 1↓)
duckdb / vortex-compact (0.992x ➖, 0↑ 0↓)
duckdb / parquet (0.993x ➖, 0↑ 0↓)
duckdb / duckdb (1.001x ➖, 1↑ 3↓)
File Size Changes (6 files changed, +0.0% overall, 5↑ 1↓)
Totals:
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.010x ➖, 0↑ 0↓)
duckdb / parquet (1.006x ➖, 0↑ 0↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.963x ➖, 1↑ 1↓)
datafusion / vortex-compact (0.950x ➖, 0↑ 1↓)
datafusion / parquet (0.905x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.961x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.001x ➖, 0↑ 0↓)
duckdb / parquet (0.946x ➖, 0↑ 0↓)
|
Benchmarks: Clickbench Sorted on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.043x ➖, 1↑ 1↓)
datafusion / parquet (1.062x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.030x ➖, 0↑ 1↓)
duckdb / parquet (1.000x ➖, 0↑ 0↓)
duckdb / duckdb (1.031x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +0.0% overall, 106↑ 95↓)
Totals:
|
Benchmarks: Random AccessVortex (geomean): 1.001x ➖ How to read Verdict and Engines
unknown / unknown (1.008x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.910x ➖, 6↑ 0↓)
datafusion / vortex-compact (0.905x ➖, 8↑ 0↓)
datafusion / parquet (0.930x ➖, 5↑ 0↓)
datafusion / arrow (0.950x ➖, 4↑ 0↓)
duckdb / vortex-file-compressed (0.921x ➖, 7↑ 0↓)
duckdb / vortex-compact (0.970x ➖, 3↑ 0↓)
duckdb / parquet (0.980x ➖, 0↑ 0↓)
duckdb / duckdb (0.968x ➖, 0↑ 0↓)
File Size Changes (27 files changed, -0.0% overall, 12↑ 15↓)
Totals:
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.992x ➖, 2↑ 1↓)
datafusion / parquet (1.011x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.997x ➖, 2↑ 2↓)
duckdb / parquet (0.998x ➖, 1↑ 0↓)
duckdb / duckdb (0.999x ➖, 0↑ 0↓)
File Size Changes (103 files changed, +0.0% overall, 56↑ 47↓)
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.933x ➖, 1↑ 0↓)
datafusion / vortex-compact (1.005x ➖, 1↑ 3↓)
datafusion / parquet (0.944x ➖, 3↑ 2↓)
duckdb / vortex-file-compressed (0.977x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.976x ➖, 0↑ 0↓)
duckdb / parquet (0.990x ➖, 0↑ 0↓)
|
Benchmarks: Appian on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.047x ➖, 0↑ 2↓)
datafusion / parquet (1.031x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.019x ➖, 0↑ 0↓)
duckdb / parquet (1.044x ➖, 0↑ 1↓)
duckdb / duckdb (1.042x ➖, 0↑ 1↓)
File Size Changes (4 files changed, -0.0% overall, 1↑ 3↓)
Totals:
|
Benchmarks: CompressionVortex (geomean): 0.992x ➖ How to read Verdict and Engines
unknown / unknown (0.981x ➖, 9↑ 1↓)
|
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.985x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.016x ➖, 0↑ 1↓)
datafusion / parquet (1.039x ➖, 1↑ 3↓)
duckdb / vortex-file-compressed (1.014x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.988x ➖, 0↑ 0↓)
duckdb / parquet (0.954x ➖, 0↑ 0↓)
|
Instead of going through arrow compare logic implement it in vortex
Lets us leverage optimised bitbuffer optimistaions and ultimately remove arrow
dependency from vortex-array