IP Library Granted Patent US 7,756,830
Granted Patent B1
US 7,756,830 · App. 09/282,907 · Granted Jul 13, 2010

Error detection protocol

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,756,830
App. No.
09/282,907
Granted
Jul 13, 2010
Kind
B1
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 of the present invention concerns broadcasting a data resource open request to the nodes of the cluster, determining a recent replica of the cluster data resource among the nodes, and distributing the recent replica to the nodes of the cluster. The apparatus of the present invention 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.

Claims (63)

1. A method for maintaining a consistent set of replicas of a database within a computer cluster, comprising the steps of:

each node in the computer cluster receiving a database update request;

each node in the computer cluster voting based on a functional outcome of the database update request; and

detecting an out-of-sync condition as a result of a different functional outcome.

2. The method as recited in claim 1 , wherein the out-of-sync condition is an error.

3. The method as recited in claim 1 , further comprising the step of:

refreshing the database in response to the detecting step.

4. The method as recited in claim 1 , further comprising the step of:

resetting cluster membership in response to the detecting step.

5. The method as recited in claim 1 , further comprising the step of:

blocking further participation by the node having the out-of-sync condition in response to the detecting step.

6. The method as recited in claim 1 , further comprising the step of:

declaring an end-of-transaction state on update voting completion when the database update is being done in a transactional manner.

7. The method as recited in claim 6 , further comprising the step of:

backing out an update when update voting does not meet a criteria established for success.

8. The method as recited in claim 7 , wherein the criteria established for success is that no more than one node has inconsistent results.

9. A method for maintaining a consistent set of replicas of a database within a computer cluster, comprising the steps of:

broadcasting an update to a database shared among a plurality of nodes in the computer cluster;

applying the update to a local copy of the database at each of the plurality of nodes in the computer cluster;

node requesting update broadcasts results of update to all of the other nodes in the computer cluster;

comparing, by all of the other nodes in the computer cluster, the update results to results of application of the update to the local copy of the database; and

voting, by all of the other nodes in the computer cluster, to approve update if a match results from the comparison.

10. The method as recited in claim 9 , further comprising the step of:

voting, by any one of the other nodes in the computer cluster, to continue with update process if a match does not result from the comparison.

11. The method as recited in claim 9 , further comprising the step of:

broadcasting an approval of the update to the database if all of the other nodes vote to approve the update.

12. The method as recited in claim 10 , further comprising the step of:

if more than one of the plurality of nodes votes to continue, performing a recovery process.

13. The method as recited in claim 12 , wherein the recovery process further comprises the step of:

if more than a specified number of the nodes voted to continue, backing out the update to the database.

14. The method as recited in claim 12 , wherein the recovery process further comprises the step of:

if less than a specified number of the nodes voted to continue, performing the recovery process on the specified number of the nodes.

15. A computer cluster operable for maintaining a consistent set of replicas of a database within the computer cluster, comprising:

a group services client operable for broadcasting an update to a database shared among a plurality of nodes in the computer cluster;

the plurality of nodes coupled to the computer cluster operable for applying the update to a local copy of the database at each of the plurality of nodes in the computer cluster;

circuitry for broadcasting results of the update to all of the other nodes in the computer cluster;

circuitry for comparing, by all of the other nodes in the computer cluster, the update results to results of application of the update to the local copy of the database; and

circuitry for voting, by all of the other nodes in the computer cluster, to approve update if a match results from the comparison.

16. The computer cluster as recited in claim 15 , further comprising:

circuitry for voting, by any one of the other nodes in the computer cluster, to continue with update process if a match does not result from the comparison.

17. The computer cluster as recited in claim 15 , further comprising:

circuitry for broadcasting an approval of the update to the database if all of the other nodes vote to approve the update.

18. The computer cluster as recited in claim 16 , further comprising:

if more than one of the plurality of nodes votes to continue, circuitry for performing a recovery process.

19. The computer cluster as recited in claim 18 , wherein the recovery process further comprises:

if more than a specified number of the nodes voted to continue, circuitry for backing out the update to the database.

20. The computer cluster as recited in claim 18 , wherein the recovery process further comprises:

if less than a specified number of the nodes voted to continue, circuitry for performing the recovery process on the specified number of the nodes.

21. A computer program product adaptable for storage on a computer readable medium, the computer program product operable for maintaining a consistent set of replicas of a database within a computer cluster, comprising the program steps of:

broadcasting an update to a database shared among a plurality of nodes in the computer cluster;

applying the update to a local copy of the database at each of the plurality of nodes in the computer cluster;

node requesting update broadcasts results of update to all of the other nodes in the computer cluster;

comparing, by all of the other nodes in the computer cluster, the update results to results of application of the update to the local copy of the database;

voting, by all of the other nodes in the computer cluster, to approve update if a match results from the comparison; and

voting, by any one of the other nodes in the computer cluster, to continue with update process if a match does not result from the comparison.

22. The computer program product as recited in claim 21 , further comprising the program step of:

broadcasting an approval of the update to the database if all of the other nodes vote to approve the update.

23. The computer program product as recited in claim 22 , further comprising the program step of:

if more than one of the plurality of nodes votes to continue, performing a recovery process.

24. The computer program product as recited in claim 23 , wherein the recovery process further comprises the program step of:

if more than a specified number of the nodes voted to continue, backing out the update to the database.

25. The computer program product as recited in claim 24 , wherein the recovery process further comprises the program step of:

if less than a specified number of the nodes voted to continue, performing the recovery process on the specified number of the nodes.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SAP AG
Reel/Frame 028536/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 1999
From: CHAO, CHING-YUN; HOUGH, ROGER E.; MANCISIDOR-LANDA, RODOLFO A.; RAMANATHAN, JAYASHREE; SHAHEEN, AMAL A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 010040/0407 →