Associating heartbeat data with access to shared resources of a computer system
First Claim
1. In a computer system having a plurality of shared resources accessible to a plurality of nodes, a method comprising:
- (A) allocating heartbeat data structures to the nodes such that unique associations are defined between individual nodes and individual heartbeat data structures that include heartbeat information of the individual nodes;
(B) identifying a grant of a lock associated with one of the shared resources, the grant being to a specific node that is uniquely associated with a specific heartbeat data structure, the lock having an identification of the specific heartbeat data structure with which the specific node is uniquely associated, wherein the grant identifies the specific node as owner of the lock for gaining access to the shared resource;
(C) determining if the owner is renewing the specific heartbeat data structure; and
(D) modifying the lock to disassociate the owner from the shared resource if the owner is not renewing the specific heartbeat data structure.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, system and program code for implementing distributed locks to be maintained through the use of on disk heartbeats. An instance of a node need only maintain a single heartbeat for all locks associated with the node and all of its processes. The node updates its heartbeat by accessing common storage, either virtual or physical, and updating a timestamp value in its heartbeat within a predetermined time interval, otherwise the heartbeat becomes stale. Expired heartbeats can be cleared or broken to allow redistribution of any locks associated therewith. The inventive technique may be implemented in a traditional computer environment or in a fully or partially virtualized environment and requires no use of an IP network or a separate network based lock manager.
254 Citations
27 Claims
-
1. In a computer system having a plurality of shared resources accessible to a plurality of nodes, a method comprising:
-
(A) allocating heartbeat data structures to the nodes such that unique associations are defined between individual nodes and individual heartbeat data structures that include heartbeat information of the individual nodes; (B) identifying a grant of a lock associated with one of the shared resources, the grant being to a specific node that is uniquely associated with a specific heartbeat data structure, the lock having an identification of the specific heartbeat data structure with which the specific node is uniquely associated, wherein the grant identifies the specific node as owner of the lock for gaining access to the shared resource; (C) determining if the owner is renewing the specific heartbeat data structure; and (D) modifying the lock to disassociate the owner from the shared resource if the owner is not renewing the specific heartbeat data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 19, 20, 21, 22, 23, 24)
-
-
9. In a computer system having a plurality of shared resources accessible by a plurality of nodes, a method comprising:
-
(A) maintaining a first lock data structure associated with a first shared resource and a specific heartbeat data structure that includes heartbeat information of one of the plurality of nodes and is stored on a disk on which a plurality of other heartbeat data structures are also stored, (B) maintaining a second lock data structure associated with a second shared resource and the specific heartbeat data structure, wherein maintaining the first and second lock data structures includes providing an identification of the specific heartbeat data structure within each of the first and second lock data structures, and (C) modifying at least one of the first and second lock data structures if no modifications to the heartbeat data structure occur within a predetermined threshold, including disassociating the at least one of the first lock data structure and the second lock data structure from the specific heartbeat data structure. - View Dependent Claims (25)
-
-
10. A computer program product for use with a computer system having a plurality of shared resources, the computer program product comprising a non-transitory computer readable medium having embodied therein program code comprising:
-
(A) program code for allocating heartbeat data structures to the nodes such that unique associations are defined between individual nodes and individual heartbeat data structures that include heartbeat information of the individual nodes; (B) program code for identifying a grant of a lock associated with one of the shared resources and for associating the lock with a specific heartbeat data structure, wherein the grant identifies a specific node as owner of the lock for gaining access to the shared resource, such that the lock has an identification of the specific heartbeat data structure with which the specific node is uniquely associated; (C) program code for determining if the owner is renewing the specific heartbeat data structure; and (D) program code for modifying the lock to disassociate the owner from the shared resource if the owner is not renewing the specific heartbeat data structure. - View Dependent Claims (26)
-
-
11. In a computer system having a plurality of shared resources, a method comprising:
-
(A) maintaining in common storage a plurality of heartbeat data structures such that each heartbeat data structure includes heartbeat information of one of a plurality of nodes and is configured for allocation of current ownership to any one of the plurality of nodes, each heartbeat data structure for which current ownership is allocated to a particular node having content comprising; (i) owner data identifying a current owner of the heartbeat data structure; (ii) state data identifying a current state of the heartbeat data structure; and (iii) pulse data identifying a time of last renewal of the heartbeat data structure by the current owner; and (B) allowing the heartbeat data structure to be modified if the pulse data is not changed within a predetermined threshold, including enabling changes of the owner data identifying the current owner, wherein at least one of the maintaining in the common storage the plurality of heartbeat data structures and the allowing the heartbeat data structure to be modified is executed by a processor. - View Dependent Claims (12, 13, 14, 15, 16, 27)
-
-
17. In a computer system having a plurality of shared resources, a method comprising:
-
(A) maintaining a lock data structure such that the lock data structure is associated with a specified shared resource and is associated with a specified heartbeat data structure that includes heartbeat information of a node, the heartbeat data structure having a state value associated therewith, the lock data structure comprising; (i) owner data identifying a current owner of the lock data structure and the heartbeat data structure; (ii) address data identifying a location of the heartbeat data structure; and (iii) generation data indicative of a re-allocation of the heartbeat data structure; and (B) allowing one of the owner data and address data of the lock data structure to be modified if the state value of the heartbeat data structure is modified, wherein at least one of the maintaining the lock data structure and the allowing one of the owner data and address data of the lock data structure to be modified is executed by a processor. - View Dependent Claims (18)
-
Specification