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.
Similar content being viewed by others
References
Agarwal, P.K., Arge, L., Danner, A., Holland-Minkley, B.: Cache-oblivious data structures for orthogonal range searching. In: Proc. ACM Symposium on Computational Geometry, pp. 237–245 (2003)
Agarwal, P.K., Arge, L., Procopiuc, O., Vitter, J.S.: A framework for index bulk loading and dynamization. In: Proc. International Colloquium on Automata, Languages, and Programming, pp. 115–127 (2001)
Agarwal, P.K., de Berg, M., Gudmundsson, J., Hammar, M., Haverkort, H.J.: Box-trees and R-trees with near-optimal query time. Discrete Comput. Geom. 28, 291–312 (2002)
Agarwal, P.K., Erickson, J.: Geometric range searching and its relatives. In: Chazelle, B., Goodman, J.E., Pollack, R. (eds.) Advances in Discrete and Computational Geometry. Contemporary Mathematics, vol. 223, pp. 1–56. American Mathematical Society, Providence (1999)
Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Commun. ACM 31(9), 1116–1127 (1988)
Arge, L.: External memory data structures. In: Abello, J., Pardalos, P.M., Resende, M.G.C. (eds.) Handbook of Massive Data Sets, pp. 313–358. Kluwer Academic, Dordrecht (2002)
Arge, L., Bender, M., Demaine, E., Holland-Minkley, B., Munro, J.I.: Cache-oblivious priority-queue and graph algorithms. In: Proc. ACM Symposium on Theory of Computation, pp. 268–276 (2002)
Arge, L., de Berg, M., Haverkort, H.J., Yi, K.: The priority R-tree: a practically efficient and worst-case-optimal R-tree. In: Symp. of the ACM Special Interest Group on Management of Data (SIGMOD), Paris, 2004, pp. 347–358
Arge, L., Vahrenhold, J.: I/O-efficient dynamic planar point location. Comput. Geom. Theory Appl. 29(2), 147–162 (2004)
Bayer, R., McCreight, E.: Organization and maintenance of large ordered indexes. Acta Inform. 1, 173–189 (1972)
Beckmann, N., Kriegel, H.-P., Schneider, R., Seeger, B.: The R*-tree: an efficient and robust access method for points and rectangles. In: Proc. SIGMOD International Conference on Management of Data, pp. 322–331 (1990)
Bender, M.A., Cole, R., Raman, R.: Exponential structures for cache-oblivious algorithms. In: Proc. International Colloquium on Automata, Languages, and Programming, pp. 195–207 (2002)
Bender, M.A., Demaine, E.D., Farach-Colton, M.: Cache-oblivious B-trees. In: Proc. IEEE Symposium on Foundations of Computer Science, pp. 339–409 (2000)
Bender, M.A., Duan, Z., Iacono, J., Wu, J.: A locality-preserving cache-oblivious dynamic dictionary. In: Proc. ACM-SIAM Symposium on Discrete Algorithms, pp. 29–38 (2002)
Bentley, J.L.: Decomposable searching problems. Inf. Process. Lett. 8(5), 244–251 (1979)
Brodal, G.S., Fagerberg, R., Jacob, R.: Cache oblivious search trees via binary trees of small height. In: Proc. ACM-SIAM Symposium on Discrete Algorithms, pp. 39–48 (2002)
Brodal, G.S., Fagerberg, R.: Funnel heap—a cache oblivious priority queue. In: International Symposium on Algorithms and Computation. Lecture Notes in Computer Science, vol. 2518, pp. 219–228. Springer, Berlin (2002)
Comer, D.: The ubiquitous B-tree. ACM Comput. Surv. 11(2), 121–137 (1979)
Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: Proc. IEEE Symposium on Foundations of Computer Science, pp. 285–298 (1999)
Gaede, V., Günther, O.: Multidimensional access methods. ACM Comput. Surv. 30(2), 170–231 (1998)
Guttman, A.: R-trees: a dynamic index structure for spatial searching. In: Proc. SIGMOD International Conference on Management of Data, pp. 47–57 (1984)
Haverkort, H.J.: Results on geometric networks and data structures. PhD thesis, Utrecht University (2004)
Kamel, I., Faloutsos, C.: Hilbert R-tree: An improved R-tree using fractals. In: Proc. International Conference on Very Large Databases, pp. 500–509 (1994)
Kanth, K.V.R., Singh, A.K.: Optimal dynamic range searching in non-replicating index structures. In: Proc. International Conference on Database Theory. Lecture Notes in Computer Science, vol. 1540, pp. 257–276. Springer, Berlin (1999)
Manolopoulos, Y., Nanopoulos, A., Papadopoulos, A.N., Theodoridis, Y.: R-Trees: Theory and Applications. Advanced Information and Knowledge Processing. Springer, Berlin (2006)
Prokop, H.: Cache-oblivious algorithms. Master’s thesis, Massachusetts Institute of Technology, Cambridge, MA, June 1999
Rahman, N., Cole, R., Raman, R.: Optimized predecessor data structures for internal memory. In: Proc. Workshop on Algorithm Engineering. Lecture Notes in Computer Science, vol. 2141, pp. 67–78. Springer, Berlin (2001)
Sellis, T., Roussopoulos, N., Faloutsos, C.: The R+-tree: a dynamic index for multi-dimensional objects. In: Proc. International Conference on Very Large Databases, pp. 507–518 (1987)
Vitter, J.S.: External memory algorithms and data structures: dealing with MASSIVE data. ACM Comput. Surv. 33(2), 209–271 (2001)
Author information
Authors and Affiliations
Corresponding author
Additional information
L. Arge supported in part by the US National Science Foundation through RI grant EIA-9972879, CAREER grant CCR-9984099, ITR grant EIA-0112849, and US–Germany Cooperative Research Program grant INT-0129182, by the US Army Research Office through grant W911NF-04-1-0278, by an Ole Rømer Scholarship from the Danish National Science Research Council, and by MADALGO—Center for Massive Data Algorithmics—a center of the Danish National Research Foundation. Part of this work was done while Lars Arge was at Duke University.
M. de Berg supported by the Netherlands’ Organisation for Scientific Research (NWO) under project No. 639.023.301.
This work was done while Herman Haverkort was at Karlsruhe University, supported by the European Commission, FET open project DELIS (IST-001907), and subsequently at the University of Aarhus, supported by a grant from the Danish National Science Research Council.
Rights and permissions
About this article
Cite this article
Arge, L., de Berg, M. & Haverkort, H. Cache-Oblivious R-Trees. Algorithmica 53, 50–68 (2009). https://doi.org/10.1007/s00453-007-9007-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00453-007-9007-8