Efficiently distributing information used for lock management among distributed resource objects using sequence numbers
First Claim
1. A method for allocating a resource in a system that includes a plurality of processes executing on a plurality of nodes, the method comprising the steps of:
- causing a process to obtain, prior to accessing the resource in a particular way, a first lock that grants permission for the process to access the resource in the particular way, wherein the process requests the first lock from a shadow resource object located on the same node as the process; and
causing the shadow resource object to obtain, prior to granting the first lock to the process, a second lock that grants permission for the shadow resource object to grant locks that grant permission for processes to access the resource in the particular way, wherein the shadow resource object requests the second lock from a master resource object stored on a different node than said shadow resource object;
the master resource object maintaining a sequence number for said shadow resource object; and
incrementing the sequence number when the master resource object changes what it knows about the shadow resource object.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for managing locks that give permission to access resources in a computer system is disclosed. The lock management system is distributed and provides deadlock protection. The lock management system is distributed in that information about which locks have been granted for a resource is stored at both a master node and at the nodes on which are located processes that desire to access to the resource. A master resource object located on the master node grants locks to shadow resource objects located on the nodes on which are located the processes that desire to access the resource. Each shadow resource object grants locks on the resource to the processes that are located on the same node as the shadow resource object. According to an aspect of the invention, the master resource object stores data indicating what is knows about a shadow resource object. The master node increments a sequence number when the master resource object changes what is knows about the shadow resource object. The master resource object transmits the sequence number in messages it sends to the shadow resource object. A shadow resource object maintains master knowledge data indicating what the master resource object knows about the shadow resource object. The sequence number is used to determine whether what the master resource object knows about the shadow resource object is current.
-
Citations
15 Claims
-
1. A method for allocating a resource in a system that includes a plurality of processes executing on a plurality of nodes, the method comprising the steps of:
-
causing a process to obtain, prior to accessing the resource in a particular way, a first lock that grants permission for the process to access the resource in the particular way, wherein the process requests the first lock from a shadow resource object located on the same node as the process; and
causing the shadow resource object to obtain, prior to granting the first lock to the process, a second lock that grants permission for the shadow resource object to grant locks that grant permission for processes to access the resource in the particular way, wherein the shadow resource object requests the second lock from a master resource object stored on a different node than said shadow resource object;
the master resource object maintaining a sequence number for said shadow resource object; and
incrementing the sequence number when the master resource object changes what it knows about the shadow resource object. - View Dependent Claims (2, 3, 4, 5)
the master resource object transmits the sequence number with messages sent to the shadow resource object; and
upon receiving a message from the master resource object, the shadow resource object updating master knowledge data to reflect what the master resource object knew about the shadow resource object at the time indicated by the sequence number.
-
-
3. The method of claim 2 further comprising the steps of, when the shadow resource object sends a message to the master resource object, the shadow resource object sending a copy of the most recent sequence number that the shadow resource object has received from the master resource object.
-
4. The method of claim 3 further comprising the step of the master resource object discarding messages from the shadow resource object when the messages include stale sequence numbers.
-
5. The method of claim 3 further comprising the step of, when the shadow resource object receives a message from the master resource object that has a new sequence number, the shadow resource object determining, based on the new sequence number, whether to retransmit an update-state request with the new sequence number.
-
6. A computer-readable medium carrying one or more sequences of instructions for allocating a resource in a system that includes a plurality of processes executing on a plurality of nodes, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
causing a process to obtain, prior to accessing the resource in a particular way, a first lock that grants permission for the process to access the resource in the particular way, wherein the process requests the first lock from a shadow resource object located on the same node as the process; and
causing the shadow resource object to obtain, prior to granting the first lock to the process, a second lock that grants permission for the shadow resource object to grant locks that grant permission for processes to access the resource in the particular way, wherein the shadow resource object requests the second lock from a master resource object stored on a different node than said shadow resource object;
the master resource object maintaining a sequence number for said shadow resource object; and
incrementing the sequence number when the master resource object changes what it knows about the shadow resource object. - View Dependent Claims (7, 8, 9, 10)
the master resource object transmits the sequence number with messages sent to the shadow resource object; and
upon receiving a message from the master resource object, the shadow resource object updating master knowledge data to reflect what the master resource object knew about the shadow resource object at the time indicated by the sequence number.
-
-
8. The computer-readable medium of claim 7 further comprising the steps of, when the shadow resource object sends a message to the master resource object, the shadow resource object sending a copy of the most recent sequence number that the shadow resource object has received from the master resource object.
-
9. The computer-readable medium of claim 8 further comprising the step of the master resource object discarding messages from the shadow resource object when the messages include stale sequence numbers.
-
10. The computer-readable medium of claim 8 further comprising the step of, when the shadow resource object receives a message from the master resource object that has a new sequence number, the shadow resource object determining, based on the new sequence number, whether to retransmit an update-state request with the new sequence number.
-
11. A computer system, comprising
a plurality of nodes configured to execute a plurality of processes; -
a resource;
said computer system configured to perform the steps of;
causing a process to obtain, prior to accessing the resource in a particular way, a first lock that grants permission for the process to access the resource in the particular way, wherein the process requests the first lock from a shadow resource object located on the same node as the process; and
causing the shadow resource object to obtain, prior to granting the first lock to the process, a second lock that grants permission for the shadow resource object to grant locks that grant permission for processes to access the resource in the particular way, wherein the shadow resource object requests the second lock from a master resource object stored on a different node than said shadow resource object;
the master resource object maintaining a sequence number for said shadow resource object; and
incrementing the sequence number when the master resource object changes what it knows about the shadow resource object. - View Dependent Claims (12, 13, 14, 15)
the master resource object transmits the sequence number with messages sent to the shadow resource object; and
upon receiving a message from the master resource object, the shadow resource object updating master knowledge data to reflect what the master resource object knew about the shadow resource object at the time indicated by the sequence number.
-
-
13. The computer system of claim 12 further configured to perform the steps of, when the shadow resource object sends a message to the master resource object, the shadow resource object sending a copy of the most recent sequence number that the shadow resource object has received from the master resource object.
-
14. The computer system of claim 13 further configured to perform the step of the master resource object discarding messages from the shadow resource object when the messages include stale sequence numbers.
-
15. The computer system of claim 13 further configured to perform the step of, when the shadow resource object receives a message from the master resource object that has a new sequence number, the shadow resource object determining, based on the new sequence number, whether to retransmit an update-state request with the new sequence number.
Specification