Spatial Partitioning Indexes

Spatial Partitioning Indexes

A partitioning index divides space into non-overlapping regions. In GIS, common partitioning indexes are the quad-tree and kd-tree. PostGIS currently uses a balanced index, the r-tree for all spatial indexing. R-tree's are good general purpose indexes for range data, but since GIS data tends to be accessed in discrete regions, spatial partitioning indexes are a better fit for the work-load.

Early benchmarking of a partitioning approach has shown as much as a several-times improvement in access speed over the r-tree index. Implementing a generic partitioning API, called "SP-GiST" inside PostgreSQL will open the possibility for PostGIS to expose quad-tree and kd-tree indexes to users.

Implementation of this performance enhancement will be in cooperation with the SP-GiST authors (Bartunov and Sigaev) and include the following items:

  • Definition of the final SP-GiST API in consultation with the PostGIS team.
  • Write-ahead log support for SP-GiST indexes.
  • Concurrency and locking support for SP-GiST indexes.
  • Documentation of the SP-GiST code to PostgreSQL standards.
  • Implementation of SP-GiST quad-trees index bindings within PostGIS.

Funding

This roadmap item is currently unfunded.

Get a quote now!

Get a quote or read more about core development to add your support to a road-map item.

Other Roadmap Items

More Geodetic Functions

Support for ST_Union(), ST_Difference(), and true/false predicate tests calculated natively on the sphere for the GEOGRAPHY type introduced in PostGIS 1.5.

Faster Geodetic Functions

The geodetic GEOGRAPHY operations are currently very CPU intensive, because they involved multiple trancendental math calls. Performance could be improved through caching of calculations, both at a low level (coordinates) and a high level (data structures).

Point Cloud Types

A POINTPATCH type, and associated index and functions, for handling the management of multi-terrabyte collections of LIDAR point data.

All roadmap items...