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,...
Saved in:
Published in | The VLDB journal Vol. 18; no. 3; pp. 719 - 738 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
Berlin/Heidelberg
Springer-Verlag
01.06.2009
Springer |
Subjects | |
Online Access | Get full text |
Cover
Loading…
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 |