Repository navigation
block_on_stream_thread_safe: increase channel size to number of cores - #9116
Conversation
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
af52bac to
e26dcee
Compare
Merging this PR will degrade performance by 0.54%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.005x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.005x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.994x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.995x ➖, 0↑ 0↓)
datafusion / parquet (0.993x ➖, 2↑ 0↓)
duckdb / vortex-file-compressed (1.013x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.000x ➖, 0↑ 0↓)
duckdb / parquet (1.000x ➖, 0↑ 0↓)
duckdb / duckdb (1.005x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.996x ➖, 2↑ 2↓)
datafusion / vortex-compact (0.998x ➖, 3↑ 1↓)
datafusion / parquet (1.003x ➖, 1↑ 1↓)
duckdb / vortex-file-compressed (0.987x ➖, 7↑ 4↓)
duckdb / vortex-compact (0.998x ➖, 2↑ 3↓)
duckdb / parquet (0.996x ➖, 4↑ 4↓)
duckdb / duckdb (0.995x ➖, 4↑ 2↓)
No file size changes detected. |
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 (1.046x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.049x ➖, 0↑ 0↓)
datafusion / parquet (0.986x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.963x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.914x ➖, 4↑ 0↓)
duckdb / parquet (0.985x ➖, 0↑ 0↓)
|
Benchmarks: FineWeb S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.037x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.019x ➖, 0↑ 0↓)
datafusion / parquet (1.021x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.020x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.976x ➖, 0↑ 0↓)
duckdb / parquet (0.937x ➖, 1↑ 1↓)
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.005x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.010x ➖, 0↑ 0↓)
datafusion / parquet (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.985x ➖, 0↑ 0↓)
duckdb / parquet (0.989x ➖, 1↑ 1↓)
duckdb / duckdb (0.981x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Appian on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.989x ➖, 0↑ 0↓)
datafusion / parquet (0.995x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.991x ➖, 0↑ 0↓)
duckdb / parquet (0.995x ➖, 0↑ 0↓)
duckdb / duckdb (0.988x ➖, 0↑ 0↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.996x ➖, 2↑ 2↓)
duckdb / parquet (1.003x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.005x ➖, 1↑ 2↓)
datafusion / parquet (1.002x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.004x ➖, 2↑ 3↓)
duckdb / parquet (1.001x ➖, 0↑ 0↓)
File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.042x ➖, 0↑ 2↓)
datafusion / parquet (1.045x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (0.983x ➖, 1↑ 0↓)
duckdb / parquet (0.987x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.8% overall, 41↑ 160↓)
Totals:
|
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.988x ➖, 0↑ 0↓)
datafusion / parquet (0.971x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.975x ➖, 1↑ 0↓)
duckdb / parquet (0.965x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: TPC-H SF=10 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.012x ➖, 1↑ 2↓)
datafusion / vortex-compact (0.969x ➖, 0↑ 0↓)
datafusion / parquet (0.899x ➖, 5↑ 2↓)
duckdb / vortex-file-compressed (0.974x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.001x ➖, 0↑ 0↓)
duckdb / parquet (0.997x ➖, 0↑ 0↓)
|
Benchmarks: Vortex queries 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.994x ➖, 0↑ 0↓)
datafusion / parquet (1.007x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
duckdb / parquet (1.003x ➖, 0↑ 0↓)
No file size changes detected. |
Duckdb uses CurrentThreadRuntime which in turn uses smol executor.
block_on_stream_thread_safeis what allows it to drive scan from multiplethreads. However, this method currently blocks on a channel of size 1 which
becomes a bottleneck if we run on a system with many cores, say 128-core
AWS c6id.metal.
Changing it to an item-per-core allows to save some time on large core systems.