Skip to content

feat(vortex-bench): support vortex native geo types into SpatialBench, and wire into benchmark orchestrator#8623

Open
HarukiMoriarty wants to merge 2 commits into
nemo/geo-multipolyginfrom
nemo/duckdb-native-geometry
Open

feat(vortex-bench): support vortex native geo types into SpatialBench, and wire into benchmark orchestrator#8623
HarukiMoriarty wants to merge 2 commits into
nemo/geo-multipolyginfrom
nemo/duckdb-native-geometry

Conversation

@HarukiMoriarty

Copy link
Copy Markdown
Contributor

Summary

Wires vortex geo native format into SpatialBench, and wire into the vx-bench / bench-orchestrator pipeline so it can be run end-to-end like the other benchmarks.

Running command:

vx-bench run spatialbench -e duckdb -f parquet,vortex,vortex-native --opt scale-factor=1.0 --queries 1,2,3,4,5,6,7,8,9

Limitation

  • DuckDB-only as before. For now SpatialBench queries use DuckDB-specific ST_* spatial SQL that DataFusion has no functions for yet. There is a a single ad-hoc entry in BENCHMARK_ENGINES = { SPATIALBENCH: {DUCKDB} }.
  • Queries 10, 11, 12 is timeout simply because DuckDB poorly support on Spatial index.

Performance

SF=1.0

┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Query ┃ duckdb:parquet (base) ┃   duckdb:vortex ┃ duckdb:vortex-native ┃
┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ 1     │                40.8ms │  13.8ms (0.34x) │       23.2ms (0.57x) │
│ 2     │               181.2ms │  26.3ms (0.14x) │       35.3ms (0.20x) │
│ 3     │                57.8ms │  19.8ms (0.34x) │       30.9ms (0.53x) │
│ 4     │               331.9ms │  61.8ms (0.19x) │      111.0ms (0.33x) │
│ 5     │               356.1ms │ 294.3ms (0.83x) │      299.3ms (0.84x) │
│ 6     │               441.9ms │  86.3ms (0.20x) │      135.1ms (0.31x) │
│ 7     │               157.2ms │  73.7ms (0.47x) │       93.1ms (0.59x) │
│ 8     │               197.8ms │  78.1ms (0.39x) │       91.9ms (0.46x) │
│ 9     │                20.3ms │  18.6ms (0.91x) │       20.7ms (1.02x) │
└───────┴───────────────────────┴─────────────────┴──────────────────────┘

SF=10

┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Query ┃ duckdb:parquet (base) ┃   duckdb:vortex ┃ duckdb:vortex-native ┃
┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ 1     │               160.4ms │ 128.5ms (0.80x) │      214.8ms (1.34x) │
│ 2     │               254.3ms │ 239.8ms (0.94x) │      325.9ms (1.28x) │
│ 3     │               231.0ms │ 198.7ms (0.86x) │      284.4ms (1.23x) │
│ 4     │               188.0ms │ 124.2ms (0.66x) │      147.9ms (0.79x) │
│ 5     │                 3.14s │   3.05s (0.97x) │        2.92s (0.93x) │
│ 6     │               480.5ms │ 361.7ms (0.75x) │      467.7ms (0.97x) │
│ 7     │               992.8ms │   1.02s (1.02x) │      915.2ms (0.92x) │
│ 8     │                 1.07s │ 961.8ms (0.90x) │        1.02s (0.95x) │
│ 9     │                34.2ms │  34.1ms (1.00x) │       43.5ms (1.27x) │
└───────┴───────────────────────┴─────────────────┴──────────────────────┘

Takeaways: for now we do not have only pushdown to execute predicate in vortex kernel, so geo native types pay the tax of converting to geo-binary (talk to duckdb) but no gains, so in SF=10 vortex-native is less efficient compared with vortex-wkb.

Signed-off-by: Nemo Yu <zyu379@wisc.edu>
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
@codspeed-hq

codspeed-hq Bot commented Jun 29, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 11.93%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

❌ 1 regressed benchmark
✅ 1588 untouched benchmarks
⏩ 4 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation bitwise_not_vortex_buffer_mut[128] 215.3 ns 244.4 ns -11.93%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing nemo/duckdb-native-geometry (69a4f90) with nemo/geo-multipolygin (a3c046b)

Open in CodSpeed

Footnotes

  1. 4 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant