Cache-Oblivious R-Trees

Abstract We develop a cache-oblivious data structure for storing a set S of N axis-aligned rectangles in the plane, such that all rectangles in S intersecting a query rectangle or point can be found efficiently. Our structure is an axis-aligned bounding-box hierarchy and as such it is the first cache-oblivious R-tree with provable performance guarantees. If no point in the plane is contained in more than a constant number of rectangles in S, we can construct, for any constant ε, a structure that answers a rectangle query using $O(\sqrt{N/B}+T/B)$ memory transfers and a point query using O((N/B)ε) memory transfers, where T is the number of reported rectangles and B is the block size of memory transfers between any two levels of a multilevel memory hierarchy. We also develop a variant of our structure that achieves the same performance on input sets with arbitrary overlap among the rectangles. The rectangle query bound matches the bound of the best known linear-space cache-aware structure.

[1]  Antonin Guttman,et al.  R-trees: a dynamic index structure for spatial searching , 1984, SIGMOD '84.

[2]  Michael A. Bender,et al.  Cache-oblivious B-trees , 2000, Proceedings 41st Annual Symposium on Foundations of Computer Science.

[3]  Richard Cole,et al.  Optimised Predecessor Data Structures for Internal Memory , 2001, WAE.

[4]  H. Haverkort Results on geometric networks and data structures , 2004 .

[5]  Yannis Manolopoulos,et al.  R-Trees: Theory and Applications , 2005, Advanced Information and Knowledge Processing.

[6]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[7]  A. Nanopoulos,et al.  R-trees Have Grown Everywhere , 2003 .

[8]  Christos Faloutsos,et al.  The R+-Tree: A Dynamic Index for Multi-Dimensional Objects , 1987, VLDB.

[9]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[10]  Oliver Günther,et al.  Multidimensional access methods , 1998, CSUR.

[11]  Rudolf Bayer,et al.  Organization and maintenance of large ordered indexes , 1972, Acta Informatica.

[12]  Gerth Stølting Brodal,et al.  Funnel Heap - A Cache Oblivious Priority Queue , 2002, ISAAC.

[13]  Lars Arge,et al.  External Memory Data Structures , 2001, ESA.

[14]  Mark de Berg,et al.  The Priority R-tree: a practically efficient and worst-case optimal R-tree , 2004, SIGMOD '04.

[15]  Jeffrey Scott Vitter,et al.  External memory algorithms and data structures: dealing with massive data , 2001, CSUR.

[16]  Joachim Gudmundsson,et al.  Box-Trees and R-Trees with Near-Optimal Query Time , 2001, SCG '01.

[17]  Christos Faloutsos,et al.  Hilbert R-tree: An Improved R-tree using Fractals , 1994, VLDB.

[18]  Jeffrey Scott Vitter,et al.  A Framework for Index Bulk Loading and Dynamization , 2001, ICALP.

[19]  Michael A. Bender,et al.  Cache-oblivious priority queue and graph algorithm applications , 2002, STOC '02.

[20]  Jing Wu,et al.  A locality-preserving cache-oblivious dynamic dictionary , 2002, SODA '02.

[21]  Jon Louis Bentley,et al.  Decomposable Searching Problems , 1979, Inf. Process. Lett..

[22]  Pankaj K. Agarwal,et al.  Cache-oblivious data structures for orthogonal range searching , 2003, SCG '03.

[23]  Ambuj K. Singh,et al.  Optimal Dynamic Range Searching in Non-replicating Index Structures , 1999, ICDT.

[24]  Pankaj K. Agarwal,et al.  Geometric Range Searching and Its Relatives , 2007 .

[25]  Yannis Manolopoulos,et al.  R-Trees: Theory and Applications (Advanced Information and Knowledge Processing) , 2005 .

[26]  Gerth Stølting Brodal,et al.  Cache oblivious search trees via binary trees of small height , 2001, SODA '02.

[27]  Jan Vahrenhold,et al.  I/O-efficient dynamic planar point location (extended abstract) , 2000, SCG '00.

[28]  Richard Cole,et al.  Exponential Structures for Efficient Cache-Oblivious Algorithms , 2002, ICALP.

[29]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[30]  Hans-Peter Kriegel,et al.  The R*-tree: an efficient and robust access method for points and rectangles , 1990, SIGMOD '90.