An Efficient Distributed Algorithm for Detection of Knots and Cycles in a Distributed Graph

Knot detection in a distributed graph is an important problem and finds applications in deadlock detection in several areas such as store-and-forward networks, distributed simulation, and distributed database systems. This paper presents an efficient distributed algorithm to detect if a node is part of a knot in a distributed graph. The algorithm requires 2e messages and a delay of 2(d+1) message hops to detect if a node in a distributed graph is in a knot (here, e is the number of edges in the reachable part of the distributed graph and d is its diameter). A significant advantage of this algorithm is that it not only detects if a node is involved in a knot, but also finds exactly which nodes are involved in the knot. Moreover, if the node is not involved in a knot, but is only involved in a cycle, then it finds the nodes that are in a cycle with that node. We illustrate the working of the algorithm with examples. The paper ends with a discussion on how the information about the nodes involved in the knot can be used for deadlock resolution and also on the performance of the algorithm.

[1]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[2]  Azzedine Boukerche,et al.  A Distributed Graph Algorithm for the Detection of Local Cycles and Knots , 1998, IEEE Trans. Parallel Distributed Syst..

[3]  Carl Tropper,et al.  The distributed simulation of clustered processes , 1991, Distributed Computing.

[4]  Israel Cidon An Efficient Distributed Knot Detection Algorithm , 1989, IEEE Trans. Software Eng..

[5]  Mukesh Singhal,et al.  Deadlock Models and a General Algorithm for Distributed Deadlock Detection , 1995, J. Parallel Distributed Comput..

[6]  N. Natarajan,et al.  A distributed scheme for detecting communication deadlocks , 1986, IEEE Transactions on Software Engineering.

[7]  Tracy Camp,et al.  Time Efficient Deadlock Resolution Algorithms , 1999, Inf. Process. Lett..

[8]  D. Manivannan,et al.  A distributed algorithm for knot detection in a distributed graph , 2002, Proceedings International Conference on Parallel Processing.

[9]  K. Mani Chandy,et al.  A Distributed Graph Algorithm: Knot Detection , 1982, TOPL.

[10]  K. Gunther,et al.  Prevention of Deadlocks in Packet-Switched Data Transport Systems , 1981 .

[11]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[12]  R. Moller Distributed Operating Systems: Concepts And Design , 1998, IEEE Concurrency.

[13]  Ajay D. Kshemkalyani,et al.  Invariant-Based Verification of a Distributed Deadlock Detection Algorithm , 1991, IEEE Trans. Software Eng..

[14]  Mukesh Singhal,et al.  Advanced Concepts In Operating Systems , 1994 .

[15]  Ajay D. Kshemkalyani,et al.  Efficient Detection and Resolution of Generalized Distributed Deadlocks , 1994, IEEE Trans. Software Eng..

[16]  Edgar Knapp,et al.  Deadlock detection in distributed databases , 1987, CSUR.

[17]  Mukesh Singhal,et al.  Deadlock detection in distributed systems , 1989, Computer.

[18]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[19]  Henry F. Korth,et al.  A Straw Man Analysis of the Probability of Waiting and Deadlock in a Database System , 1981, Berkeley Workshop.

[20]  Kenneth Magel,et al.  Deadlock detection in distributed database systems: a performance evaluation study , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[21]  Mukesh Singhal A class of deadlock-free Maekawa-type algorithms for mutual exclusion in distributed systems , 2005, Distributed Computing.

[22]  Jayadev Misra,et al.  Distributed discrete-event simulation , 1986, CSUR.