Apparatus and method for maintaining consistency of shared data resources in a cluster environment
First Claim
1. A method for providing a recent set of replicas for a cluster data resource within a cluster having a plurality of nodes each having a group services client with membership and voting services to the cluster, the method comprising the steps of:
- broadcasting to the plurality of nodes a data resource open request having a data resource identifier and a timestamp;
determining a recent replica of the cluster data resource among the plurality of nodes with respect to the timestamp of the broadcast data resource open request relative to a local timestamp of a node of the plurality of nodes associated with the data resource identifier; and
distributing the recent replica of the cluster data resource to each node of the plurality of nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for providing a recent set of replicas for a cluster data resource within a cluster having a plurality of nodes; each of the nodes having a group services client with membership and voting services. The method broadcasts a data resource open request to the nodes of the cluster, determines a recent replica of the cluster data resource among the nodes, and distributes the recent replica to the nodes of the cluster. The apparatus is for providing a recent set of replicas for a cluster data resource. The apparatus has a cluster having a plurality of nodes in a peer relationship; each node has an electronic memory for storing a local replica of the cluster data resource. A group services client, which is executable by each node of the cluster, has cluster broadcasting and cluster voting capability. A database conflict resolution protocol (“DCRP”), which is executable by each node of the cluster, interacts with the group services clients such that the DCRP broadcasts to the nodes a data resource modification request having a data resource identifier and a timestamp. The DCRP determines a recent replica of the cluster data resource among the nodes with respect to the timestamp of the broadcast data resource modification request relative to a local timestamp associated with the data resource identifier, and distributes the recent replica of the cluster data resource to each node of the plurality of nodes.
-
Citations
17 Claims
-
1. A method for providing a recent set of replicas for a cluster data resource within a cluster having a plurality of nodes each having a group services client with membership and voting services to the cluster, the method comprising the steps of:
-
broadcasting to the plurality of nodes a data resource open request having a data resource identifier and a timestamp;
determining a recent replica of the cluster data resource among the plurality of nodes with respect to the timestamp of the broadcast data resource open request relative to a local timestamp of a node of the plurality of nodes associated with the data resource identifier; and
distributing the recent replica of the cluster data resource to each node of the plurality of nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
determining relative to a local timestamp and a local checksum.
-
-
3. The method of claim 1 wherein the data resource open request is issued by the group services client of a node of the plurality of nodes in response to an application client executing on the node.
-
4. The method of claim 1 wherein the data resource open request is issued in a series of time intervals.
-
5. The method of claim 1 wherein the data resource open request is issued when an additional node joins the cluster.
-
6. The method of claim 1 wherein the step of determining further comprises the steps of:
-
comparing the timestamp of the broadcast data resource open request relative to the local timestamp of a node of the plurality of nodes associated with the data resource identifier; and
voting a comparison result to the plurality of nodes.
-
-
7. The method of claim 6, further comprising the step of:
repeating the steps of comparing and voting until a favorable consensus is reached.
-
8. The method of claim 6 wherein the favorable consensus is an APPROVE vote by each node of the plurality of nodes.
-
9. The method of claim 6 wherein the favorable consensus is an APPROVE vote by all but one node of the plurality of nodes.
-
10. An apparatus for providing a recent set of replicas for a cluster data resource within a cluster having a plurality of nodes each having a group services client with membership and voting services to the cluster, the method comprising the steps of:
-
means for broadcasting to said plurality of nodes a data resource open request having a data resource identifier and a timestamp;
means for determining a recent replica of said cluster data resource among said plurality of nodes with respect to said timestamp of said broadcast data resource open request relative to a local timestamp of a node of the plurality of nodes associated with the data resource identifier; and
means for distributing the recent replica of the cluster data resource to each node of the plurality of nodes. - View Dependent Claims (11, 12, 13, 14)
means for comparing the timestamp of the broadcast data resource open request relative to the local timestamp of a node of the plurality of nodes associated with the data resource identifier; and
means for voting a comparison result to the plurality of nodes.
-
-
15. An apparatus for providing a recent set of replicas for a cluster data resource, the apparatus comprising:
-
a cluster having a plurality of nodes in a peer relationship, each node of said plurality of nodes having an electronic memory for storing a local replica of the cluster data resource, a group services client executable by each node of said plurality of nodes, said group services client having a cluster broadcasting and a cluster voting capability; and
a database conflict resolution protocol (“
DCRP”
) executable by each node of said plurality of nodes, said DCRP interacting with said group services clients such that said DCRP broadcasts to said plurality of nodes a data resource open request having a data resource identifier and a timestamp, determines a recent replica of said cluster data resource among said plurality of nodes with respect to said timestamp of said broadcast data resource open request relative to a local timestamp of a node of said plurality of nodes associated with said data resource identifier, and distributes said recent replica of said cluster data resource to each node of said plurality of nodes.
-
-
16. A method for establishing a consistent set of replicas of a database within a computer cluster using cluster membership and cluster voting services, comprising the steps of:
-
broadcasting an open request to other nodes to locate their corresponding replicas;
voting to select a most recently modified replica of the database;
determining through the voting of a source of the selected replica to be used by all participating nodes; and
broadcasting the selected replica to participating nodes with differing or non-existent replicas;
wherein a most recently modified replica is determined using a timestamp;
wherein a checksum or cyclic redundancy value is used to further ensure consistency using the checksum or cyclic redundancy value as a low-order portion of the timestamp, and updating the checksum or cyclic redundancy value on each update of the database. - View Dependent Claims (17)
-
Specification