Cache-oblivious dynamic dictionaries with update/query tradeoffs

  • Authors:
  • Gerth Stølting Brodal;Erik D. Demaine;Jeremy T. Fineman;John Iacono;Stefan Langerman;J. Ian Munro

  • Affiliations:
  • Aarhus University, Århus N, Denmark and MADALGO --- Center for Massive Data Algorithmics;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA and MADALGO --- Center for Massive Data Algorithmics;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA;Polytechnic Institute of New York University, Brooklyn, NY;Université Libre de Bruxelles, Bruxelles, Belgium;University of Waterloo, Waterloo, Ontario, Canada

  • Venue:
  • SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Several existing cache-oblivious dynamic dictionaries achieve O(logB N) (or slightly better O(logB N/M)) memory transfers per operation, where N is the number of items stored, M is the memory size, and B is the block size, which matches the classic B-tree data structure. One recent structure achieves the same query bound and a sometimes-better amortized update bound of O(1/BΘ(1/log log B)2) logB N + 1/B log2 N) memory trans-fers. This paper presents a new data structure, the xDict, implementing predecessor queries in O(1/ε log B N/M) worst-case memory transfers and insertions and deletions in O(1/εB1-ε logB N/M) amortized memory transfers, for any constant ε with 0 N = M Bo(B1-ε), whereas the B-tree's Θ(logB N/M) is subconstant only when N = o(MB), and the previously obtained Θ(1/BΘ(1/(log log B)2) logB N + 1/B log2 N) is subconstant only when N = o(2√B). The xDict attains the optimal tradeoff between insertions and queries, even in the broader external-memory model, for the range where inserts cost between Ω(1/B lg1+ε N) and O(1/lg3 N) memory transfers.