Research output: Contribution to journal/Conference contribution in journal/Contribution to newspaper › Journal article › Research › peer-review
Final published version
We present efficient fully persistent B-trees in the I/O model with block size B that support range searches on t reported elements at any accessed version of size n in O(logBn+t/B) I/Os and updates at any accessed version in O(logBn+log2B) amortized I/Os, using O(m/B) disk blocks after m updates. This improves both the query and update I/O-efficiency of the previous fully persistent B-trees of Lanka and Mays (ACM SIGMOD ICMD 1991). To achieve the result, we introduce an implementation for ephemeral B-trees that supports searches and updates in O(logBn) I/Os, using O(n/B) blocks, where moreover every update makes a worst-case constant number of modifications to the structure. We make these B-trees fully persistent using an I/O-efficient method for full persistence, inspired by the node-splitting method of Driscoll et al. (JCSS 1989). Interesting in its own right, the method is generic enough to be applied to any external memory pointer-based data structure with maximum in-degree din and out-degree O(B), where every node occupies a constant number of blocks on disk. For a user-specified parameter π=Ω(din), we achieve [Formula Presented] I/O-overhead per access to a field of an ephemeral block and amortized [Formula Presented] I/O-overhead and O(1/B) block space-overhead per modification to the ephemeral structure.
Original language | English |
---|---|
Journal | Theoretical Computer Science |
Volume | 841 |
Pages (from-to) | 10-26 |
ISSN | 0304-3975 |
DOIs | |
Publication status | Published - Nov 2020 |
See relations at Aarhus University Citationformats
ID: 197084269