feat: add read_ranges to VortexReadAt - #9384
Conversation
Signed-off-by: Joseph Isaacs <joe.isaacs@live.co.uk>
Polar Signals Profiling ResultsLatest Run
Previous Runs (52)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.035x ➖ datafusion / vortex-file-compressed / ns (1.035x ➖, 0↑ 2↓)
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 / ns (1.003x ➖, 1↑ 3↓)
datafusion / vortex-compact / ns (0.991x ➖, 4↑ 2↓)
datafusion / parquet / ns (1.002x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed / ns (1.006x ➖, 3↑ 6↓)
duckdb / vortex-compact / ns (0.997x ➖, 1↑ 1↓)
duckdb / parquet / ns (0.999x ➖, 3↑ 4↓)
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 / ns (1.001x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.999x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.972x ➖, 2↑ 0↓)
duckdb / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.003x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.000x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed / ns (1.003x ➖, 2↑ 2↓)
duckdb / vortex-compact / ns (0.986x ➖, 3↑ 1↓)
duckdb / parquet / ns (0.990x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.161x ❌, 0↑ 3↓)
datafusion / vortex-compact / ns (1.118x ❌, 0↑ 2↓)
datafusion / parquet / ns (0.991x ➖, 1↑ 2↓)
duckdb / vortex-file-compressed / ns (0.981x ➖, 2↑ 0↓)
duckdb / vortex-compact / ns (0.976x ➖, 1↑ 0↓)
duckdb / parquet / ns (0.990x ➖, 0↑ 0↓)
File Size Changes (200 files changed, -0.0% overall, 89↑ 111↓)
Totals:
|
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.007x ➖, 1↑ 1↓)
datafusion / vortex-compact / ns (1.002x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.889x ✅, 5↑ 0↓)
duckdb / vortex-compact / ns (0.976x ➖, 1↑ 0↓)
duckdb / parquet / ns (0.997x ➖, 0↑ 0↓)
No file size changes detected. |
Signed-off-by: Joseph Isaacs <joe.isaacs@live.co.uk>
Merging this PR will degrade performance by 11.32%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | take[small_m/shuffled/primitive/nonnull/chunks=16384/indices=16] |
1 ms | 1.2 ms | -11.32% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ji/read-ranges (e8759c7) with develop (a272f51)
Footnotes
-
89 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.014x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (1.006x ➖, 0↑ 1↓)
datafusion / parquet / ns (0.997x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.997x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.026x ➖, 0↑ 2↓)
duckdb / parquet / ns (0.984x ➖, 1↑ 0↓)
No file size changes detected. |
Benchmarks: FineWeb S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.099x ➖, 1↑ 2↓)
datafusion / vortex-compact / ns (0.992x ➖, 1↑ 1↓)
datafusion / parquet / ns (1.052x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (0.995x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.770x ➖, 1↑ 0↓)
|
Benchmarks: Appian on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.002x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.008x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.992x ➖, 0↑ 0↓)
File Size Changes (10 files changed, -63.8% overall, 0↑ 10↓)
Totals:
|
Benchmarks: String Encoding 📖vortex / vortex-file-compressed / ms (0.995x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / % (1.000x ➖, 0↑ 0↓)
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.987x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.990x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed / ns (1.014x ➖, 1↑ 6↓)
duckdb / vortex-compact / ns (1.020x ➖, 2↑ 6↓)
duckdb / parquet / ns (0.997x ➖, 1↑ 0↓)
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 / ns (0.923x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (1.034x ➖, 1↑ 3↓)
datafusion / parquet / ns (0.950x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.027x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.007x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.984x ➖, 0↑ 0↓)
|
Benchmarks: Random Access 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
random-access / vortex-file-compressed / ns (0.999x ➖, 0↑ 0↓)
random-access / parquet / ns (0.996x ➖, 0↑ 0↓)
random-access / lance / ns (0.987x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-compact / ns (1.040x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.864x ➖, 4↑ 0↓)
duckdb / vortex-compact / ns (1.035x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.071x ➖, 0↑ 0↓)
|
Benchmarks: Compression 📖vortex / vortex-file-compressed / ns (0.988x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / bytes (1.000x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / ratio (0.994x ➖, 0↑ 1↓)
vortex / parquet / ns (0.997x ➖, 0↑ 0↓)
vortex / parquet / bytes (1.000x ➖, 0↑ 0↓)
|
Signed-off-by: Joseph Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joseph Isaacs <joe.isaacs@live.co.uk>
| coalesce_config, | ||
| max_alignment, | ||
| metrics, | ||
| concurrency, |
There was a problem hiding this comment.
should this be concurrency or batch_size?
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
1ae9d19 to
fc61ebb
Compare
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
GPU Compression |
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
read_rangesread_ranges to VortexReadAt
Rationale for this change
Batching can reduce the overhead of multiple IO requests to the same resource.
What changes are included in this PR?
This PR adds a new method to
VortexReadAtwhich allows batching and the streaming back of each result when ready.