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 contain 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-OR graphs.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.