Summary: DOI: 10.1007/s00453-003-1021-x
Algorithmica (2003) 37: 124
© 2003 Springer-Verlag New York Inc.
The Buffer Tree: A Technique for Designing
Batched External Data Structures1
Abstract. We present a technique for designing external memory data structures that support batched
operations I/O efficiently. We show how the technique can be used to develop external versions of a search
tree, a priority queue, and a segment tree, and give examples of how these structures can be used to develop I/O-
efficient algorithms. The developed algorithms are either extremely simple or straightforward generalizations
of known internal memory algorithms--given the developed external data structures.
Key Words. I/O efficiency, Internal memory algorithms, Batched external data structures, Buffer tree.
1. Introduction. In recent years, increasing attention has been given to Input/Output-
efficient (or I/O-efficient) algorithms. This is due to the fact that communication between
fast internal memory and slower external memory such as disks is the bottleneck in many
as internal computation gets faster and parallel computing gains popularity.
Much work has been done on designing external versions of data structures designed
for internal memory. Most of these structures are designed to be used in on-line settings,