We present the Priority R-tree, or PR-tree, which is the first R-tree variant that always answers a window query using O((N/B)1-1/d + T/B) I/Os, where N is the number of ddimensional (hyper-) rectangles stored in the R-tree, B is the disk block size, and T is the output size. This is provably asymptotically optimal and significantly better than other Rtree variants, where a query may visit all N/B leaves in the tree even when T = 0. We also present an extensive experimental study of the practical performance of the PR-tree using both real-life and synthetic data. This study shows that the PR-tree performs similar to the best known R-tree variants on real-life and relatively nicely distributed data, but outperforms them significantly on more extreme data. Categories and Subject Descriptors: E.1 [Data Structures]: Trees; F.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems--Geometrical problems and computations; H.3 [Information Storage and Retrieval...
Lars Arge, Mark de Berg, Herman J. Haverkort, Ke Y