Repository navigation
Conversation
Signed-off-by: Gunther Xing <[email protected]>
Signed-off-by: Gunther Xing <[email protected]>
82c5dc9 to
7477dcb
Compare
Merging this PR will degrade performance by 19.67%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | density_sweep_dense_runs[0.001] |
28.5 µs | 47 µs | -39.26% |
| ❌ | Simulation | filter_powerlaw_by_mostly_true[250000] |
98.1 µs | 145.1 µs | -32.42% |
| ❌ | WallTime | filter_avx2[64] |
2.1 µs | 2.3 µs | -10.83% |
| ⚡ | WallTime | starts_with_avx512[8, VarBin] |
46.3 µs | 40.7 µs | +13.76% |
| 🆕 | Simulation | once[bool] |
N/A | 185.2 µs | N/A |
| 🆕 | Simulation | once[interleave] |
N/A | 520 µs | N/A |
| 🆕 | Simulation | once[list] |
N/A | 1.2 ms | N/A |
| 🆕 | Simulation | once[varbinview] |
N/A | 196.2 µs | N/A |
| 🆕 | Simulation | repeated[bool] |
N/A | 156.1 µs | N/A |
| 🆕 | Simulation | repeated[interleave] |
N/A | 547.4 µs | N/A |
| 🆕 | Simulation | repeated[list] |
N/A | 1.1 ms | N/A |
| 🆕 | Simulation | repeated[varbinview] |
N/A | 172.9 µs | N/A |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing jiengup:migrate-every-encoding (7477dcb) with develop (ed119bf)
This PR is still WIP. Any feedback or guidance is welcome.
Summary
OperationsVTable::scalar_attoprobe_scalar#9971OperationsVTable::scalar_at cannot retain preparation between row reads. The probe API introduced in #9843 retains encoding state, validity, and child probes across repeated reads; #9844 demonstrates this for RLE, RunEnd, and PCO.
This commit migrates eight simple implementations to explicit probe_scalar methods. Each uses ProbeState = (): none needs an encoding-owned cache. Encodings that need parent validity check it explicitly, and scalar_at remains a one-off probe shim during the transition. The probe benchmark now includes Bool and VarBinView.
Changes
Milestones
Each remaining migration will be a separate reviewable commit at the agreed milestone boundary.
probe_scalarrequired; deprecate and removeOperationsVTable::scalar_atArrayRefscalar and validity accessors on the later-release schedule in Migrate every encoding fromOperationsVTable::scalar_attoprobe_scalar#9971ScalarFnhas aprobe_scalaroverride today, but it still callsscalar_atand is therefore unfinished.ScalarFnValidityis an additional internal target.TransposedBoolis listed in the issue but has no implementation in the current tree.Preparation and state
()means no encoding-owned cache; a repeated probe can still retain validity and child probes. Pending designs are markedTBD. Candidate reuse paths are listed to guide each milestone, not to commit to a cache before its benchmark and correctness review.ProbeState()()()()()()()()Verification
cargo nextest run -p vortex-array -p vortex-bytebool -p vortex-sequence: 4,201 passed, 1 skipped.cargo nextest run -p vortex-python: 35 passed.Described in #9843
AI Usage