Table of Contents
Fetching ...

Parallel Dynamic Spatial Indexes

Ziyang Men, Bo Huang, Yan Gu, Yihan Sun

TL;DR

This work tackles the challenge of dynamic spatial data by developing parallel index structures optimized for batch updates. It introduces two data-structure families, the P-Orth tree and the SPaC-tree, implemented in PSI-Lib, to achieve high-throughput updates while preserving strong query performance. The P-Orth tree avoids space-filling curves and relies on a batch-friendly sieving strategy, whereas the SPaC-tree uses a partial-leaf-order design built atop PaC-trees to enable fast updates with near-PaC-tree query quality. The authors provide rigorous theoretical bounds and comprehensive experiments on synthetic and real-world data, showing superior update performance and competitive queries, and release the library for public use. The work advances practical parallel spatial indexing for highly dynamic workloads in GIS, graphics, and robotics contexts.

Abstract

Maintaining spatial data (points in two or three dimensions) is crucial and has a wide range of applications, such as graphics, GIS, and robotics. To handle spatial data, many data structures, called spatial indexes, have been proposed, e.g. kd-trees, oct/quadtrees (also called Orth-trees), R-trees, and bounding volume hierarchies (BVHs). In real-world applications, spatial datasets tend to be highly dynamic, requiring batch updates of points with low latency. This calls for efficient parallel batch updates on spatial indexes. Unfortunately, there is very little work that achieves this. In this paper, we systematically study parallel spatial indexes, with a special focus on achieving high-performance update performance for highly dynamic workloads. We select two types of spatial indexes that are considered optimized for low-latency updates: Orth-tree and R-tree/BVH. We propose two data structures: the P-Orth tree, a parallel Orth-tree, and the SPaC-tree family, a parallel R-tree/BVH. Both the P-Orth tree and the SPaC-tree deliver superior performance in batch updates compared to existing parallel kd-trees and Orth-trees, while preserving better or competitive query performance relative to their corresponding Orth-tree and R-tree counterparts. We also present comprehensive experiments comparing the performance of various parallel spatial indexes and share our findings at the end of the paper.

Parallel Dynamic Spatial Indexes

TL;DR

This work tackles the challenge of dynamic spatial data by developing parallel index structures optimized for batch updates. It introduces two data-structure families, the P-Orth tree and the SPaC-tree, implemented in PSI-Lib, to achieve high-throughput updates while preserving strong query performance. The P-Orth tree avoids space-filling curves and relies on a batch-friendly sieving strategy, whereas the SPaC-tree uses a partial-leaf-order design built atop PaC-trees to enable fast updates with near-PaC-tree query quality. The authors provide rigorous theoretical bounds and comprehensive experiments on synthetic and real-world data, showing superior update performance and competitive queries, and release the library for public use. The work advances practical parallel spatial indexing for highly dynamic workloads in GIS, graphics, and robotics contexts.

Abstract

Maintaining spatial data (points in two or three dimensions) is crucial and has a wide range of applications, such as graphics, GIS, and robotics. To handle spatial data, many data structures, called spatial indexes, have been proposed, e.g. kd-trees, oct/quadtrees (also called Orth-trees), R-trees, and bounding volume hierarchies (BVHs). In real-world applications, spatial datasets tend to be highly dynamic, requiring batch updates of points with low latency. This calls for efficient parallel batch updates on spatial indexes. Unfortunately, there is very little work that achieves this. In this paper, we systematically study parallel spatial indexes, with a special focus on achieving high-performance update performance for highly dynamic workloads. We select two types of spatial indexes that are considered optimized for low-latency updates: Orth-tree and R-tree/BVH. We propose two data structures: the P-Orth tree, a parallel Orth-tree, and the SPaC-tree family, a parallel R-tree/BVH. Both the P-Orth tree and the SPaC-tree deliver superior performance in batch updates compared to existing parallel kd-trees and Orth-trees, while preserving better or competitive query performance relative to their corresponding Orth-tree and R-tree counterparts. We also present comprehensive experiments comparing the performance of various parallel spatial indexes and share our findings at the end of the paper.
Paper Structure (38 sections, 7 theorems, 2 equations, 9 figures, 2 tables, 4 algorithms)

This paper contains 38 sections, 7 theorems, 2 equations, 9 figures, 2 tables, 4 algorithms.

Key Result

Theorem 3.1

algo:orth-constr constructs a P-Orth tree of size $n$ using $O(n\log \Delta)$ work, $O(\log n\log \Delta)$ span, and $O(n/B\log_M \Delta)$ cache complexity. A batch update of size $m=O(n)$ on a P-Orth tree of size $n$ uses $O(m\log \Delta)$ work, $O(\log m\log \Delta)$ span, and $O(m/B\log_M \Delta)

Figures (9)

  • Figure 1: Space-filling curves and an example of a SPaC-tree with 15 points and size-3 leaf wrapping. Each leaf in this case has 3 points and its bounding box marked in blue.
  • Figure 2: Construction and batch insertion for P-Orth trees.
  • Figure 3: Running time (in seconds) on synthetic data. Lower is better. The fastest time in each test is in bold and underlined. We use colors to mark results within 1.1$\times$, 2$\times$, 5$\times$, and $>5\times$ the fastest time. Detailed settings for build, queries, and incremental insertion/deletion are introduced at the beginning of \ref{['sec:exp-synthetic']}. InD/OOD: in-/out-of-distribution. $\dagger$: Boost R-tree is sequential and only support point updates. Therefore, we omit the construction/update times, and report query times after incremental inserting/deleting points one by one.
  • Figure 4: Running time (in seconds) of $k$-NN queries for $k\in\{1,10,100\}$. Lower is better. The dataset contains 500M points in 2 dimensions. The tree is constructed by incremental insertion with batch ratio $0.01\%$. The test contains $k$-NN queries from $10^7$ points from both InD and OOD distribution. Plots are in log-log scale.
  • Figure 6: Running time (in seconds) on real-world datasets. Lower is better. Insert/Delete: incremental insertion/deletion/ with batch size 0.01%. "RG": Range-list queries.
  • ...and 4 more figures

Theorems & Definitions (7)

  • Theorem 3.1
  • Theorem 4.1
  • Lemma A.1
  • Theorem A.2
  • Theorem A.3
  • Theorem B.1
  • Theorem B.2