This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
January 1985 (vol. 11 no. 1)
pp. 67-80
M.K. Sinha, National Centre for Software Development and Computing Techniques, Tata Institute of Fundamental Research
Deadlock handling is an important component of transaction management in a database system. In this paper, we contribute to the development of techniques for transaction management by presenting an algorithm for detecting deadlocks in a distributed database system. The algorithm uses priorities for transactions to minimize the number of messages initiated for detecting deadlocks. It does not construct any wait-for graph but detects cycles by an edge-chasing method. It does not detect any phantom deadlock (in the absence of failures), and for the resolution of deadlocks it does not need any extra computation. The algorithm also incorporates a post-resolution computation that leaves information characterizing dependence relations of remaining transactions of the deadlock cycle in the system, and this will help in detecting and resolving deadlocks which may arise in the future. An interesting aspect of this algorithm is that it is possible to compute the exact number of messages generated for a given deadlock configuration. The complexity is comparable to the best algorithm reported. We first present a basic algorithm and then extend it to take into account shared and exclusive lock modes, simultaneous acquisition of multiple locks, and nested transactions.
Index Terms:
transaction, Deadlock, deadlock detection, distributed database, nested transaction, priority, timestamp
Citation:
M.K. Sinha, N. Natarajan, "A Priority Based Distributed Deadlock Detection Algorithm," IEEE Transactions on Software Engineering, vol. 11, no. 1, pp. 67-80, Jan. 1985, doi:10.1109/TSE.1985.231844
Usage of this product signifies your acceptance of the Terms of Use.