feat: chunk list elements + bounded sub-range reader#8678
Conversation
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matthew Katz" <katz@spiraldb.com> Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Merging this PR will improve performance by 10.33%
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 ProfilingVortex (geomean): 1.112x ❌ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.112x ❌, 0↑ 4↓)
File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
Totals:
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.022x ➖, 0↑ 1↓)
datafusion / parquet (0.976x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.971x ➖, 1↑ 0↓)
duckdb / parquet (0.984x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -46.2% overall, 1↑ 2↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.016x ➖, 0↑ 0↓)
datafusion / parquet (1.011x ➖, 1↑ 1↓)
datafusion / arrow (0.997x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.022x ➖, 0↑ 0↓)
duckdb / parquet (1.034x ➖, 0↑ 2↓)
File Size Changes (17 files changed, -44.4% overall, 5↑ 12↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.052x ➖, 1↑ 10↓)
datafusion / parquet (1.050x ➖, 1↑ 12↓)
duckdb / vortex-file-compressed (1.053x ➖, 1↑ 12↓)
duckdb / parquet (1.041x ➖, 0↑ 4↓)
File Size Changes (41 files changed, -43.5% overall, 13↑ 28↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.920x ➖, 3↑ 0↓)
datafusion / parquet (0.976x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.982x ➖, 1↑ 0↓)
duckdb / parquet (0.997x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.6% overall, 53↑ 148↓)
Totals:
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (1.086x ➖, 0↑ 3↓)
duckdb / parquet (1.007x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -23.0% overall, 1↑ 2↓)
Totals:
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.079x ➖, 0↑ 2↓)
datafusion / parquet (1.028x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.063x ➖, 0↑ 0↓)
duckdb / parquet (0.988x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.014x ➖, 0↑ 0↓)
datafusion / parquet (1.022x ➖, 0↑ 0↓)
datafusion / arrow (1.013x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.013x ➖, 0↑ 0↓)
duckdb / parquet (1.012x ➖, 0↑ 0↓)
File Size Changes (47 files changed, -44.5% overall, 11↑ 36↓)
Totals:
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.276x ❌, 0↑ 38↓)
datafusion / parquet (1.318x ❌, 0↑ 42↓)
duckdb / vortex-file-compressed (0.999x ➖, 1↑ 1↓)
duckdb / parquet (1.027x ➖, 0↑ 1↓)
File Size Changes (201 files changed, -39.1% overall, 52↑ 149↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.060x ➖, 0↑ 4↓)
datafusion / parquet (0.946x ➖, 1↑ 2↓)
duckdb / vortex-file-compressed (1.024x ➖, 0↑ 0↓)
duckdb / parquet (1.044x ➖, 0↑ 0↓)
|
Repartition the
elementschild of a list column into ~1 MiB chunks, each compressed independently, and have the list reader to fetch only the element-chunks a requested row range overlaps (bounded sub-range reads) instead of the whole elements buffer.