Fault Tolerant Sorting—Theoretical and Empirical Analyses of the Randomized QuickMergesort Algorithm

This paper introduces a new paradigm in the design of sorting algorithms, viz., fault tolerance. Fault tolerance is an important concept in modern day computing and design workflows must accommodate this need. In general, there are a number of avenues for faults to occur and techniques to address the same; this paper focusses on only one source of faulty behavior, viz., process termination. Process termination, as a cause of faulty behavior, is important from the perspective of various applications in real-time scheduling. In order to measure the effectiveness of a fault tolerant protocol, it is necessary to define a suitable metric and analyze the performance of the protocol with respect to that metric. We measure the “unsortedness” of an array, as characterized by the number of inversion pairs that remain when the sorting algorithm (process) terminates. This paper proposes a new algorithm for sorting called the Randomized QuickMergesort (RQMS) algorithm. RQMS has a higher degree of fault tolerance than either Randomized Quicksort (RQS) or Mergesort (MS), in that fewer inversion pairs remain when it terminates. Likewise, RQMS has a lower comparison overhead than RQS and is more space-efficient than MS. Our empirical analysis, which was conducted over a wide variety of distributions, conclusively establishes that RQMS is the algorithm of choice, when fault tolerance is paramount in the application.

[1]  Dhiraj K. Pradhan,et al.  Fault-tolerant computing : theory and techniques , 1986 .

[2]  Giuseppe F. Italiano,et al.  A new approach to dynamic all pairs shortest paths , 2004, JACM.

[3]  Rajeev Motwani,et al.  Randomized algorithms , 1996, CSUR.

[4]  Tim Menzies,et al.  Lurch: a Lightweight Alternative to Model Checking , 2003, SEKE.

[5]  Thomas W. Reps,et al.  An Incremental Algorithm for a Generalization of the Shortest-Path Problem , 1996, J. Algorithms.

[6]  M. D. McIlroy A killer adversary for quicksort , 1999 .

[7]  John A. Stankovic,et al.  Misconceptions About Real-Time Computing , 1988, Computer.

[8]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[9]  Donald E. Knuth,et al.  The Art of Computer Programming, Vol. 3: Sorting and Searching , 1974 .

[10]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[11]  Laurence A. Wolsey,et al.  Integer and Combinatorial Optimization , 1988 .

[12]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[13]  Mikkel Thorup,et al.  Undirected single source shortest paths in linear time , 1997, Proceedings 38th Annual Symposium on Foundations of Computer Science.

[14]  Bala Kalyanasundaram,et al.  Fault-Tolerant Real-Time Scheduling , 2000, Algorithmica.

[15]  Robert Sedgewick,et al.  Implementing Quicksort programs , 1978, CACM.

[16]  Christoph Herrmann VBR video in ATM without frame buffering: influence of a periodic correlation function on QoS parameters , 1994, Modelling and Evaluation of ATM Networks.

[17]  C. A. R. Hoare Algorithm 63: partition , 1961, CACM.

[18]  Krithi Ramamritham,et al.  Tutorial on hard real-time systems , 1989 .

[19]  John A. Stankovic,et al.  Real-time computing systems: the next generation , 1988 .

[20]  M. H. van Emden Algorithms 402: Increasing the efficiency of quicksort , 1970, CACM.

[21]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[22]  Conrado Martínez,et al.  Optimal Sampling Strategies in Quicksort and Quickselect , 2002, SIAM J. Comput..

[23]  Francesca Rossi,et al.  Constraint Propagation for Soft Constraints: Generalization and Termination Conditions , 2000, CP.

[24]  Michael T. Goodrich,et al.  Algorithm Design: Foundations, Analysis, and Internet Examples , 2001 .

[25]  Gerth Stølting Brodal,et al.  On the adaptiveness of Quicksort , 2004, JEAL.

[26]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[27]  Krzysztof C. Kiwiel,et al.  Partitioning schemes for quicksort and quickselect , 2003, ArXiv.

[28]  Jon Louis Bentley,et al.  Engineering a sort function , 1993, Softw. Pract. Exp..

[29]  Krithi Ramamritham,et al.  Adaptive fault tolerance and graceful degradation under dynamic hard real-time scheduling , 1997, Proceedings Real-Time Systems Symposium.

[30]  Edmund M. Clarke Automatic Verification of Sequential Circuit Designs , 1993, CHDL.

[31]  Robert Sedgewick Quicksort with Equal Keys , 1977, SIAM J. Comput..

[32]  Tim Menzies,et al.  The Strangest Thing About Software , 2007, Computer.

[33]  Michael Mitzenmacher,et al.  Probability And Computing , 2005 .

[34]  C. A. R. Hoare,et al.  Algorithm 64: Quicksort , 1961, Commun. ACM.

[35]  Derick Wood,et al.  A survey of adaptive sorting algorithms , 1992, CSUR.