Worst-Case External-Memory Priority Queues

A priority queue Q is a data structure that maintains a collection of elements, each element having an associated priority drawn from a totally ordered universe, under the operations Insert, which inserts an element into Q, and DeleteMin, which deletes an element with the minimum priority from Q. In this paper a priority-queue implementation is given which is efficient with respect to the number of block transfers or I/Os performed between the internal and external memories of a computer. Let B and M denote the respective capacity of a block and the internal memory measured in elements. The developed data structure handles any intermixed sequence of Insert and DeleteMin operations such that in every disjoint interval of B consecutive priorityqueue operations at most clogM/B N/M I/Os are performed, for some positive constant c. These I/Os are divided evenly among the operations: if B ≥ clogM/B N/M, one I/O is necessary for every B/(clogM/B N/M)th operation and if B < clogM/B N/M, c/B log M/B N/M I/Os are performed per every operation. Moreover, every operation requires O(log2 N) comparisons in the worst case. The best earlier solutions can only handle a sequence of S operations with O(σ i=1 S 1/B log M/B Ni/M) I/Os, where N i denotes the number of elements stored in the data structure prior to the ith operation, without giving any guarantee for the performance of the individual operations.

[1]  P. Gács,et al.  Algorithms , 1992 .

[2]  Jukka Teuhola,et al.  Heaps and Heapsort on Secondary Storage , 1999, Theor. Comput. Sci..

[3]  Roberto Grossi,et al.  On sorting strings in external memory (extended abstract) , 1997, STOC '97.

[4]  Richard E. Ladner,et al.  The influence of caches on the performance of sorting , 1997, SODA '97.

[5]  Michael J. Fischer,et al.  Fishspear: a priority queue algorithm , 1994, JACM.

[6]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[7]  M. AdelsonVelskii,et al.  AN ALGORITHM FOR THE ORGANIZATION OF INFORMATION , 1963 .

[8]  M. V. Wilkes,et al.  The Art of Computer Programming, Volume 3, Sorting and Searching , 1974 .

[9]  Jeffrey Scott Vitter,et al.  Large-scale sorting in parallel memories (extended abstract) , 1991, SPAA '91.

[10]  Lars Arge,et al.  The Buffer Tree: A New Technique for Optimal I/O-Algorithms (Extended Abstract) , 1995, WADS.

[11]  Y.N. Patt,et al.  The I/O subsystem/spl minus/a candidate for improvement , 1994, Computer.

[12]  Charles U. Martel,et al.  Performance of Priority Queue Structures in a Virtual Memory Environment , 1991, Comput. J..

[13]  Mark R. Brown,et al.  Implementation and Analysis of Binomial Queue Algorithms , 1978, SIAM J. Comput..

[14]  Joseph JáJá,et al.  An Introduction to Parallel Algorithms , 1992 .

[15]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[16]  Dylan McNamee,et al.  Extending the Mach External Pager Interface to Accomodate User-Level Page Replacement Policies , 1990, USENIX MACH Symposium.

[17]  Jukka Teuhola,et al.  The External Heapsort , 1989, IEEE Trans. Software Eng..

[18]  David R. Cheriton,et al.  Application-controlled physical memory using external page-cache management , 1992, ASPLOS V.

[19]  Yale N. Patt,et al.  The I/O Subsystem - A Candidate for Improvement: Guest Editor's Introduction , 1994, Computer.

[20]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[21]  Lars Arge,et al.  Efficient External-Memory Data Structures and Applications , 1996, BRICS Dissertation Series.

[22]  Lars Arge,et al.  The Buuer Tree: a New Technique for Optimal I/o-algorithms ? , 1995 .

[23]  Amin Vahdat,et al.  Tools for the development of application-specific virtual memory management , 1993, OOPSLA '93.

[24]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[25]  Mikkel Thorup,et al.  On RAM priority queues , 1996, SODA '96.

[26]  David A. Patterson,et al.  Computer Organization & Design: The Hardware/Software Interface , 1993 .

[27]  J. Vitter,et al.  On Sorting Strings in External Memory , 1997 .

[28]  Jeffrey Scott Vitter,et al.  Strategic directions in storage I/O issues in large-scale computing , 1996, CSUR.

[29]  Richard E. Ladner,et al.  The influence of caches on the performance of heaps , 1996, JEAL.

[30]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[31]  J. Ian Munro,et al.  An Implicit Binomial Queue with Constant Insertion Time , 1988, SWAT.

[32]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[33]  Ilkka J. Haikala,et al.  Virtual Memory Behavior of Some Sorting Algorithms , 1984, IEEE Transactions on Software Engineering.

[34]  Ben H. H. Juurlink,et al.  The Parallel Hierarchical Memory Model , 1994, SWAT.