The geo module composes CPU/GPU spatial backends, indexing structures, geometry processing, and advanced geo workflows into a bounded runtime contract for geospatial workloads in ThemisDB.
- Backend execution plane
- exact/approximate CPU paths and optional Boost exact behavior
- GPU execution with CUDA/HIP paths and deterministic CPU fallback
- Spatial index and geometry plane
- R-tree and cursor-based index access
- GeoJSON geometry hierarchy, validation, and geometric operations
- Query and analytics plane
- spatial joins and composable filters
- clustering, raster, temporal-spatial, and k-NN bridge workflows
- Runtime integration plane
- device detection and backend selection
- tile and runtime observability integration surfaces
| Contract | Behavior |
|---|---|
| backend contract | deterministic CPU/GPU selection and fallback semantics |
| indexing/geometry contract | explicit spatial indexing and geometry-validation behavior |
| query contract | bounded join/clustering/raster/temporal execution semantics |
| integration contract | explicit capability detection and runtime bridge behavior |
- unsupported or degraded GPU paths fail over to CPU where supported.
- invalid geometry inputs fail with explicit validation errors.
- unavailable optional features surface deterministic non-silent failure behavior.
- Verified files:
- src/geo/cpu_backend.cpp
- src/geo/gpu_backend_stub.cpp
- src/geo/gpu_backend_cuda.cu
- src/geo/gpu_backend_hip.cpp
- src/geo/geo_rtree.cpp
- src/geo/geo_json_geometry.cpp
- src/geo/spatial_join.cpp
- src/geo/raster.cpp
- src/geo/temporal_spatial_query.cpp
- Verified architecture claims:
- explicit backend/indexing/query/integration planes
- bounded deterministic failure behavior for invalid/degraded paths
- module-local ownership of geospatial runtime orchestration