Masterless locks in a multi-node environment
First Claim
1. A method comprising:
- determining that none of a plurality of nodes is accessing data protected by a lock;
determining, for at least all but a first node of the plurality of nodes, that no event has occurred preceding a request to access the data protected by the lock;
requesting termination of a lock master for the lock, in response to determining that none of the plurality of nodes is accessing data protected by the lock and that, for at least all but the first node of the plurality of nodes, no event has occurred preceding the request to access data protected by the lock;
granting access to the data protected by the lock to clients of the first node; and
authorizing the first node to raise an access level for the lock.
9 Assignments
0 Petitions
Accused Products
Abstract
A method, system, application programming interface, computer system, and computer program product to provide locks for controlling access to data by nodes in a multi-node environment while minimizing messages sent between nodes. Based upon knowledge of lock usage in the multi-node environment, a multi-node knowledge agent can determine when no other node is accessing data protected by a given lock, as well as when an event has occurred that precedes a request by another node to access data protected by the given lock. When no other node is accessing data and no such event has occurred, the multi-node knowledge agent can designate that given lock as “masterless.” A lock agent on the node hosting the multi-node knowledge agent is authorized to subsequently grant access to the data protected by the masterless lock to clients on that node without communicating with a lock master, which may reside at another node.
59 Citations
20 Claims
-
1. A method comprising:
-
determining that none of a plurality of nodes is accessing data protected by a lock; determining, for at least all but a first node of the plurality of nodes, that no event has occurred preceding a request to access the data protected by the lock; requesting termination of a lock master for the lock, in response to determining that none of the plurality of nodes is accessing data protected by the lock and that, for at least all but the first node of the plurality of nodes, no event has occurred preceding the request to access data protected by the lock; granting access to the data protected by the lock to clients of the first node; and authorizing the first node to raise an access level for the lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system comprising:
-
a processor for executing instructions; a memory to store the instructions, wherein the instructions comprise instructions for; determining that none of a plurality of nodes is accessing data protected by a lock; determining, for at least all but a first node of the plurality of nodes, that no event has occurred preceding a request to access the data protected by the lock; requesting termination of a lock master for the lock, in response to determining that none of the plurality of nodes is accessing data protected by the lock and that, for at least all but the first node of the plurality of nodes, no event has occurred preceding the request to access data protected by the lock; granting access to the data protected by the lock to clients of the first node; and authorizing the first node to raise an access level for the lock. - View Dependent Claims (14, 15, 16)
-
-
17. A computer-readable medium comprising instructions for:
-
determining that none of a plurality of nodes is accessing data protected by a lock; determining, for at least all but a first node of the plurality of nodes, that no event has occurred preceding a request to access the data protected by the lock; requesting termination of a lock master for the lock, in response to determining that none of the plurality of nodes is accessing data protected by the lock and that, for at least all but the first node of the plurality of nodes, no event has occurred preceding it the request to access data protected by the lock; granting access to the data protected by the lock to clients of the first node; and authorizing the first node to raise an access level for the lock. - View Dependent Claims (18, 19, 20)
-
Specification