Lingering locks for replicated data objects
First Claim
1. A node of a computer network, the node comprising:
- a memory in which a data object is stored, the data object being replicated at another node of the network whereby the data object is maintained at plural nodes and updated at each of the plural nodes when the data object is changed by any one of the plural nodes;
a lock table which indicates whether (1) the data object is already locked at the node;
(2) the data object is locked at the another node, the lock table further specifying an identification of the another node;
(3) the data object is unlocked; and
a processor having a lock manager which, when a process native to the node desires access to the data object, checks the lock table and,if the data object is already locked at the node, posts the lock-requesting process in a lock scheduler queue for the data object;
if the data object is locked at the another node, on behalf of the lock-requesting process sends to the another node a request for a lock on the data object;
if the data object is unlocked, (a) sets a lingering lock flag in the lock table for the data object to indicate that the data object can only be accessed at the node to the exclusion of processes of other nodes, (b) grants the process access to the data object as stored in the memory of the node, (c) sends a signal to the another node notifying the another node that the data object is locked at the node, the lingering lock flag remaining set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the process native to the node or another process native to the node without further notifying the another node of the network.
1 Assignment
0 Petitions
Accused Products
Abstract
In a network wherein replicas of a data object reside at a plurality of nodes, a node has a lock manager which handles requests for access to the data object by processes of differing nodes. When a process native to the node desires access to the data object, the lock manager sets a lingering lock flag in a lock table for the data object. Setting the lingering lock flag indicates that the data object can only be accessed at the node to the exclusion of processes of other nodes. The lingering lock flag can remain set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the same process or another process native to the node, such successive access being without notification to other nodes of the network.
-
Citations
12 Claims
-
1. A node of a computer network, the node comprising:
-
a memory in which a data object is stored, the data object being replicated at another node of the network whereby the data object is maintained at plural nodes and updated at each of the plural nodes when the data object is changed by any one of the plural nodes; a lock table which indicates whether (1) the data object is already locked at the node;
(2) the data object is locked at the another node, the lock table further specifying an identification of the another node;
(3) the data object is unlocked; anda processor having a lock manager which, when a process native to the node desires access to the data object, checks the lock table and, if the data object is already locked at the node, posts the lock-requesting process in a lock scheduler queue for the data object; if the data object is locked at the another node, on behalf of the lock-requesting process sends to the another node a request for a lock on the data object; if the data object is unlocked, (a) sets a lingering lock flag in the lock table for the data object to indicate that the data object can only be accessed at the node to the exclusion of processes of other nodes, (b) grants the process access to the data object as stored in the memory of the node, (c) sends a signal to the another node notifying the another node that the data object is locked at the node, the lingering lock flag remaining set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the process native to the node or another process native to the node without further notifying the another node of the network. - View Dependent Claims (2, 3)
-
-
4. A computer product comprising a set of programmed instructions stored in a program memory, the set of instructions upon being executed by a processor of a node of a network, performing the steps of:
-
(1) determining when a process native to the node desires access to a data object, the data object being replicated in another node of the network whereby the data object is maintained at plural nodes and updated at each of the plural nodes when the data object is changed by any one of the plural nodes; (2) in accordance with step (1), checking a lock table stored at the node to determine whether (i) the data object is already locked at the node;
(ii) the data object is locked at the another node, the lock table further specifying an identification of the another node;
or (iii) the data object is unlocked;(3) if the data object is already locked at the node, posting the process in a lock scheduler queue stored at the node for the data object; (4) if the data object is locked at the another node, and on behalf of the process, sending a request from the node to the another node for a lock on the data object; (5) if the data object is unlocked, (a) setting a lingering lock flag in the lock table of the node for the data object to indicate that the data object can only be accessed at the node to the exclusion of processes of other nodes; (b) granting the process access to the data object as stored in the memory of the node; (c) sending a signal to the another node notifying the another node that the data object is locked at the node, and then (d) maintaining the lingering lock flag set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the process native to the node or another process native to the node without further notifying the another node of the network. - View Dependent Claims (5, 6)
-
-
7. A method of regulating access to a data object replicated across a plurality of nodes of a network and wherein the data object is maintained at plural nodes and updated at each of the plural nodes when the data object is changed by any one of the plural nodes, the method comprising:
-
maintaining a lock table for the data object at each of the plurality of nodes of the network, at each node the lock table indicating from the perspective of the respective node whether (i) the data object is already locked at the node;
(ii) the data object is locked at another node, the lock table further specifying an identification of the another node;
or (iii) the data object is unlocked;when a process native to a node desires access to the data object, checking the lock table stored at the node; and if the data object is already locked at the node, posting the process in a lock scheduler queue stored at the node for the data object; if the data object is locked at the another node, and on behalf of the process, sending a request from the node to the another node for a lock on the data object; if the data object is unlocked, (a) setting a lingering lock flag in a lock table for the data object to indicate that the data object can only be accessed at the node to the exclusion of processes of other nodes; (b) granting the process access to the data object as stored in the memory of the node; (c) sending a signal to the another node notifying the another node that the data object is locked at the node, and then (d) maintaining the lingering lock flag set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the process native to the node or another process native to the node without further notifying other nodes of the network. - View Dependent Claims (8, 9)
-
-
10. A computer network having plural nodes, each of the plural nodes comprising:
-
a memory in which a data object is stored, the data object being replicated at each of the plural nodes of the network whereby the data object is maintained at each of the plural nodes and updated at each of the plural nodes when the data object is changed by any one of the plural nodes; a lock table which indicates whether (i) the data object is already locked at the node;
(ii) the data object is locked at another node, the lock table further specifying an identification of the another node;
or (iii) the data object is unlocked; and
;a processor having a lock manager which, when a lock-requesting process native to the node desires access to the data object, checks the lock table and, if the data object is already locked at the node, posts the lock-requesting process in a lock scheduler queue for the data object; if the data object is locked at the another node, on behalf of the lock-requesting process sends to the another node a request for a lock on the data object; if the data object is unlocked, (a) sets a lingering lock flag in the lock table for the data object to indicate that the data object can only be accessed at the node to the exclusion of processes of other nodes, (b) grants the process access to the data object as stored in the memory of the node, (c) sends a signal to the another node notifying the another node that the data object is locked at the node, the lingering lock flag remaining set after the process native to the node terminates access to the data object, thereby enabling a successive access to the data object by the process native to the node or another process native to the node without further notifying the another node of the network. - View Dependent Claims (11, 12)
-
Specification