The RUM-tree: supporting frequent updates in R-trees using memos

The problem of frequently updating multi-dimensional indexes arises in many location-dependent applications. While the R-tree and its variants are the dominant choices for indexing multi-dimensional objects, the R-tree exhibits inferior performance in the presence of frequent updates. In this paper,...

Full description

Saved in:
Bibliographic Details
Published inThe VLDB journal Vol. 18; no. 3; pp. 719 - 738
Main Authors Silva, Yasin N., Xiong, Xiaopeng, Aref, Walid G.
Format Journal Article
LanguageEnglish
Published Berlin/Heidelberg Springer-Verlag 01.06.2009
Springer
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:The problem of frequently updating multi-dimensional indexes arises in many location-dependent applications. While the R-tree and its variants are the dominant choices for indexing multi-dimensional objects, the R-tree exhibits inferior performance in the presence of frequent updates. In this paper, we present an R-tree variant, termed the RUM-tree (which stands for R-tree with update memo) that reduces the cost of object updates. The RUM-tree processes updates in a memo-based approach that avoids disk accesses for purging old entries during an update process. Therefore, the cost of an update operation in the RUM-tree is reduced to the cost of only an insert operation. The removal of old object entries is carried out by a garbage cleaner inside the RUM-tree. In this paper, we present the details of the RUM-tree and study its properties. We also address the issues of crash recovery and concurrency control for the RUM-tree. Theoretical analysis and comprehensive experimental evaluation demonstrate that the RUM-tree outperforms other R-tree variants by up to one order of magnitude in scenarios with frequent updates.
ISSN:1066-8888
0949-877X
DOI:10.1007/s00778-008-0120-3