Skip to main content

Cache-Oblivious B-Tree

  • Reference work entry
  • First Online:
  • 311 Accesses

Footnote 1

Years and Authors of Summarized Original Work

  • 2005; Bender, Demaine, Farach-Colton

Problem Definition

Computers contain a hierarchy of memory levels, with vastly differing access times. Hence, the time for a memory access depends strongly on what is the innermost level containing the data accessed. In analysis of algorithms, the standard RAM (or von Neumann) model cannot capture this effect, and external memory models were introduced to better model the situation. The most widely used of these models is the two-level I/O-model [4], also called the external memory model or the disk access model. The I/O-model approximates the memory hierarchy by modeling two levels, with the inner level having size M, the outer level having infinite size, and transfers between the levels taking place in blocks of B consecutive elements. The cost of an algorithm is the number of such transfers it makes.

The cache-oblivious model, introduced by Frigo et al. [26], elegantly generalizes the...

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,599.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,999.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Research supported by Danish Council for Independent Research, Natural Sciences.

Recommended Reading

  1. Afshani P, Zeh N (2011) Improved space bounds for cache-oblivious range reporting. In: Proceedings of the 22nd annual ACM-SIAM symposium on discrete algorithms, San Francisco, pp 1745–1758

    Google Scholar 

  2. Afshani P, Hamilton CH, Zeh N (2010) A general approach for cache-oblivious range reporting and approximate range counting. Comput Geom 43(8):700–712. Conference version appeared at SoCG 2009

    Google Scholar 

  3. Afshani P, Hamilton CH, Zeh N (2011) Cache-oblivious range reporting with optimal queries requires superlinear space. Discret Comput Geom 45(4):824–850. Conference version appeared at SoCG 2009

    Google Scholar 

  4. Aggarwal A, Vitter JS (1988) The input/output complexity of sorting and related problems. Commun ACM 31(9):1116–1127

    Article  MathSciNet  Google Scholar 

  5. Arge L, Vitter JS (2003) Optimal external memory interval management. SIAM J Comput 32(6):1488–1508

    Article  MathSciNet  MATH  Google Scholar 

  6. Arge L, Zeh N (2006) Simple and semi-dynamic structures for cache-oblivious planar orthogonal range searching. In: Proceedings of the 22nd ACM symposium on computational geometry, Sedona, pp 158–166

    Google Scholar 

  7. Arge L, de Berg M, Haverkort HJ (2005) Cache-oblivious R-trees. In: Proceedings of the 21st ACM symposium on computational geometry, Pisa, pp 170–179

    Google Scholar 

  8. Arge L, Brodal GS, Fagerberg R (2005) Cache-oblivious data structures. In: Mehta D, Sahni S (eds) Handbook on data structures and applications. CRC, Boca Raton

    Google Scholar 

  9. Arge L, Brodal GS, Fagerberg R, Laustsen M (2005) Cache-oblivious planar orthogonal range searching and counting. In: Proceedings of the 21st ACM symposium on computational geometry, Pisa, pp 160–169

    Google Scholar 

  10. Bender M, Cole R, Demaine E, Farach-Colton M (2002) Scanning and traversing: maintaining data for traversals in a memory hierarchy. In: Proceedings of the 10th annual European symposium on algorithms, Rome. LNCS, vol 2461, pp 139–151

    Google Scholar 

  11. Bender M, Cole R, Raman R (2002) Exponential structures for cache-oblivious algorithms. In: Proceedings of the 29th international colloquium on automata, languages, and programming, Málaga. LNCS, vol 2380, pp 195–207

    Google Scholar 

  12. Bender MA, Duan Z, Iacono J, Wu J (2004) A locality-preserving cache-oblivious dynamic dictionary. J Algorithms 53(2):115–136. Conference version appeared at SODA 2002

    Google Scholar 

  13. Bender MA, Demaine ED, Farach-Colton M (2005) Cache-oblivious B-trees. SIAM J Comput 35(2):341–358. Conference version appeared at FOCS 2000

    Google Scholar 

  14. Bender MA, Fineman JT, Gilbert S, Kuszmaul BC (2005) Concurrent cache-oblivious B-trees. In: Proceedings of the 17th annual ACM symposium on parallelism in algorithms and architectures, Las Vegas, pp 228–237

    Google Scholar 

  15. Bender MA, Farach-Colton M, Kuszmaul BC (2006) Cache-oblivious string B-trees. In: Proceedings of the 25th ACM SIGACT-SIGMOD-SIGART symposium on principles of database systems, Chicago, pp 233–242

    Google Scholar 

  16. Bender MA, Farach-Colton M, Fineman JT, Fogel YR, Kuszmaul BC, Nelson J (2007) Cache-oblivious streaming B-trees. In: Proceedings of the 19th annual ACM symposium on parallelism in algorithms and architectures, San Diego, pp 81–92

    Google Scholar 

  17. Bender MA, Brodal GS, Fagerberg R, Ge D, He S, Hu H, Iacono J, López-Ortiz A (2011) The cost of cache-oblivious searching. Algorithmica 61(2):463–505. Conference version appeared at FOCS 2003

    Google Scholar 

  18. Brodal GS, Fagerberg R (2006) Cache-oblivious string dictionaries. In: Proceedings of the 17th annual ACM-SIAM symposium on discrete algorithms, Miami, pp 581–590

    Google Scholar 

  19. Brodal GS, Kejlberg-Rasmussen C (2012) Cache-oblivious implicit predecessor dictionaries with the working set property. In: Proceedings of the 29th annual symposium on theoretical aspects of computer science, Paris. Leibniz international proceedings in informatics, vol 14, pp 112–123

    Google Scholar 

  20. Brodal GS, Fagerberg R, Jacob R (2002) Cache-oblivious search trees via binary trees of small height. In: Proceedings of the 13th annual ACM-SIAM symposium on discrete algorithms, San Francisco, pp 39–48

    Google Scholar 

  21. Brodal GS, Demaine ED, Fineman JT, Iacono J, Langerman S, Munro JI (2010) Cache-oblivious dynamic dictionaries with update/query tradeoffs. In: Proceedings of the 21st annual ACM-SIAM symposium on discrete algorithms, Austin, pp 1448–1456

    Google Scholar 

  22. Ferragina P (2013) On the weak prefix-search problem. Theor Comput Sci 483:75–84. Conference version appeared at CPM 2011

    Google Scholar 

  23. Ferragina P, Venturini R (2013) Compressed cache-oblivious string B-tree. In: Proceedings of the algorithms – ESA 2013 – 21st annual European symposium, Sophia Antipolis. LNCS, vol 8125, pp 469–480

    Google Scholar 

  24. Ferragina P, Grossi R, Gupta A, Shah R, Vitter JS (2008) On searching compressed string collections cache-obliviously. In: Proceedings of the 27th ACM SIGMOD-SIGACT-SIGART symposium on principles of database systems, Vancouver, pp 181–190

    Google Scholar 

  25. Franceschini G, Grossi R (2003) Optimal worst-case operations for implicit cache-oblivious search trees. In: Proceedings of the 8th international workshop on algorithms and data structures (WADS), Ottawa. LNCS, vol 2748, pp 114–126

    Google Scholar 

  26. Frigo M, Leiserson CE, Prokop H, Ramachandran S (2012) Cache-oblivious algorithms. ACM Trans Algorithms 8(1):4. Conference version appeared at FOCS 1999

    Google Scholar 

  27. Hon W, Lam TW, Shah R, Tam S, Vitter JS (2011) Cache-oblivious index for approximate string matching. Theor Comput Sci 412(29):3579–3588. Conference version appeared at CPM 2007

    Google Scholar 

  28. Itai A, Konheim AG, Rodeh M (1981) A sparse table implementation of priority queues. In: 8th International colloquium on Automata, languages and programming, Acre (Akko). LNCS, vol 115, pp 417–431

    Google Scholar 

  29. Ladner RE, Fortna R, Nguyen BH (2002) A comparison of cache aware and cache oblivious static search trees using program instrumentation. In: Experimental algorithmics. LNCS, Springer-Verlag, Berlin/Heidelberg, vol 2547, pp 78–92

    Google Scholar 

  30. Lindstrom P, Rajan D (2014) Optimal hierarchical layouts for cache-oblivious search trees. In: IEEE 30th international conference on data engineering, Chicago, pp 616–627

    Google Scholar 

  31. Pagh R, Wei Z, Yi K, Zhang Q (2014) Cache-oblivious hashing. Algorithmica 69(4):864–883. Conference version appeared at PODS 2010

    Google Scholar 

  32. Prokop H (1999) Cache-oblivious algorithms. Master’s thesis, Massachusetts Institute of Technology

    MATH  Google Scholar 

  33. Rahman N, Cole R, Raman R (2001) Optimised predecessor data structures for internal memory. In: Proceedings of the algorithm engineering, 5th international workshop (WAE), Aarhus. LNCS, vol 2141, pp 67–78

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rolf Fagerberg .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer Science+Business Media New York

About this entry

Cite this entry

Fagerberg, R. (2016). Cache-Oblivious B-Tree. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_61

Download citation

Publish with us

Policies and ethics