An implementation of a distributed algorithm for detection of local knots and cycles in directed graphs based on the CSP model and Java

Cycles and knots in directed graphs are problems that can be associated with deadlocks in database and communication systems. Many algorithms to detect cycles and knots in directed graphs were proposed. Boukerche and Tropper (1998) have proposed a distributed algorithm that solves the problem in a efficient away. Their algorithm has a message complexity of 2 m vs. (at least) 4 m for the Chandy and Misra algorithm, where m is the number of links in the graph, and requires O (n log n) bits of memory, where n is the number of nodes. We have implemented Boukerche and Tropper's algorithm according to the construction of processes of the CSP model. Our implementation was done using JCSP, an implementation of CSP for Java, and the results are presented.

[1]  Shing-Tsaan Huang,et al.  A distributed deadlock detection algorithm for CSP-like communication , 1990, TOPL.

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

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

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

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

[6]  Johannes F. Broenink,et al.  Communicating threads for Java , 1999 .

[7]  Steve A. Schneider,et al.  Concurrent and Real-time Systems: The CSP Approach , 1999 .

[8]  C. Preece,et al.  Java in real-time applications , 1998 .

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

[10]  Peter H. Welch,et al.  Process Oriented Design for Java: Concurrency for All , 2002, International Conference on Computational Science.

[11]  Marco Aurélio Amaral Henriques,et al.  JOINT: An Object Oriented Message Passing Interface for Parallel Programming in Java , 2001, HPCN Europe.

[12]  Peter H. Welch,et al.  A CSP model for Java multithreading , 2000, 2000 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[13]  Sam Toueg,et al.  A distributed algorithm for generalized deadlock detection , 1984, PODC '84.

[14]  Tohru Kikuno,et al.  A Distributed Algorithm for Deadlock Detection and Resolution , 1984, Symposium on Reliability in Distributed Software and Database Systems.

[15]  Laura M. Haas,et al.  Distributed deadlock detection , 1983, TOCS.

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

[17]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[18]  Henri E. Bal,et al.  Optimizing Java-Specific Overheads: Java at the Speed of C? , 2001, HPCN Europe.

[19]  Gyu-Youn Song,et al.  Distributed deadlock detection algorithms using distributed graph reconstruction = 분산 그래프 재구성을 이용한 분산 교착 상태 검출 알고리즘 , 1989 .

[20]  G. H. Hilderink,et al.  A distributed real-time Java system based on CSP , 1999, Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607).

[21]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

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

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