feat(vortex-geo): ST_Distance via the geo crate + Polygon type#8497
Merged
Conversation
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
a0dd7e7 to
ce8e596
Compare
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | decompress_rd[f64, (10000, 0.01)] |
108.9 µs | 138.9 µs | -21.64% |
| ❌ | Simulation | decompress_rd[f64, (10000, 0.1)] |
109.2 µs | 139.3 µs | -21.62% |
| ❌ | Simulation | decompress_rd[f64, (10000, 0.0)] |
108.9 µs | 138.9 µs | -21.61% |
| ❌ | Simulation | decompress_rd[f32, (100000, 0.0)] |
496.1 µs | 583.7 µs | -15.01% |
| ❌ | Simulation | decompress_rd[f32, (10000, 0.01)] |
78.2 µs | 90.6 µs | -13.64% |
| ❌ | Simulation | decompress_rd[f32, (10000, 0.1)] |
78.2 µs | 90.6 µs | -13.64% |
| ❌ | Simulation | decompress_rd[f32, (10000, 0.0)] |
78.7 µs | 91 µs | -13.6% |
| ⚡ | Simulation | take_10k_first_chunk_only |
251.3 µs | 206.5 µs | +21.73% |
| ⚡ | Simulation | decompress_rd[f64, (100000, 0.01)] |
1,020.9 µs | 842.6 µs | +21.16% |
| ⚡ | Simulation | decompress_rd[f64, (100000, 0.1)] |
1,020.9 µs | 842.6 µs | +21.16% |
| ⚡ | Simulation | take_10k_dispersed |
264.8 µs | 220.2 µs | +20.25% |
| ⚡ | Simulation | decompress_rd[f32, (100000, 0.1)] |
583 µs | 495.3 µs | +17.72% |
| ⚡ | Simulation | decompress_rd[f32, (100000, 0.01)] |
583 µs | 495.3 µs | +17.72% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
244.4 ns | 215.3 ns | +13.55% |
| ⚡ | Simulation | patched_take_10k_adversarial |
259.7 µs | 229.6 µs | +13.1% |
| ⚡ | Simulation | patched_take_10k_first_chunk_only |
282.9 µs | 252.7 µs | +11.97% |
| ⚡ | Simulation | patched_take_10k_dispersed |
297 µs | 266.9 µs | +11.31% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
304.7 ns | 275.6 ns | +10.58% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing vortex-geo-pr (a9b93a4) with develop (9814173)
gatesn
approved these changes
Jun 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
geo: unification, one distance (and remaining geo functions) implementation, replace the hand-roll kernel.polygon: as a second native type riding that same pathThe performance decreased (5.6ms -> 12ms on Q1) compared with the old direct-coordinate kernel, it is a tradeoff for one unified, general decode path. The cost is the intermediate allocation/enumeration, not the math itself. Type-specialized fast paths (e.g. point-point straight off the coordinate struct) can recover it later without changing the API.
Testing
4 distance behavior tests through geo crate, and tests for polygon type.