Delta validity is a top level child - #9970
robert3005 wants to merge 1 commit into
Conversation
f1e55d9 to
ef96e92
Compare
For performant delta encoding we have to read all the values in deltas buffer that means that undefined values in deltas buffer are significant. Instead of performing careful transformation dance to ensure correctness we remove null values from deltas and keep them as a top level child. Cascading encodings don't need any special handling and will preserve all values since they're all valid. Signed-off-by: Robert Kruszewski <github@robertk.io>
Merging this PR will degrade performance by 11.75%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | decode_primitives[f32, (1000, 512)] |
42 µs | 64.2 µs | -34.63% |
| ❌ | Simulation | take_fsl_u32_random[16, 100] |
125.9 µs | 165.8 µs | -24.03% |
| ❌ | WallTime | dbp_assemble_kernel_avx512[(I128, 1024)] |
463 ns | 557 ns | -16.88% |
| ❌ | WallTime | dbp_assemble_kernel_avx2[(I128, 1024)] |
464 ns | 538 ns | -13.75% |
| ⚡ | Simulation | take_fsl_f16_random[16, 100] |
179.5 µs | 119.4 µs | +50.35% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing fix/fastlanes-delta-validity-top-child (2d0a705) with develop (a542cbd)
Footnotes
-
293 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. ↩
ef96e92 to
2d0a705
Compare
For performant delta encoding we have to read all the values in deltas
buffer that means that undefined values in deltas buffer are
significant. Instead of performing careful transformation dance to
ensure correctness we remove null values from deltas and keep them as
a top level child. Cascading encodings don't need any special handling
and will preserve all values since they're all valid.