← Back to Patent Explorer
US5459871A Expired / Lapsed US ⏱️ 0.0 years remaining

Detection and resolution of resource deadlocks in a distributed data processing system

Assignee: Fujitsu Services Ltd
•
Filing: 1993-08-26
•
Granted: 1995-10-17
•
Expires: 2013-08-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A distributed data processing system includes a distributed resource manager which detects dependencies between transactions caused by conflicting lock requests. A distributed transaction manager stores a wait-for graph with nodes representing transactions and edges connecting the nodes and representing dependencies between the transactions. Each edge is labelled with the identities of the lock requests that caused the dependency. The distributed transaction manager propagates probes through the wait-for graph, to detect cyclic dependencies, indicating deadlock. A deadlock message is then sent to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock. Resilience to failure is achieved by duplicating between agents and servers, rather than by duplicating the servers. As a result, the number of messages between agents and servers in normal operation is not increased.

Inventors

  • 👤 Thomas W. Van Den Berg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 22:40
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/524; G06F11/00; G06F11/07; G06F11/14; G06F11/1402

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 193 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) said resource manager comprising means responsive to said deadlock message for deleting said particular lock request.
Claim 2
Dependent Claim 193 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) said resource manager comprising means responsive to said deadlock message for deleting said particular lock request.
Claim 3
Dependent Claim 324 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) wherein said transaction manager comprises a plurality of transaction manager processes, each of which holds a predetermined portion of the wait-for graph, said transaction manager processes comprising means for propagating probe messages between said transaction manager processes to detect cyclic dependencies, (g) wherein said resource manager comprises a plurality of resource manager processes each of which includes means for storing a plurality of locks on a resource, means for checking for dependencies between said locks, and means for sending insert edge and delete edge messages to the transaction manager processes instructing them to insert and delete edges in the wait-for graph corresponding to said dependencies, (h) wherein the system further includes means for allocating a replacement transaction manager process to replace a failed transaction manager process, (i) and wherein each resource manager process includes means for resending its insert edge messages to the replacement transaction manager process.
Claim 4
Dependent Claim 324 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) wherein said transaction manager comprises a plurality of transaction manager processes, each of which holds a predetermined portion of the wait-for graph, said transaction manager processes comprising means for propagating probe messages between said transaction manager processes to detect cyclic dependencies, (g) wherein said resource manager comprises a plurality of resource manager processes each of which includes means for storing a plurality of locks on a resource, means for checking for dependencies between said locks, and means for sending insert edge and delete edge messages to the transaction manager processes instructing them to insert and delete edges in the wait-for graph corresponding to said dependencies, (h) wherein the system further includes means for allocating a replacement transaction manager process to replace a failed transaction manager process, (i) and wherein each resource manager process includes means for resending its insert edge messages to the replacement transaction manager process.
Claim 5
Dependent Claim 59 words
A system according to claim 2 wherein each transaction manager process includes means for storing probe messages it has sent to and received from other transaction manager processes and wherein each transaction manager process includes means for deleting stored probe messages received from said failed transaction manager process and for re-sending probe messages to said replacement transaction manager process.
Claim 6
Dependent Claim 331 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) wherein said transaction manager comprises a plurality of transaction manager processes, each of which holds a predetermined portion of the wait-for graph, said transaction manager processes comprising means for propagating probe messages between said transaction manager processes to detect cyclic dependencies, (g) wherein said resource manager comprises a plurality of resource manager processes each of which includes means for storing a plurality of locks on a resource, means for checking for dependencies between said locks, and means for sending insert edge and delete edge messages to the transaction manager processes instructing them to insert and delete edges in the wait-for graph corresponding to said dependencies, (h) wherein said system further includes means for allocating a replacement resource manager process to replace a failed resource manager process, (i) and wherein the transaction manager processes include means for deleting any edges associated with the failed resource manager process from their respective portions of the wait-for graph.
Claim 7
Dependent Claim 331 words
A distributed data processing system comprising a plurality of processing units wherein the processing units contain: (a) a plurality of resources, (b) a plurality of user processes performing transactions which require access to the resources, and for producing lock requests, requesting locks on the resources for said transactions, (c) a resource manager responsive to said lock requests from the user processes, for maintaining a queue of lock requests that cannot be immediately granted, and for detecting dependencies between transactions caused by conflicting lock requests, (d) a transaction manager for storing a wait-for graph comprising a plurality of nodes representing transactions and a plurality of edges interconnecting the nodes and representing said dependencies between the transactions, each edge being labelled with the identities of the lock requests that caused the dependency, and (e) means for detecting a cyclic chain of dependencies in the wait-for graph and, upon detection of a cyclic chain of dependencies, for sending a deadlock message to the resource manager identifying a particular lock request as a victim for deletion to resolve the deadlock, (f) wherein said transaction manager comprises a plurality of transaction manager processes, each of which holds a predetermined portion of the wait-for graph, said transaction manager processes comprising means for propagating probe messages between said transaction manager processes to detect cyclic dependencies, (g) wherein said resource manager comprises a plurality of resource manager processes each of which includes means for storing a plurality of locks on a resource, means for checking for dependencies between said locks, and means for sending insert edge and delete edge messages to the transaction manager processes instructing them to insert and delete edges in the wait-for graph corresponding to said dependencies, (h) wherein said system further includes means for allocating a replacement resource manager process to replace a failed resource manager process, (i) and wherein the transaction manager processes include means for deleting any edges associated with the failed resource manager process from their respective portions of the wait-for graph.
Claim 8
Dependent Claim 24 words
A system according to claim 4 wherein said user processes further include means for re-sending their lock requests to said replacement resource manager process.

References Cited (Backward Citations)

US5251318A Cited
US5095421A Cited
US5280619A Cited
US5339427A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-10-16 1999-04-17 1999-10-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-10-16 2003-04-17 2003-10-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-10-16 2007-04-17 2007-10-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag