Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (4)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 0.984x ➖ datafusion / vortex-file-compressed (0.984x ➖, 1↑ 0↓)
|
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 (1.000x ➖, 1↑ 1↓)
datafusion / vortex-compact (0.963x ➖, 2↑ 0↓)
datafusion / parquet (1.063x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (1.074x ➖, 1↑ 3↓)
duckdb / vortex-compact (1.158x ❌, 0↑ 3↓)
duckdb / parquet (0.976x ➖, 1↑ 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.018x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.019x ➖, 0↑ 0↓)
datafusion / parquet (0.999x ➖, 1↑ 0↓)
datafusion / arrow (1.012x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.008x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.999x ➖, 0↑ 1↓)
duckdb / parquet (1.001x ➖, 1↑ 0↓)
duckdb / duckdb (1.017x ➖, 0↑ 1↓)
Full attributed analysis
|
File Sizes: TPC-H SF=1 on NVMENo file size changes detected. |
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.891x ➖, 2↑ 0↓)
datafusion / vortex-compact (1.052x ➖, 1↑ 1↓)
datafusion / parquet (1.178x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (1.058x ➖, 1↑ 2↓)
duckdb / vortex-compact (1.162x ➖, 0↑ 3↓)
duckdb / parquet (1.067x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (0.990x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.994x ➖, 0↑ 0↓)
duckdb / parquet (1.009x ➖, 0↑ 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 (0.913x ➖, 10↑ 0↓)
datafusion / vortex-compact (0.908x ➖, 12↑ 0↓)
datafusion / parquet (0.944x ➖, 7↑ 0↓)
datafusion / arrow (0.914x ➖, 9↑ 0↓)
duckdb / vortex-file-compressed (0.916x ➖, 12↑ 0↓)
duckdb / vortex-compact (0.981x ➖, 2↑ 0↓)
duckdb / parquet (0.967x ➖, 1↑ 0↓)
duckdb / duckdb (0.968x ➖, 0↑ 0↓)
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.101x ➖, 0↑ 4↓)
datafusion / vortex-compact (1.020x ➖, 0↑ 1↓)
datafusion / parquet (1.054x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (1.051x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.026x ➖, 0↑ 0↓)
duckdb / parquet (1.045x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.042x ➖, 0↑ 8↓)
datafusion / parquet (1.050x ➖, 0↑ 8↓)
duckdb / vortex-file-compressed (1.020x ➖, 2↑ 6↓)
duckdb / parquet (1.003x ➖, 0↑ 0↓)
duckdb / duckdb (1.012x ➖, 2↑ 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 (1.070x ➖, 0↑ 22↓)
datafusion / vortex-compact (1.087x ➖, 0↑ 30↓)
datafusion / parquet (1.016x ➖, 1↑ 5↓)
duckdb / vortex-file-compressed (1.036x ➖, 2↑ 23↓)
duckdb / vortex-compact (1.056x ➖, 2↑ 22↓)
duckdb / parquet (1.051x ➖, 0↑ 19↓)
duckdb / duckdb (1.089x ➖, 0↑ 39↓)
Full attributed analysis
|
File Sizes: TPC-DS SF=1 on NVMENo file size changes detected. |
Benchmarks: Random AccessVortex (geomean): 0.986x ➖ unknown / unknown (0.989x ➖, 0↑ 1↓)
|
Benchmarks: CompressionVortex (geomean): 1.027x ➖ unknown / unknown (1.023x ➖, 0↑ 12↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.989x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.000x ➖, 0↑ 1↓)
datafusion / parquet (0.981x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.039x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.012x ➖, 0↑ 0↓)
duckdb / parquet (0.955x ➖, 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
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Summary
Closes: #000
Testing