Dynamic distributed memory locking in a computer network
First Claim
1. A method for dynamic distributed memory locking in a computer network, comprising the steps of:
- receiving from an application program an automatically generated lock request for exclusive access to a memory location;
responsive to said lock request, automatically identifying a first lock process executing on any node of said network that is currently a designated lock manager for granting locks for said memory location;
automatically requesting from said designated lock manager a lock for said memory location; and
notifying said application program when a lock has been granted.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for dynamic distributed memory locking in a computer network. According to the method, a local lock process executing on a node receives from an application program a lock request for exclusive access to a memory location. The lock process identifies a first lock process executing on any node of the network that is currently a designated lock manager for granting locks for the particular memory location for which the lock was requested. Subsequently, the local lock process requests from the designated lock manager a lock for the particular memory location. Finally, the local lock process notifies the requesting application program when a lock has been granted by the lock manager. The method also includes designating a local lock process executing on a selected node as the lock manager when no lock manager is currently designated for the particular memory location for which a lock has been requested. The application program and the local lock process can both be executing on the same selected node, but can also be executing on separate nodes.
-
Citations
23 Claims
-
1. A method for dynamic distributed memory locking in a computer network, comprising the steps of:
-
receiving from an application program an automatically generated lock request for exclusive access to a memory location;
responsive to said lock request, automatically identifying a first lock process executing on any node of said network that is currently a designated lock manager for granting locks for said memory location;
automatically requesting from said designated lock manager a lock for said memory location; and
notifying said application program when a lock has been granted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
determining whether an option to create a lock manager is enabled prior to designating said local lock process as said lock manager; and
causing said lock request to fail if said option is not enabled.
-
-
5. The method according to claim 1 wherein said application program and said lock manager are each executing on separate nodes.
-
6. The method according to claim 1 further comprising the steps of:
-
in response to detecting a loss of connectivity with a node, determining whether a disconnected lock process executing on said disconnected node has been designated as said lock manager for any said memory location; and
updating a lock manager file to remove the designation of said disconnected lock process as lock manager for said memory location.
-
-
7. The method according to claim 1 further comprising the steps of:
-
upon detecting a return of connectivity with any node which is a lock manager, determining whether any conflicting lock manager designations exist with a local list of lock managers; and
resolving conflicting lock manager designations by a priority designation of each network node.
-
-
8. The method of claim 7 wherein said priority designation is a statically assigned enumerated value.
-
9. The method according to claim 1 wherein a lock which has been granted by a lock manager is treated as terminated after a predetermined period of time.
-
10. The method according to claim 9 wherein after said predetermined period of time has expired, a lock process requesting a new lock will continue to wait for a release of said previously granted lock to occur before accessing said memory location.
-
11. A computer network having a dynamic distributed memory locking system, comprising:
-
means for receiving from an application program an automatically generated lock request for exclusive access to a memory location;
means for automatically identifying a first lock process executing on any node of said network in response to said lock request, said first lock process being a currently designated lock manager for granting locks for said memory location;
means for automatically requesting from said designated lock manager a lock for said memory location; and
means for notifying said application program when a lock has been granted. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
means for determining whether an option to create a lock manager is enabled prior to designating said local lock process as said lock manager; and
means for causing said lock request to fail if said option is not enabled.
-
-
15. The computer network according to claim 11 wherein said application program and said lock manager are each executing on separate nodes.
-
16. The computer network according to claim 11 further comprising:
-
means responsive to detecting a loss of connectivity with a node for determining whether a disconnected lock process executing on said disconnected node has been designated as said lock manager for any said memory location; and
means for updating a lock manager file to remove the designation of said disconnected lock process as lock manager for said memory location.
-
-
17. The computer network according to claim 11 further comprising:
-
means responsive to detecting a return of connectivity with any node which is a lock manager for determining whether any conflicting lock manager designations exist with a local list of lock managers; and
means for resolving conflicting lock manager designations by a priority designation of each network node.
-
-
18. The computer network according to claim 17 wherein said priority designation is a statically assigned enumerated value.
-
19. The computer network according to claim 11 wherein a lock which has been granted by a lock manager is treated as terminated after a predetermined period of time.
-
20. The computer network according to claim 19 wherein after said predetermined period of time has expired, a lock process requesting a new lock will continue to wait for a release of said previously granted lock to occur before accessing said memory location.
-
21. A method for dynamic distributed memory locking in a computer network, comprising the steps of:
-
receiving in a local lock process executing on a first node an automatic request from an application program on said first node for exclusive access to a memory location;
responsive to said lock request, automatically identifying a first lock process executing on any node that is a designated lock manager for granting locks for said memory location, by consulting a lock manager file of said first node for a previous lock manager designation, and designating said local lock process as said lock manager if no lock manager is currently designated for said memory location;
automatically requesting from said designated lock manager a lock for said memory location; and
notifying said application program when a lock has been granted. - View Dependent Claims (22, 23)
in response to detecting a loss of connectivity with a disconnected node, determining from a lock manager file of said first node whether a disconnected lock process executing on said disconnected node has been designated as said lock manager for any said memory location; and
updating said lock manager file on said first node to remove the designation of said disconnected lock process as lock manager for said memory location.
-
-
23. The method according to claim 22 further comprising the steps of:
-
upon detecting a return of connectivity with said disconnected node which is a lock manager, determining whether any conflicting lock manager designations exist as between a lock manager file of said disconnected node said lock manager file of said first node; and
resolving conflicting lock manager designations by a statically assigned priority designation of each network node.
-
Specification