Conversation
# Conflicts: # vortex-array/src/arrays/extension/array.rs # vortex-array/src/arrays/extension/vtable/mod.rs # vortex-array/src/arrays/extension/vtable/validity.rs Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Merging this PR will degrade performance by 24.74%
Performance Changes
Comparing Footnotes
|
Polar Signals Profiling ResultsLatest Run
Previous Runs (7)
Powered by Polar Signals Cloud |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.930x ➖, 5↑ 0↓)
datafusion / vortex-compact (0.952x ➖, 3↑ 0↓)
datafusion / parquet (0.985x ➖, 5↑ 3↓)
datafusion / arrow (0.952x ➖, 3↑ 0↓)
duckdb / vortex-file-compressed (0.881x ✅, 10↑ 0↓)
duckdb / vortex-compact (0.901x ➖, 10↑ 0↓)
duckdb / parquet (0.921x ➖, 8↑ 2↓)
duckdb / duckdb (0.917x ➖, 8↑ 0↓)
Full attributed analysis
|
Benchmarks: PolarSignals ProfilingVortex (geomean): 0.988x ➖ datafusion / vortex-file-compressed (0.988x ➖, 0↑ 0↓)
|
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.952x ➖, 4↑ 0↓)
datafusion / vortex-compact (0.981x ➖, 0↑ 0↓)
datafusion / parquet (0.987x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.996x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.991x ➖, 0↑ 0↓)
duckdb / parquet (0.979x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.350x ❌, 0↑ 12↓)
datafusion / vortex-compact (1.208x ➖, 0↑ 10↓)
datafusion / parquet (1.127x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (0.961x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.014x ➖, 0↑ 2↓)
duckdb / parquet (1.022x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.959x ➖, 7↑ 0↓)
datafusion / vortex-compact (1.001x ➖, 0↑ 1↓)
datafusion / parquet (0.927x ➖, 29↑ 0↓)
duckdb / vortex-file-compressed (0.999x ➖, 3↑ 1↓)
duckdb / vortex-compact (1.014x ➖, 0↑ 1↓)
duckdb / parquet (0.998x ➖, 0↑ 1↓)
duckdb / duckdb (1.000x ➖, 1↑ 1↓)
Full attributed analysis
|
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.100x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.083x ➖, 0↑ 2↓)
datafusion / parquet (1.076x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.964x ➖, 1↑ 0↓)
duckdb / vortex-compact (1.048x ➖, 0↑ 0↓)
duckdb / parquet (1.037x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.934x ➖, 8↑ 0↓)
datafusion / vortex-compact (0.964x ➖, 4↑ 0↓)
datafusion / parquet (0.911x ➖, 11↑ 0↓)
datafusion / arrow (0.894x ✅, 10↑ 0↓)
duckdb / vortex-file-compressed (0.840x ✅, 21↑ 0↓)
duckdb / vortex-compact (0.873x ✅, 16↑ 0↓)
duckdb / parquet (0.933x ➖, 2↑ 0↓)
duckdb / duckdb (0.986x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.953x ➖, 3↑ 4↓)
datafusion / vortex-compact (0.877x ➖, 1↑ 0↓)
datafusion / parquet (1.107x ➖, 0↑ 5↓)
duckdb / vortex-file-compressed (0.917x ➖, 1↑ 0↓)
duckdb / vortex-compact (0.926x ➖, 0↑ 0↓)
duckdb / parquet (0.975x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: Clickbench on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.747x ✅, 42↑ 0↓)
datafusion / parquet (0.794x ✅, 39↑ 0↓)
duckdb / vortex-file-compressed (0.840x ✅, 36↑ 1↓)
duckdb / parquet (0.836x ✅, 39↑ 0↓)
duckdb / duckdb (0.868x ✅, 31↑ 0↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (environment too noisy confidence) duckdb / vortex-file-compressed (0.995x ➖, 1↑ 1↓)
duckdb / vortex-compact (0.988x ➖, 0↑ 0↓)
duckdb / parquet (0.979x ➖, 0↑ 0↓)
Full attributed analysis
|
…PI lock files CI was failing because the VTable trait now requires `slots`, `slot_name`, and `with_slots` methods, which were missing from PythonVTable. Signed-off-by: Joe Isaacs <joe@spiraldb.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts: # vortex-array/src/vtable/mod.rs Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
RunsOn reads config from the default branch (develop) for public repos. Add _extends to inherit runner config from .github-private and pin arm64 AMI for prebuilt image testing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
8031285 to
bd11897
Compare
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> # Conflicts: # encodings/alp/public-api.lock # encodings/bytebool/public-api.lock # encodings/datetime-parts/public-api.lock # encodings/decimal-byte-parts/public-api.lock # encodings/fastlanes/public-api.lock # encodings/fsst/public-api.lock # encodings/pco/public-api.lock # encodings/runend/public-api.lock # encodings/sequence/public-api.lock # encodings/sparse/public-api.lock # encodings/zigzag/public-api.lock # encodings/zstd/public-api.lock # vortex-array/public-api.lock # vortex-array/src/arrays/scalar_fn/slice.rs # vortex-array/src/arrays/scalar_fn/vtable/mod.rs
We want to be able to mutate buffers in-place this is done trying to unwrap Arcs, requiring owned Arc<Array> inputs. This PR add owned execution. ```rust fn execute(&self, array: ArrayRef, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult>; ``` TODO: allow owned extraction of children from an owned array, this will be done using slots (#6870). --------- Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> # Conflicts: # encodings/alp/public-api.lock # encodings/alp/src/alp/array.rs # encodings/alp/src/alp_rd/array.rs # encodings/bytebool/public-api.lock # encodings/datetime-parts/public-api.lock # encodings/decimal-byte-parts/public-api.lock # encodings/fastlanes/public-api.lock # encodings/fsst/public-api.lock # encodings/pco/public-api.lock # encodings/runend/public-api.lock # encodings/sequence/public-api.lock # encodings/sparse/public-api.lock # encodings/zigzag/public-api.lock # encodings/zstd/public-api.lock # encodings/zstd/src/zstd_buffers.rs # vortex-array/public-api.lock # vortex-array/src/arrays/chunked/vtable/mod.rs # vortex-array/src/arrays/dict/vtable/mod.rs # vortex-array/src/arrays/filter/vtable.rs # vortex-array/src/arrays/shared/vtable.rs # vortex-array/src/arrays/slice/vtable.rs # vortex-array/src/arrays/variant/mod.rs # vortex-array/src/arrays/variant/vtable/mod.rs # vortex-array/src/executor.rs # vortex-array/src/vtable/mod.rs
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
8f9ca31 to
4dfb89b
Compare
Add back docs for each array child removed in #6870 --------- Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This PR moves towards having a fixed position for each child to reduce the complexity of finding the position of children.
This is motivated by the usage of iterative execution using child index to execute that child.
Slot are just fixed position children where absence of children is None and indexing logic is simple
breaks
implementors of VTable must used slots methods not children methods.