Skip to main content

The buffer tree: A new technique for optimal I/O-algorithms

Extended abstract

  • Invited Presentation
  • Conference paper
  • First Online:
Algorithms and Data Structures (WADS 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 955))

Included in the following conference series:

Abstract

In this paper we develop a technique for transforming an internal memory tree data structure into an external storage structure. We show how the technique can be used to develop a search-tree-like structure, a priority-queue, a (one-dimensional) range-tree and a segment-tree, and give examples of how these structures can be used to develop efficient I/O-algorithms. All our algorithms are either extremely simple or straightforward generalizations of known internal memory algorithms — given the developed external data structures.

This work was partially supported by the ESPRIT II Basic Research Actions Program of the EC under contract No. 7141 (project ALCOM II) and by Aarhus University Research Foundation.

Part of this work was done at the Department of Computer Science, Duke University.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Aggarwal, J.S. Vitter: The I/O Complexity of Sorting and Related Problems. In Proc. of 14th ICALP (1987), LNCS 267, 467–478, and: The Input/Output Complexity of Sorting and Related Problems. Communications of the ACM, Vol 31 (9) (1988), 1116–1127.

    Google Scholar 

  2. L. Arge: External-Storage Data Structures for Plane-Sweep Algorithms. BRICS Report Series RS-94-16, University of Aarhus, June 1994.

    Google Scholar 

  3. L. Arge, M. Knudsen, K. Larsen: A General Lower Bound on the I/O-Complexity of Comparison-based Algorithms. In Proc. of 3rd WADS (1993), LNCS 709, 83–94.

    Google Scholar 

  4. L. Arge, D.E. Vengroff, J.S. Vitter: External-Memory Algorithms for Processing Line Segments in Geographic Information Systems. Manuscript.

    Google Scholar 

  5. J.L. Bentley, D. Wood: An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles. IEEE Transactions on Computers 29 (1980), 571–577.

    Google Scholar 

  6. Y-J. Chiang: Experiments on the Practical I/O Efficiency of Geometric Algorithms: Distribution Sweep vs. Plane Sweep. These Proceedings.

    Google Scholar 

  7. Y-J. Chiang, M.T. Goodrich, E.F. Grove, R. Tamassia, D.E. Vengroff, J.S. Vitter: External-Memory Graph Algorithms. In Proc. of 6th ACM-SIAM SODA (1995), 139–149.

    Google Scholar 

  8. M.T. Goodrich, J. Tsay, D.E. Vengroff, J.S. Vitter: External-Memory Computational Geometry. In Proc. of 34th IEEE FOCS (1993), 714–723.

    Google Scholar 

  9. S. Huddleston, K. Mehlhorn: A New Data Structure for Representing Sorted Lists. Acta Informatica 17 (1982), 157–184.

    Article  Google Scholar 

  10. Ch. Icking, R. Klein, Th. Ottmann: Priority Search Trees in Secondary Memory. In Proc. of 1987 Graph-Theoretic Concepts in Computer Science, LNCS 314, 84–93.

    Google Scholar 

  11. P.C. Kanellakis, S. Ramaswamy, D.E. Vengroff, J.S. Vitter: Indexing for Data Models with Constraints and Classes. In Proc. 12th ACM PODS (1993), 233–243.

    Google Scholar 

  12. D.E. Knuth: The Art of Computer Programming, Vol 3: Sorting and Searching, Addison-Wesley (1973).

    Google Scholar 

  13. M.H. Nodine, J.S. Vitter: Deterministic Distribution Sort in Shared and Distributed Memory Multiprocessors. In Proc. of 5th ACM SPAA (1993).

    Google Scholar 

  14. S. Ramaswamy, S. Subramanian: Path Caching: A Technique for Optimal External Searching. In Proc. 13th ACM PODS (1994), 25–35.

    Google Scholar 

  15. S. Subramanian, S. Ramaswamy: The P-range Tree: A New Data Structure for Range Searching in Secondary Memory. In Proc. 6th ACM-SIAM SODA (1995), 378–387.

    Google Scholar 

  16. N.P. Yale: The I/O Subsystem — A Candidate for Improvement. Guest Editor's Introduction in IEEE Computer 27 (3) (1994), 15–16.

    Google Scholar 

  17. F. Preparata, M. Shamos: Computational Geometry, An Introduction. Text and Monographs in Computer Science, Springer-Verlag 1985.

    Google Scholar 

  18. C. Ruemmler, J. Wilkes: An Introduction to Disk Drive Modeling. IEEE Computer 27 (3) (1994).

    Google Scholar 

  19. M. Smid: Dynamic Data Structures on Multiple Storage Media. Ph.D thesis University of Amsterdam 1989.

    Google Scholar 

  20. D.E. Vengroff: A Transparent Parallel I/O Environment. In Proc. of 1994 DAGS Symposium on Parallel Computation.

    Google Scholar 

  21. J.S. Vitter: Efficient Memory Access in Large-Scale Computation (invited paper). In Proc. of 8th STACS (1991), LNCS 480, 26–41.

    Google Scholar 

  22. J.S. Vitter, E.A.M. Shriver: Algorithms for Parallel Memory I: Two-Level Memories. Algorithmica, 12 (2) (1994).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Selim G. Akl Frank Dehne Jörg-Rüdiger Sack Nicola Santoro

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arge, L. (1995). The buffer tree: A new technique for optimal I/O-algorithms. In: Akl, S.G., Dehne, F., Sack, JR., Santoro, N. (eds) Algorithms and Data Structures. WADS 1995. Lecture Notes in Computer Science, vol 955. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60220-8_74

Download citation

  • DOI: https://doi.org/10.1007/3-540-60220-8_74

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60220-0

  • Online ISBN: 978-3-540-44747-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics