Fast failover with multiple secondary nodes
First Claim
1. A method comprising:
- identifying a plurality of secondary nodes;
sending an update from a primary node to the plurality of secondary nodes, whereinthe update identifies at least one secondary node of the plurality of secondary nodes to which the update will be sent;
in response to receiving the update from the primary node, causing the at least one secondary node to insert the update in a respective log of updates, whereineach of the respective log of updates corresponds to a respective copy of the data, andthe inserting the update in the respective log of updates is performed at the secondary node;
in response to inserting the update in the respective log of updates, causing the update to be copied from the respective log of updates to a storage area at the least one secondary node;
sending an acknowledgement from the at least one secondary node to the primary node, whereinthe acknowledgement indicates that the update has been received at the least one secondary node;
determining that all of the plurality of secondary nodes have acknowledged the update; and
in response to the determining, causing each secondary node of the at least one secondary node to clear the update from the respective log of updates by sending a notification to each of the plurality of secondary nodes once all of the plurality of secondary nodes have acknowledged the update, whereinthe clearing is performed in response to receiving the notification.
8 Assignments
0 Petitions
Accused Products
Abstract
A method, system, computer system, and computer program product to quickly synchronize replicas of data stored at multiple secondary nodes upon failure of a primary node. Secondary nodes to which an update to data is sent are identified. The secondary nodes insert the update into a respective log of updates to a respective copy of the data. When all of the secondary nodes have acknowledged the update, a notification is sent to each of the secondary nodes. In response to receiving the notification, each of the secondary nodes clears the update from the respective log. Data at one secondary node can be synchronized with data at another secondary node when one of the nodes has received updates from the primary node that the other secondary node has not yet received.
-
Citations
17 Claims
-
1. A method comprising:
-
identifying a plurality of secondary nodes; sending an update from a primary node to the plurality of secondary nodes, wherein the update identifies at least one secondary node of the plurality of secondary nodes to which the update will be sent; in response to receiving the update from the primary node, causing the at least one secondary node to insert the update in a respective log of updates, wherein each of the respective log of updates corresponds to a respective copy of the data, and the inserting the update in the respective log of updates is performed at the secondary node; in response to inserting the update in the respective log of updates, causing the update to be copied from the respective log of updates to a storage area at the least one secondary node; sending an acknowledgement from the at least one secondary node to the primary node, wherein the acknowledgement indicates that the update has been received at the least one secondary node; determining that all of the plurality of secondary nodes have acknowledged the update; and in response to the determining, causing each secondary node of the at least one secondary node to clear the update from the respective log of updates by sending a notification to each of the plurality of secondary nodes once all of the plurality of secondary nodes have acknowledged the update, wherein the clearing is performed in response to receiving the notification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium having a plurality of instructions embodied therein, wherein the plurality of instructions are executable for:
-
identifying instructions to identify a plurality of secondary nodes;
sending an update from a primary node to the plurality of secondary nodes, whereinthe update identifies at least one secondary node of the plurality of secondary nodes to which the update will be sent; in response to receiving the update from the primary node, causing the at least one secondary node to insert the update in a respective log of updates, wherein each of the respective log of updates corresponds to a respective copy of the data, and the inserting the update in the respective log of updates is performed at the secondary node; in response to inserting the update in the respective log of updates, causing the update to be copied from the respective log of updates to a storage area at the least one secondary node; sending an acknowledgement from the at least one secondary node to the primary node, wherein the acknowledgement indicates that the update has been received at the least one secondary node; determining that all of the plurality of secondary nodes have acknowledged the update; and in response to the determining, causing each secondary node of the at least one secondary node to clear the update from the respective log of updates by sending instructions to send a notification to each of the plurality of secondary nodes once all of the plurality of secondary nodes have acknowledged the update, wherein the clearing is performed in response to receiving the notification. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a processor for executing instructions, and a memory to store the instructions, wherein the instructions comprise identifying instructions to identify a plurality of secondary nodes to which an update to data is sent from a primary node, wherein the update identifies at least one secondary node of the plurality of secondary nodes to which the update will be sent; in response to receiving the update from the primary node, causing the at least one secondary node to insert the update in a respective log of updates to a respective copy of the data, wherein each of the respective log of updates corresponds to a respective copy of the data, and the inserting the update in the respective log of updates is performed at the secondary node; in response to inserting the update in the respective log of updates, causing the update to be copied from the respective log of updates to a storage area at the least one secondary node; sending an acknowledgement from the at least one secondary node to the primary node, wherein the acknowledgement indicates that the update has been received at the least one secondary node; determining that all of the plurality of secondary nodes have acknowledged the update; and in response to the determining, causing each secondary node of the at least one secondary node to clear the update from the respective log of updates by sending instructions to send a notification to each of the plurality of secondary nodes when all of the plurality of secondary nodes have acknowledged the update, wherein the clearing is performed in response to receiving the notification. - View Dependent Claims (16, 17)
-
Specification