Method and system for implementing failover for database cursors
First Claim
Patent Images
1. A method for recovering after the failure of a first server to which a client was connected for accessing a resource, the method comprising:
- connecting a client to a first server node to access a resource for using a scrollable cursor;
recording state information for the connection between the client and the first server node, the state information comprising an order-sensitive checksum;
detecting that a connection between the first server node and the client has failed;
automatically connecting the client with a second server node, the second server node configurable to access the resource, wherein the state information is utilized to determine whether the client can continue processing with previously accessed data transmitted from the first server node; and
allowing the client to continue processing with the previously accessed data transmitted from the first server node if the state information indicates consistency with newly accessed data from the second server node.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for implementing failover in a computer system is provided. For a failover involving an order-sensitive dataset or application, a mechanism is provided to detect order inconsistencies between a first set of data and a second set of data, in which the first set of data corresponds to a first connection established before the failover and the second set of data corresponds to a second connection established after the failover.
194 Citations
66 Claims
-
1. A method for recovering after the failure of a first server to which a client was connected for accessing a resource, the method comprising:
-
connecting a client to a first server node to access a resource for using a scrollable cursor;
recording state information for the connection between the client and the first server node, the state information comprising an order-sensitive checksum;
detecting that a connection between the first server node and the client has failed;
automatically connecting the client with a second server node, the second server node configurable to access the resource, wherein the state information is utilized to determine whether the client can continue processing with previously accessed data transmitted from the first server node; and
allowing the client to continue processing with the previously accessed data transmitted from the first server node if the state information indicates consistency with newly accessed data from the second server node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
5. The method of claim 1 in which a folding process is employed to calculate the order-sensitive checksum.
-
6. The method of claim 1 further comprising comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server node and the second order-sensitive checksum value corresponds to the connection between the client and the second server node.
-
7. The method of claim 6 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server node.
-
8. The method of claim 7 in which a query data set from the second server node is retransmitted to the client after the inconsistency is identified.
-
9. The method of claim 1 in which the order-sensitive checksum is not transmitted if the previously accessed data has not changed.
-
10. The method of claim 1 in which the scrollable cursor on the client utilizes information fetched from the resource.
-
11. The method of claim 1 in which the previously accessed data transmitted from the first server node is fully or partially cached at the client.
-
12. A method for recovering after the failure of a server to which a client is connected, the method comprising:
-
a) executing a scrollable cursor at a primary server node;
b) transmitting state information from the primary server node to the client during a fetch communication, the state information comprising a row count and an order-sensitive checksum value;
c) detecting a failure in communications between the primary server node and the client;
d) re-executing the scrollable cursor at a backup server node;
e) comparing the order-sensitive checksum value against a second order-sensitive checksum value, the second order-sensitive checksum value derived at the backup server node using the row count; and
f) allowing the client to continue processing with previously accessed data transmitted from the primary server node if consistency is identified between the order-sensitive checksum value and the second order-sensitive checksum value. - View Dependent Claims (13, 14, 15, 16)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
14. The method of claim 12 in which a folding process is employed to calculate the order-sensitive checksum.
-
15. The method of claim 12 in which a query data set from the second server node is retransmitted to the client if inconsistency is identified.
-
16. The method of claim 12 in which the previously accessed data transmitted from the primary server node is fully or partially cached at the client.
-
17. A computer program product comprising a computer usable medium having executable code to execute a process for recovering after the failure of a server to which a client is connected, the process comprising:
-
a) executing a scrollable cursor at a primary server node;
b) transmitting state information from the primary server node to the client during a fetch communication, the state information comprising a row count and an order-sensitive checksum value;
c) detecting a failure in communications between the primary server node and the client;
d) re-executing the scrollable cursor at a backup server node;
e) comparing the order-sensitive checksum value against a second order-sensitive checksum value, the second order-sensitive checksum value derived at the backup server node using the row count; and
f) allowing the client to continue processing with previously accessed data transmitted from the primary server node if consistency is identified between the order-sensitive checksum value and the second order-sensitive checksum value. - View Dependent Claims (18, 19, 20, 21)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
19. The computer program product of claim 17 in which a folding process is employed to calculate the order-sensitive checksum.
-
20. The computer program product of claim 17 in which a query data set from the second server node is retransmitted to the client if inconsistency is identified.
-
21. The computer program product of claim 17 in which the previously accessed data transmitted from the primary server node is fully or partially cached at the client.
-
22. A system for recovering after the failure of a server to which a client is connected, the system comprising:
-
a) means for executing a scrollable cursor at a primary server node;
b) means for transmitting state information from the primary server node to the client during a fetch communication, the state information comprising a row count and an order-sensitive checksum value;
c) means for detecting a failure in communications between the primary server node and the client;
d) means for re-executing the scrollable cursor at a backup server node;
e) means for comparing the order-sensitive checksum value against a second order-sensitive checksum value, the second order-sensitive checksum value derived at the backup server node using the row count; and
f) means for allowing the client to continue processing with previously accessed data transmitted from the primary server node if consistency is identified between the order-sensitive checksum value and the second order-sensitive checksum value. - View Dependent Claims (23, 24, 25, 26)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
24. The system of claim 22 in which a folding process is employed to calculate the order-sensitive checksum.
-
25. The system of claim 22 in which a query data set from the second server node is retransmitted to the client if inconsistency is identified.
-
26. The system of claim 22 in which the previously accessed data transmitted from the primary server node is fully or partially cached at the client.
-
27. A method for recovering after failure of a first server to which a client was connected for accessing a resource, the method comprising:
-
detecting that a connection between the first server and the client has failed;
automatically connecting the first client with a second server that has access to the resource; and
accessing the resource through the second server, wherein an order-sensitive checksum is employed to verify usability of the resource. - View Dependent Claims (28, 29, 30, 31, 32)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
29. The method of claim 27 further comprising comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server and the second order-sensitive checksum value corresponds to the connection between the client and the second server.
-
30. The method of claim 29 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server.
-
31. The method of claim 30 in which a query data set from the second server is retransmitted to the client after the inconsistency is identified.
-
32. The method of claim 27 in which a scrollable cursor on the client utilizes information fetched from the resource.
-
33. A computer program product that includes a computer readable medium, the computer readable medium comprising instructions which, when executed by a processor, causes the processor to execute a process for recovering after the failure of a first server to which a client was connected for accessing a resource, the process comprising:
-
connecting a client to a first server node to access a resource for using a scrollable cursor;
recording state information for the connection between the client and the first server node, the state information comprising an order-sensitive checksum;
detecting that a connection between the first server node and the client has failed;
automatically connecting the client with a second server node, the second server node configurable to access the resource, wherein the state information is utilized to determine whether the client can continue processing with previously accessed data transmitted from the first server node; and
allowing the client to continue processing with the previously accessed data transmitted from the first server node if the state information indicates consistency with newly accessed data from the second server node. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
37. The computer program product of claim 33 in which a folding process is employed to calculate the order-sensitive checksum.
-
38. The computer program product of claim 33, wherein the process further comprises comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server node and the second order-sensitive checksum value corresponds to the connection between the client and the second server node.
-
39. The computer program product of claim 38 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server node.
-
40. The computer program product of claim 39 in which a query data set from the second server node is retransmitted to the client after the inconsistency is identified.
-
41. The computer program product of claim 33 in which the order-sensitive checksum is not transmitted if the previously accessed data has not changed.
-
42. The computer program product of claim 33 in which the scrollable cursor on the client utilizes information fetched from the resource.
-
43. The computer program product of claim 33 in which the previously accessed data transmitted from the first server node is fully or partially cached at the client.
-
44. A system for recovering after the failure of a first server to which a client was connected for accessing a resource, the system comprising:
-
means for connecting a client to a first server node to access a resource for using a scrollable cursor;
means for recording state information for the connection between the client and the first server node, the state information comprising an order-sensitive checksum;
means for detecting that a connection between the first server node and the client has failed;
means for automatically connecting the client with a second server node, the second server node configurable to access the resource, wherein the state information is utilized to determine whether the client can continue processing with previously accessed data transmitted from the first server node; and
means for allowing the client to continue processing with the previously accessed data transmitted from the first server node if the state information indicates consistency with newly accessed data from the second server node. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
48. The system of claim 44 in which a folding process is employed to calculate the order-sensitive checksum.
-
49. The system of claim 44 further comprising means for comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server node and the second order-sensitive checksum value corresponds to the connection between the client and the second server node.
-
50. The system of claim 49 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server node.
-
51. The system of claim 50 in which a query data set from the second server node is retransmitted to the client after the inconsistency is identified.
-
52. The system of claim 44 in which the order-sensitive checksum is not transmitted if the previously accessed data has not changed.
-
53. The system of claim 44 in which the scrollable cursor on the client utilizes information fetched from the resource.
-
54. The system of claim 44 in which the previously accessed data transmitted from the first server node is fully or partially cached at the client.
-
55. A computer program product that includes a computer readable medium, the computer readable medium comprising instructions which, when executed by a processor, causes the processor to execute a process for recovering after failure of a first server to which a client was connected for accessing a resource, the process comprising:
-
detecting that a connection between the first server and the client has failed;
automatically connecting the client with a second server that has access to the resource; and
accessing the resource through the second server, wherein an order-sensitive checksum is employed to verify usability of the resource. - View Dependent Claims (56, 57, 58, 59, 60)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
57. The computer program product of claim 55, wherein the process further comprises comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server and the second order-sensitive checksum value corresponds to the connection between the client and the second server.
-
58. The computer program product of claim 57 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server.
-
59. The computer program product of claim 58 in which a query data set from the second server is retransmitted to the client after the inconsistency is identified.
-
60. The computer program product of claim 55 in which a scrollable cursor on the client utilizes information fetched from the resource.
-
61. A system for recovering after failure of a first server to which a client was connected for accessing a resource, the system comprising:
-
means for detecting that a connection between the first server and the client has failed;
means for automatically connecting the client with a second server that has access to the resource; and
means for accessing the resource through the second server, wherein an order-sensitive checksum is employed to verify usability of the resource. - View Dependent Claims (62, 63, 64, 65, 66)
Initially Co=0 When adding rows x . . . y to existing cache with rows 1 . . . (x−
1)For (row i from x . . . y) Co=checksum_function(Co, column values of row i).
-
-
63. The system of claim 61 further comprising means for comparing a first order-sensitive checksum value with a second order-sensitive checksum value, in which the first order-sensitive checksum value corresponds to the connection between the client and the first server and the second order-sensitive checksum value corresponds to the connection between the client and the second server.
-
64. The system of claim 63 in which an identified inconsistency between the first order-sensitive checksum value and the second order-sensitive checksum value determines that the client should not continue processing the previously accessed data transmitted from the first server.
-
65. The system of claim 64 in which a query data set from the second server is retransmitted to the client after the inconsistency is identified.
-
66. The system of claim 61 in which a scrollable cursor on the client utilizes information fetched from the resource.
Specification