This Article 
 Bibliographic References 
 Add to: 
An Efficient Distributed Algorithm for Detection of Knots and Cycles in a Distributed Graph
October 2003 (vol. 14 no. 10)
pp. 961-972

Abstract—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] A. Boukerche and C. Tropper, A Distributed Graph Algorithm for the Detection of Local Cycles and Knots IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 8, pp. 748-757, Aug. 1998.
[2] J. Brezezinski, J.M. Helary, M. Raynal, and M. Singhal, Deadlock Models and a Generalized Algorithm for Distributed Deadlock Detection J. Parallel and Distributed Computing, vol. 31, no. 2, pp. 112-125, Dec. 1995.
[3] E. Chang, Decentralized Deadlock Detection in Distributed Systems technical report, Univ. of Victoria, Victoria, B.C., Canada, 1980.
[4] I. Cidon, "An Efficient Distributed Knot Detection Algorithm," IEEE Trans. Software Eng., vol. 15, no. 5, pp. 644-649, May 1989.
[5] E.W. Dijkstra, In Reaction to Ernest Chang's Deadlock Detection EWD702, Plataanstraat 5, 5671 AL Nuenen, The Netherlands, 1979.
[6] E.W. Dijkstra and C.S. Scholten, Termination Detection for Diffusing Computation Information Processing Letters, vol. 11, no. 1, pp. 1-4, Aug. 1980.
[7] G. Gambosi, D.P. Bovet, and D.A. Menasce, A Detection and Removal of Deadlocks in Store and Forward Communication Networks Performance of Computer-Comm. Systems, H. Rudin and W. Bux, eds. pp. 219-229, North-Holland: Elsevier Science, 1984.
[8] D. Gifford, Weighted Voting for Replicated Data Proc. Seventh Symp. Operating Systems Principles, pp. 150-162, Dec. 1979.
[9] J.N. Gray, P. Homan, H.F. Korth, and R.L. Obermarck, A Straw Man Analysis of the Probability of Waiting and Deadlock in Database Systems Technical Report RJ 3066, IBM Research Laboratory, San Jose, Calif., 1981.
[10] B. Groselj and C. Tropper, The Distributed Simulation of Clustered Processes Distributed Computing, vol. 4, pp. 111-121, 1991.
[11] K.D. Gunther, "Prevention of Deadlocks in Packet-Switched Data Transport Systems," IEEE Trans. Commun., vol. 29, pp. 512-524, Apr. 1981.
[12] C.A.R. Hoare, Communicating Sequential Processes Comm. ACM, vol. 21, no. 8, pp. 666-677, Aug. 1978.
[13] E. Knapp, Deadlock Detection in Distributed Database Systems ACM Computing Surveys, vol. 19, no. 4, pp. 303-328, Dec. 1987.
[14] A.D. Kshemkalyani and M. Singhal, “Invariant-Based Verification of a Distributed Deadlock Detection Algorithm,” IEEE Trans. Software Eng., vol. 17, no. 8, pp. 789-799, Aug. 1991.
[15] A.D. Kshemkalyani and M. Singhal, "Efficient Detection and Resolution of Generalized Distributed Deadlocks," IEEE Trans. Software Eng., vol. 20, no. 1, pp. 43-54, Jan. 1994.
[16] L. Liu and C. Troppor, Local Deadlock Detection in Distributed Simulation Proc. Distributed Simulation Conf., pp. 64-69, 1990.
[17] D. Manivannan and M. Singhal, A Distributed Algorithm for Knot Detection in a Distributed Graph Proc. Int'l Conf. Parallel Processing, 2002.
[18] J. Misra, Distributed Discrete-Event Simulation ACM Computing Surveys, vol. 18, no. 1, pp. 39-65, Mar. 1986.
[19] J. Misra and K. Chandy, A Distributed Graph Algorithm: Knot Detection ACM Trans. Programming Languages and Systems, pp. 678-686, 1982.
[20] N. Natarajan, A Distributed Scheme for Detecting Communication Deadlocks IEEE Trans. Software Eng., vol. 12, no. 4, pp. 531-537, Apr. 1986.
[21] M. Singhal, “Deadlock Detection in Distributed Systems,” Computer, pp. 37-47, Nov. 1989.
[22] M. Singhal, A Class of Deadlock-Free Maekawa-Type Mutual Exclusion Algorithms for Distributed Systems Distributed Computing, vol. 4, no. 3, pp. 131-138, Feb. 1991.
[23] M. Singhal and N.G. Shivaratri, Advanced Concepts in Operating Systems. McGraw-Hill, 1994.
[24] P.K. Sinha, Distributed Operating Systems Concepts and Design. IEEE Press, 1997.
[25] I. Terekhov and T. Camp, Time Efficient Deadlock Resolution Algorithms Information Processing Letters, vol. 69, pp. 149-154, 1999.

Index Terms:
Distributed graph, distributed systems, knot detection, deadlock detection, distributed algorithms, distributed simulation.
D. Manivannan, Mukesh Singhal, "An Efficient Distributed Algorithm for Detection of Knots and Cycles in a Distributed Graph," IEEE Transactions on Parallel and Distributed Systems, vol. 14, no. 10, pp. 961-972, Oct. 2003, doi:10.1109/TPDS.2003.1239865
Usage of this product signifies your acceptance of the Terms of Use.