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

Yasin N. Silva, Xiaopeng Xiong, Walid G. Aref

Research output: Contribution to journalArticlepeer-review

46 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)719-738
Number of pages20
JournalVLDB Journal
Issue number3
StatePublished - Jun 2009
Externally publishedYes


  • Frequent updates
  • Indexing techniques
  • Performance
  • Spatio-temporal databases

ASJC Scopus subject areas

  • Information Systems
  • Hardware and Architecture


Dive into the research topics of 'The RUM-tree: Supporting frequent updates in R-trees using memos'. Together they form a unique fingerprint.

Cite this