In: Desel, J.; Silva, M.: Lecture Notes in Computer Science, Vol. 1420: 19th Int. Conf. on Application and Theory of Petri Nets, ICATPN'98, Lisbon, Portugal, June 1998, pages 266-285. Berlin: Springer-Verlag, June 1998.
Abstract: Deadlock detection, which is fairly well-understood for the traditional transaction model used for concurrency control to databases, needs to be revisited when dealing with advanced transaction models. This is because a transaction in these models is organized as a collection of tasks; specific decisions (such as commit or abort) about a task may be based on the outcome or status of other tasks in the same transaction. Although this gives flexibility to the application programmer, a set of concurrent transactions may constrain two types of dependencies: data and transaction dependencies. Commit and abort dependencies specifying constraints on transaction termination order are well-known examples of transaction dependencies. Data dependencies arise when transactions concurrently access common data items under conflicting modes. In this paper, we show that in the face of these dependencies, deadlocks may arise that the conventional deadlock detection algorithms are not able to detect. We show that transaction waiting states are characterized by AND-OR graphs and propose an algorithm for detecting deadlocks in these graphs. This algorithm has a computational complexity linear in the number of nodes and edges of the AND-OR graphs. We prove the correctness of our algorithm by characterizing deadlocks in a subclass of Petri nets equivalent to AND-PR graphs.
Back to the Petri Nets Bibliography