duckdb: honor preserve_insertion_order for scans - #9604
Conversation
Merging this PR will regress 3 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | words_gather_scalar_avx2[65536] |
8.3 µs | 9.4 µs | -11.96% |
| ❌ | Simulation | cold_misaligned[(16, 64)] |
344.6 µs | 390.2 µs | -11.67% |
| ❌ | Simulation | compress_fsst[(500, 64, 8)] |
480.4 µs | 538 µs | -10.72% |
| ⚡ | WallTime | arrow_checked_add_u32_neon[16384] |
20.4 µs | 13.5 µs | +50.62% |
| ⚡ | WallTime | arrow_checked_add_u32_avx512[16384] |
21.4 µs | 17.6 µs | +21.22% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing myrrc/duckdb-chunk-offset (6554a82) with develop (17bd9e2)
Footnotes
-
106 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. ↩
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Commits: PR datafusion / vortex-file-compressed / ns (0.991x ➖, 1↑ 1↓)
No file size changes detected. |
Benchmarks: FineWeb NVMe 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.999x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.019x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed / ns (0.978x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.995x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.011x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.003x ➖, 0↑ 0↓)
File Size Changes (9 files changed, -43.9% overall, 0↑ 9↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.923x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.012x ➖, 0↑ 1↓)
duckdb / parquet / ns (1.003x ➖, 0↑ 1↓)
File Size Changes (201 files changed, -42.8% overall, 53↑ 148↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.995x ➖, 1↑ 1↓)
duckdb / vortex-file-compressed / ns (1.011x ➖, 1↑ 8↓)
duckdb / parquet / ns (0.998x ➖, 5↑ 6↓)
File Size Changes (25 files changed, -43.5% overall, 0↑ 25↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.005x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.986x ➖, 1↑ 0↓)
File Size Changes (9 files changed, -44.0% overall, 0↑ 9↓)
Totals:
|
Benchmarks: Statistical and Population Genetics 📖Commits: PR How to read Verdict and Engines
duckdb / vortex-file-compressed / ns (1.048x ➖, 0↑ 3↓)
duckdb / parquet / ns (0.996x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: FineWeb S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.040x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.019x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.977x ➖, 1↑ 0↓)
duckdb / parquet / ns (1.055x ➖, 1↑ 2↓)
|
Benchmarks: Clickbench on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.989x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed / ns (1.009x ➖, 0↑ 4↓)
duckdb / parquet / ns (0.998x ➖, 0↑ 1↓)
File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.987x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.033x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.062x ➖, 0↑ 2↓)
duckdb / parquet / ns (0.999x ➖, 0↑ 0↓)
|
| pub fn reader_initialize( | ||
| file: &mut OpenFileReader, | ||
| global: &GlobalState, | ||
| mut ordered: bool, |
There was a problem hiding this comment.
move ordered into global
|
|
||
| query I | ||
| SELECT id FROM '${WORK_DIR}/chunk-offset.vortex' LIMIT 1; |
Benchmarks: String Encoding 📖Commits: PR vortex / vortex-file-compressed / ms (1.004x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / % (1.000x ➖, 0↑ 0↓)
|
Benchmarks: Random Access 📖Commits: PR How to read Verdict and Engines
random-access / vortex-file-compressed / ns (1.004x ➖, 0↑ 0↓)
random-access / parquet / ns (1.000x ➖, 0↑ 0↓)
random-access / lance / ns (1.005x ➖, 0↑ 0↓)
|
Duckdb provides ordering guarantees for file scans by default unlike ANSI SQL.
These are provided via preserve_insertion_order setting. Use this setting in
scans.
Resolves: #9481