Conversation
Add PinnedCpuPool/PinnedExecutor: a core-pinned thread pool that overrides spawn_cpu while delegating async I/O to the fallback runtime (tokio). Avoids work-stealing for decode-heavy ops (bitunpacking, FoR, dictionary gather), keeping data cache-local. Expose via RuntimeSessionExt::with_pinned_cpu_pool() and enable it by default in the benchmark SESSION. Fix executor lifetime bug by storing a strong Arc in RuntimeSession alongside the Weak-based Handle. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Enable the v2 VortexTable/VortexDataSource scan path for Vortex formats in datafusion-bench without requiring VORTEX_USE_SCAN_API=1. Use plain tokio (.with_tokio()) as the executor — no pinned CPU thread pool. This serves as a baseline to measure the v2 scan path on its own before layering in the pinned pool. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Polar Signals Profiling ResultsLatest Run
Previous Runs (1)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.019x ➖ datafusion / vortex-file-compressed (1.019x ➖, 1↑ 3↓)
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.981x ➖, 12↑ 7↓)
datafusion / vortex-compact (0.951x ➖, 13↑ 6↓)
datafusion / parquet (0.976x ➖, 1↑ 1↓)
datafusion / arrow (0.926x ➖, 3↑ 0↓)
duckdb / vortex-file-compressed (0.959x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.955x ➖, 2↑ 0↓)
duckdb / parquet (0.989x ➖, 3↑ 4↓)
duckdb / duckdb (0.962x ➖, 3↑ 0↓)
Full attributed analysis
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (medium confidence) datafusion / vortex-file-compressed (0.962x ➖, 4↑ 3↓)
datafusion / vortex-compact (0.729x ✅, 8↑ 1↓)
datafusion / parquet (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.120x ❌, 1↑ 5↓)
duckdb / vortex-compact (1.073x ➖, 0↑ 3↓)
duckdb / parquet (1.091x ➖, 0↑ 3↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: Likely regression (high confidence) datafusion / vortex-file-compressed (2.063x ❌, 2↑ 18↓)
datafusion / vortex-compact (2.023x ❌, 1↑ 18↓)
datafusion / parquet (0.969x ➖, 0↑ 0↓)
datafusion / arrow (1.073x ➖, 0↑ 11↓)
duckdb / vortex-file-compressed (1.156x ❌, 0↑ 11↓)
duckdb / vortex-compact (1.169x ❌, 0↑ 16↓)
duckdb / parquet (1.014x ➖, 0↑ 1↓)
duckdb / duckdb (1.187x ❌, 0↑ 20↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (0.973x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.028x ➖, 0↑ 1↓)
duckdb / parquet (0.953x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.672x ✅, 11↑ 0↓)
datafusion / vortex-compact (0.752x ➖, 8↑ 1↓)
datafusion / parquet (0.797x ➖, 6↑ 0↓)
duckdb / vortex-file-compressed (0.919x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.943x ➖, 0↑ 0↓)
duckdb / parquet (0.912x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.855x ➖, 1↑ 0↓)
datafusion / vortex-compact (0.713x ➖, 3↑ 0↓)
datafusion / parquet (1.108x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (0.882x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.882x ➖, 1↑ 0↓)
duckdb / parquet (0.992x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.252x ❌, 4↑ 18↓)
datafusion / parquet (1.013x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.948x ➖, 7↑ 2↓)
duckdb / parquet (0.997x ➖, 0↑ 0↓)
duckdb / duckdb (1.019x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.105x ➖, 3↑ 6↓)
datafusion / vortex-compact (1.022x ➖, 5↑ 6↓)
datafusion / parquet (0.911x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.937x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.012x ➖, 0↑ 0↓)
duckdb / parquet (0.916x ➖, 0↑ 0↓)
Full attributed analysis
|
Merging this PR will degrade performance by 10.2%
Performance Changes
Comparing Footnotes
|
No description provided.