Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (2)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.123x ❌ datafusion / vortex-file-compressed (1.123x ❌, 0↑ 8↓)
|
File Sizes: PolarSignals ProfilingNo file size changes detected. |
Merging this PR will not alter performance
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.895x ✅, 4↑ 4↓)
datafusion / vortex-compact (0.910x ➖, 1↑ 0↓)
datafusion / parquet (0.991x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.899x ✅, 3↑ 2↓)
duckdb / vortex-compact (0.886x ✅, 1↑ 0↓)
duckdb / parquet (0.967x ➖, 2↑ 0↓)
Full attributed analysis
|
File Sizes: FineWeb NVMeNo file size changes detected. |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.110x ❌, 0↑ 13↓)
datafusion / vortex-compact (1.125x ❌, 0↑ 14↓)
datafusion / parquet (1.068x ➖, 0↑ 8↓)
datafusion / arrow (1.132x ❌, 0↑ 15↓)
duckdb / vortex-file-compressed (1.117x ❌, 0↑ 12↓)
duckdb / vortex-compact (1.094x ➖, 0↑ 12↓)
duckdb / parquet (1.050x ➖, 0↑ 3↓)
duckdb / duckdb (1.085x ➖, 0↑ 8↓)
Full attributed analysis
|
File Sizes: TPC-H SF=1 on NVMENo file size changes detected. |
Benchmarks: FineWeb S3Verdict: No clear signal (medium confidence) datafusion / vortex-file-compressed (0.803x ➖, 3↑ 3↓)
datafusion / vortex-compact (0.822x ➖, 3↑ 1↓)
datafusion / parquet (1.028x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.171x ➖, 1↑ 5↓)
duckdb / vortex-compact (0.942x ➖, 2↑ 3↓)
duckdb / parquet (0.989x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (0.947x ➖, 3↑ 1↓)
duckdb / vortex-compact (0.938x ➖, 3↑ 0↓)
duckdb / parquet (0.914x ➖, 2↑ 0↓)
Full attributed analysis
|
File Sizes: Statistical and Population GeneticsNo file size changes detected. |
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.074x ➖, 0↑ 4↓)
datafusion / vortex-compact (1.061x ➖, 0↑ 2↓)
datafusion / parquet (1.042x ➖, 0↑ 0↓)
datafusion / arrow (1.067x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.125x ❌, 0↑ 9↓)
duckdb / vortex-compact (1.089x ➖, 0↑ 6↓)
duckdb / parquet (1.014x ➖, 0↑ 0↓)
duckdb / duckdb (1.026x ➖, 0↑ 1↓)
Full attributed analysis
|
File Sizes: TPC-H SF=10 on NVMENo file size changes detected. |
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.187x ➖, 0↑ 6↓)
datafusion / vortex-compact (1.122x ➖, 0↑ 4↓)
datafusion / parquet (1.041x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.224x ➖, 0↑ 7↓)
duckdb / vortex-compact (1.217x ➖, 0↑ 10↓)
duckdb / parquet (0.992x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.056x ➖, 0↑ 6↓)
datafusion / parquet (1.029x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.077x ➖, 1↑ 8↓)
duckdb / parquet (1.006x ➖, 1↑ 0↓)
duckdb / duckdb (1.038x ➖, 0↑ 3↓)
Full attributed analysis
|
File Sizes: Clickbench on NVMEFile Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.946x ➖, 7↑ 1↓)
datafusion / vortex-compact (0.956x ➖, 8↑ 0↓)
datafusion / parquet (0.939x ➖, 9↑ 0↓)
duckdb / vortex-file-compressed (0.964x ➖, 14↑ 5↓)
duckdb / vortex-compact (0.947x ➖, 14↑ 0↓)
duckdb / parquet (0.970x ➖, 6↑ 0↓)
duckdb / duckdb (0.942x ➖, 11↑ 0↓)
Full attributed analysis
|
File Sizes: TPC-DS SF=1 on NVMENo file size changes detected. |
Benchmarks: Random AccessVortex (geomean): 1.038x ➖ unknown / unknown (1.067x ➖, 0↑ 18↓)
|
Benchmarks: CompressionVortex (geomean): 0.997x ➖ unknown / unknown (1.000x ➖, 6↑ 2↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.123x ➖, 0↑ 6↓)
datafusion / vortex-compact (1.218x ➖, 0↑ 8↓)
datafusion / parquet (0.979x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.291x ➖, 0↑ 8↓)
duckdb / vortex-compact (1.325x ❌, 0↑ 11↓)
duckdb / parquet (0.924x ➖, 0↑ 0↓)
Full attributed analysis
|
| // Step 4: execute the projection only if the filter kept rows. | ||
| let reader = Arc::clone(&ctx.reader); | ||
| let projection = ctx.projection.clone(); |
a10y
left a comment
There was a problem hiding this comment.
looks good, definitely the change to task execution is good, i'm a bit confused where we actually cancel requests now?
| } | ||
|
|
||
| let projection_future = | ||
| reader.projection_evaluation(&row_range, &projection, MaskFuture::ready(mask))?; |
There was a problem hiding this comment.
actually, do we want to do this? different layouts should handle projection with empty Mask efficiently on their own I would hope? plus now we defer creating the projection_evaluation which kills some of the pre-fetching right?
There was a problem hiding this comment.
I don't think they actually do? For example, in flat layout we do:
let mut array = array.clone().await?;
let mask = mask.await?;|
I think this directionally makes sense, just want to make sure we wire in cancelation. This will probably fix a lot of issues we've had reported about Vortex doing a surprising amount of IO against S3. |
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
7d02f45 to
b0c4fe8
Compare
Summary
Closes: #000
Testing