Interval-controlled replication
Abstract
Various systems and methods for interval-controlled replication are described. For example, one method involves a node receiving a first interval indication indicating start of a first interval. After receiving the first interval indication, an application on the node initiates a first write, which includes the node initiating a first local write and a first remote write. The first local write accesses a local storage. The first remote write accesses a remote storage and replicates the first local write. The node waits for acknowledgements indicating that the local and remote writes have finished, as well as for a second interval indication, before the first write from the application is treated being complete.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method, comprising:
receiving, at a local node,
a first write from an application, and
a first interval indication, wherein
the first interval indication indicates a start of a first interval, and
the first interval indication is one of a plurality of interval indications;
first initiating, at the local node, a first local write, a first remote write, and a second remote write, wherein
the first initiating is performed in response to receipt of the first interval indication,
the first local write accesses a local storage of the local node,
the first local write is based on the first write,
the first remote write accesses a first remote storage,
the first remote write replicates the first local write,
the second remote write accesses a second remote storage, and
the second remote write replicates the first local write;
receiving, at the local node, a first remote write acknowledgement, wherein
the first remote write acknowledgement indicates that the first remote storage completed the first remote write;
receiving, at the local node, a second remote write acknowledgement, wherein
the second remote write acknowledgement indicates that the second remote storage completed the second remote write;
receiving a second interval indication of the plurality of interval indications; and
acknowledging a completion of the first remote write and a completion of the second remote write, wherein
the acknowledging of each completion is communicated to the application, and
the acknowledging is performed in response to receipt of the first remote write acknowledgement, the second remote write acknowledgement, and the second interval indication.
2. The method of claim 1 , wherein
a plurality of nodes comprises a first node, and
the first node performs the acknowledging in response to determining that each of the plurality of nodes have received the second interval indication.
3. The method of claim 2 , wherein
determining that each of the plurality of nodes have received the second interval indication comprises
receiving an acknowledgement that each of the plurality of nodes has received the second interval indication.
4. The method of claim 1 , wherein
the first remote write has a first associated time stamp, and
the first associated time stamp indicates the first interval.
5. The method of claim 1 , further comprising:
determining a new interval if the first local write and the first remote write have completed before receiving the second interval indication.
6. The method of claim 1 , further comprising:
sending a first interval acknowledgement, wherein
the first interval acknowledgement indicates receipt of the first interval indication.
7. The method of claim 1 , wherein
the first initiating is performed further in response to the receiving the first write, and
the first write accesses a first data;
and further comprising:
receiving a second write from the application, wherein
the application is configured to issue the second write in response to the acknowledging,
the second write accesses a second data, and
the second data is dependent on the first data.
8. The method of claim 1 , wherein
the first remote write accesses a first data,
the second remote write accesses a second data, and
the second data is dependent on the first data.
9. The method of claim 1 , further comprising:
second initiating a third local write to the local storage and a third remote write to a third remote storage, wherein
the third remote write replicates the third local write,
the second initiating is performed in response to receipt of the first interval indication,
the first remote write accesses a first data,
the third remote write accesses a second data, and
the second data is independent of the first data.
10. The method of claim 1 , further comprising:
determining if a first node has not responded to a first amount of the plurality of interval indications;
in response to a determination that the first node has not responded to the first amount of the plurality of interval indications, indicating in interval indications that the first node is unresponsive.
11. The method of claim 10 , further comprising:
determining if the first node responds to interval indications after a delay, and
in response to a determination that the first node responds to the interval indications, processing any remote writes performed by the first node during the delay.
12. The method of claim 1 , further comprising:
determining whether a first node is accessing certain data, wherein the certain data comprises a first data dependency characteristic;
in response to a determination that the first node is accessing the certain data, the first node performing batch processing of the certain data.
13. The method of claim 1 , wherein
in response to receiving the acknowledging of the completion, the application is configured to complete a first application write, wherein
the first write is based on the first application write, and
the application is configured to complete the first application write during a second interval.
14. A system comprising:
an application, wherein
the application is configured to issue a first write,
a management module, wherein
the management module is configured to
receive, at a local node, a first interval indication, wherein
the first interval indication indicates a start of a first interval,
initiate, at the local node, a first local write, a first remote write, and a second remote write, wherein
the first local write is based on the first write,
the management module performs the initiating in response to
the application issuing the first write, and
the management module receiving the first interval indication,
the first remote write accesses a first remote storage, and
the second remote write access a second remote storage,
receive, at the local node, a second interval indication, wherein
the second interval indication indicates a start of a second interval,
receive, at the local node, a first remote write acknowledgement, wherein
the first remote write acknowledgement indicates that the first remote storage completed the first remote write,
receive, at the local node, a second remote write acknowledgement, wherein
the second remote write acknowledgement indicates
that the second remote storage complete the second remote write:
and
acknowledge that the first remote write and the second remote write are completed, wherein
the management module performs the acknowledging of the first write and the acknowledging of the second write in response to
receiving the second interval indication,
receiving the first remote write acknowledgement, and
receiving the second remote write acknowledgement; and
the management module performs the acknowledging to the application.
15. The system of claim 14 , wherein
the application is configured to issue to a second write in response to receiving acknowledgement of the first write from the management module.
16. The system of claim 14 , wherein
a plurality of nodes comprises the system,
the management module performs the acknowledging of the first write in further response to
determining that each of the plurality of nodes have received the second interval indication.
17. The system of claim 14 , wherein
the management module is further configured to send a first interval acknowledgement, wherein
the first interval acknowledgement indicates that the management module received the first interval indication.
18. A computer program product comprising:
a plurality of instructions, comprising
a first set of instructions, executable on a computer system, configured to receive a first interval indication, wherein
the first interval indication indicates a start of a first interval,
the first interval indication is one of a plurality of interval indications,
a second set of instructions, executable on the computer system, configured to initiate a first local write, a first remote write, and a second remote write, wherein
the first local write is based on a first write,
the first write is received from an application,
the initiating is performed in response to receipt of the first interval indication,
the first local write accesses a local storage,
the first remote write accesses a first remote storage,
the first remote write replicates the first local write,
the second remote write accesses a second remote storage, and
the second remote write replicates the first local write,
a third set of instructions, executable on the computer system, configured to receive a first remote write acknowledgement, wherein
the first remote write acknowledgement indicates that the first remote storage completed the first remote write,
a fourth set of instructions, executable on the computer system, configured to receive a second remote write acknowledgement, wherein
the second remote write acknowledgement indicates that the second remote storage completed the second remote write,
a fifth set of instructions, executable on the computer system, configured to
receive a second interval indication of the plurality of interval indications, and
a sixth set of instructions, executable on the computer system, configured to acknowledge that the first remote write and the second remote write have completed in response to receipt of the first remote write acknowledgement, the second remote write acknowledgement, and the second interval indication, wherein
the acknowledgement of the completion is communicated to the application; and
a computer-readable storage medium, wherein the instructions are encoded in the computer-readable storage medium.
19. The computer program product of claim 18 , wherein
each of the first remote write and the first local write has a first associated time stamp, and
the first associated time stamp indicates the first interval.
20. The computer program product of claim 18 , wherein
determining that each of a plurality of nodes have received the second interval indication comprises
receiving an acknowledgement that each of the plurality of nodes have received the second interval indication.
21. The computer program product of claim 18 , wherein
the plurality of instructions further comprises a seventh set of instructions, executable on a computer system, configured to
send a first interval acknowledgement, wherein
the first interval acknowledgement indicates receipt of the first interval indication.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.