Repository navigation
Simplify error types, remove kind from struct - #10080
Conversation
e45d46e to
824bbb4
Compare
Merging this PR will regress 19 benchmarks4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
824bbb4 to
a36c01c
Compare
2ee2c82 to
7f17feb
Compare
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Commits: PR datafusion / vortex-file-compressed / ns (0.995x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: String Encoding 📖Commits: PR vortex / vortex-file-compressed / ms (0.997x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / % (1.000x ➖, 0↑ 0↓)
|
Benchmarks: FineWeb NVMe 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.001x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.911x ➖, 2↑ 2↓)
datafusion / parquet / ns (1.008x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.072x ➖, 1↑ 3↓)
duckdb / vortex-compact / ns (1.093x ➖, 0↑ 2↓)
duckdb / parquet / ns (0.977x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.005x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.980x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (0.988x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.996x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Clickbench Sorted on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.995x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (1.003x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.011x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.014x ➖, 0↑ 1↓)
duckdb / parquet / ns (0.997x ➖, 2↑ 1↓)
File Size Changes (200 files changed, -0.0% overall, 99↑ 101↓)
Totals:
|
Benchmarks: FineWeb S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.797x ➖, 2↑ 0↓)
datafusion / vortex-compact / ns (0.824x ➖, 2↑ 0↓)
datafusion / parquet / ns (0.731x ➖, 5↑ 0↓)
duckdb / vortex-file-compressed / ns (0.859x ➖, 2↑ 0↓)
duckdb / vortex-compact / ns (0.912x ➖, 1↑ 0↓)
duckdb / parquet / ns (0.730x ➖, 2↑ 0↓)
|
Benchmarks: Appian on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-compact / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.010x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.023x ➖, 0↑ 1↓)
No file size changes detected. |
Benchmarks: Clickbench on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (1.001x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.001x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.977x ➖, 3↑ 0↓)
duckdb / vortex-compact / ns (0.995x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.992x ➖, 0↑ 1↓)
No file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.999x ➖, 0↑ 2↓)
datafusion / vortex-compact / ns (0.992x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.000x ➖, 2↑ 2↓)
duckdb / vortex-compact / ns (1.000x ➖, 4↑ 3↓)
duckdb / parquet / ns (1.001x ➖, 3↑ 4↓)
No file size changes detected. |
Benchmarks: TPC-H SF=10 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.993x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.997x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.984x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (0.997x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.996x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Statistical and Population Genetics 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.009x ➖, 0↑ 1↓)
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.994x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.991x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (0.999x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.001x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Compression 📖Commits: PR vortex / vortex-file-compressed / ns (0.981x ➖, 0↑ 1↓)
vortex / vortex-file-compressed / bytes (1.000x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / ratio (0.991x ➖, 0↑ 1↓)
vortex / parquet / ns (0.995x ➖, 0↑ 0↓)
vortex / parquet / bytes (1.000x ➖, 0↑ 0↓)
vortex / arrow-ipc / ns (0.951x ➖, 5↑ 0↓)
vortex / arrow-ipc / bytes (1.000x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=1 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.964x ➖, 5↑ 6↓)
datafusion / vortex-compact / ns (0.896x ➖, 5↑ 3↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed / ns (0.879x ➖, 6↑ 2↓)
duckdb / vortex-compact / ns (0.880x ➖, 2↑ 1↓)
duckdb / parquet / ns (1.068x ➖, 0↑ 3↓)
|
Benchmarks: TPC-H SF=10 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-compact / ns (0.742x ➖, 8↑ 1↓)
datafusion / parquet / ns (0.663x ✅, 15↑ 0↓)
duckdb / vortex-compact / ns (0.907x ➖, 1↑ 1↓)
duckdb / parquet / ns (0.770x ➖, 4↑ 1↓)
|
Benchmarks: Random Access 📖Commits: PR How to read Verdict and Engines
vortex / arrow-ipc / ns (0.940x ➖, 1↑ 0↓)
random-access / vortex-file-compressed / ns (0.982x ➖, 1↑ 0↓)
random-access / parquet / ns (0.993x ➖, 0↑ 0↓)
random-access / lance / ns (0.988x ➖, 0↑ 0↓)
|
Benchmarks: Random Access (S3) 📖Commits: PR How to read Verdict and Engines
random-access / vortex-file-compressed / ns (0.934x ➖, 4↑ 4↓)
random-access / parquet / ns (1.049x ➖, 0↑ 1↓)
random-access / lance / ns (0.855x ➖, 3↑ 2↓)
|
243389b to
957acbb
Compare
6478d51 to
59e77bd
Compare
0312f9f to
8c8b6c8
Compare
f89c6b5 to
3115e2c
Compare
VortexError had an enum variant per failure mode and per foreign error type (Arrow, flatbuffers, prost, io, object_store, jiff, ...). Callers rarely branched on the variant, and keeping one per dependency made the type large and the set of variants grow with every new dependency. A VortexError is now a message, an optional source and a backtrace. A foreign error is kept as the source and recovered by downcasting, and context is added in place with with_context. The payload sits behind a single Arc, so VortexError and VortexResult<()> are one pointer wide, which keeps most results in registers on the success path. The error macros take a plain format string, plus the Context: and External: forms. Call sites that used the variant-specific forms now pass a message, and errors that were formatted into new errors now add context instead, so their source and backtrace survive. Tests that matched on a variant now assert on the guard's message. Python raises RuntimeError for every Vortex error, as before. The C API reports VX_ERROR_CODE_OTHER for Vortex errors and VX_ERROR_CODE_PANIC for panics, at their existing values; the other codes are retired, and the C++ ErrorCode mirrors the C enum. Signed-off-by: Robert Kruszewski <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01S7EtMqoZ91rrCCh9vS2yTm
3115e2c to
be70183
Compare
Records why FX2 was dropped (#10798 documents the cast-rule contract), the merged CD2 fixtures, the error types without categories (#10080), and the FoR scheme change (#10757). The tracking issues #10701 and #10733 now hold the state of each PR, so part 4 points to them instead of a status table. Signed-off-by: Connor Tsui <[email protected]>
Records why FX2 was dropped (#10798 documents the cast-rule contract), the merged CD2 fixtures, the error types without categories (#10080), and the FoR scheme change (#10757). The tracking issues #10701 and #10733 now hold the state of each PR, so part 4 points to them instead of a status table. Signed-off-by: Connor Tsui <[email protected]>
## Summary `chunked_input_with_mixed_dimensions_returns_error` has failed on `develop` since #10080 removed the "Mismatched types" text that it looks for. CI excludes `vortex-bench` from nextest, so CI never ran it. The conversion still rejects chunks with different vector dimensions at the `vortex_ensure_eq!` in `list_to_vector_ext`, so only the assertion was stale. ## Changes The test now checks that the error names both vector dtypes: dimension 2 from the second chunk against dimension 3 from the first. Signed-off-by: Connor Tsui <[email protected]>
Instead of error being an enum we convert an error to be a struct with message and error kind. I had followed the structure of Python errors which have couple error categories https://docs.python.org/3/builtins/exceptions.html#exception-hierarchy majority of which don't apply to this project