Claims
- 1. A method for redundantly backing up data comprising:
performing a sequence of write transactions at a first storage facility; arranging the write transactions into a sequence of send batches; replacing a first write transaction at the first storage facility with a second write transaction wherein the second write transaction overwrites data written by the first write transaction; forwarding the write transactions to a second storage facility; arranging the write transactions into a sequence of receive batches at the second storage facility wherein a receive batch includes all write transactions between the first write transaction and the second write transaction; and applying the write transactions to a redundant data copy at the second storage facility wherein all of the write transactions for the receive batch are applied as a whole to the redundant copy of the data.
- 2. The method according to claim 1, wherein applying said write transactions is performed by repeatedly re-applying a log of write transactions until all are applied.
- 3. The method according to claim 1, wherein applying said write transactions is performed by storing data for the write transactions and a map of the data and then changing the map.
- 4. The method according to claim 1, wherein applying said write transactions is performed by performing copy-on-write.
- 5. The method according to claim 1, wherein a send batch size is determined according to a time interval for collecting transactions into the send batch.
- 6. The method according to claim 1, wherein a send batch size is determined according to a predetermined quantity of transactions to be included in the send batch.
- 7. The method according to claim 1, wherein a send batch size is determined adaptively.
- 8. The method according to claim 1, further comprising queuing the batches at a second storage facility and wherein said applying is performed selectively.
- 9. The method according to claim 8, wherein the second storage facility applies a receive batch to the redundant copy of the data after a timestamp associated with the receive batch reaches a predetermined age.
- 10. The method according to claim 8, wherein the second storage facility applies a receive batch to the redundant copy of the data after the receive batch is determined safe to apply.
- 11. The method according to claim 1, wherein all of a send batch is forwarded to the second storage facility before any of a next send batch is forwarded.
- 12. The method according to claim 1, wherein the send batches are forwarded in the order of their formation.
- 13. The method according to claim 1, wherein more than one send batch is forwarded to the second storage facility at any one time.
- 14. The method according to claim 1, further comprising replacing a first write transaction in a first receive batch at the second storage facility with a second write transaction in a second receive batch wherein the second write transaction overwrites data written by the first write transaction and the first and second receive batches are combined.
- 15. The method according to claim 14, further comprising merging all write transactions between the first write transaction and the second write transaction into a single receive batch.
- 16. The method according to claim 1, wherein the first write transaction and the second write transaction are within the same send batch.
- 17. The method according to claim 16, further comprising merging all write transactions between the first write transaction and the second write transaction into a single receive batch.
- 18. A method for redundantly backing up data comprising:
performing a sequence of write transactions at a first storage facility; forwarding the write transactions to a second storage facility; replacing a first write transaction at the second storage facility with a second write transaction wherein the second write transaction overwrites data written by the first write transaction; arranging the write transactions into a sequence of receive batches at the second storage facility wherein a receive batch includes all write transactions between the first write transaction and the second write transaction; and applying the write transactions to a redundant data copy at the second storage facility wherein all of the write transactions for the receive batch are applied as a whole to the redundant copy of the data.
- 19. The method according to claim 18, further comprising arranging the write transactions into a sequence of send batches.
- 20. The method according to claim 19, further comprising replacing a first write transaction in a send batch at the first storage facility with a second write transaction wherein the second write transaction overwrites data written by the first write transaction
- 21. The method according to claim 19, wherein a send batch size is determined according to a time interval for collecting transactions into the send batch.
- 22. The method according to claim 19, wherein a send batch size is determined according a predetermined quantity of transactions to be included in the send batch.
- 23. The method according to claim 19, wherein a send batch size is determined adaptively.
- 24. The method according to claim 18, further comprising queuing the receive batches at a second storage facility and wherein said applying is performed selectively.
- 25. The method according to claim 24, wherein the second storage facility applies a receive batch to the redundant copy of the data after a timestamp associated with the receive batch reaches a predetermined age.
- 26. The method according to claim 24, wherein the second storage facility applies a receive batch to the redundant copy of the data after the receive batch is determined safe to apply.
- 27. A system for redundantly backing up data comprising:
a first storage facility for performing a sequence of write transactions at the first facility and for arranging the write transactions according to a sequence of send batches; and a second storage facility for receiving the write transactions from the communications media and for arranging the write transactions according to a sequence of receive batches, each receive batch bounded by receive boundaries, and the second storage facility for applying the receive batches to a redundant copy of the data at the second storage facility, wherein the write transactions of each receive batch are applied to the redundant copy of the data as a whole.
- 28. The system according to claim 27, wherein all of a send batch is forwarded to the second storage facility before any of a next send batch is forwarded.
- 29. The system according to claim 28, wherein the send batches are forwarded in the order of their formation.
- 30. The system according to claim 29, wherein more than one send batch is forwarded to the second storage facility at any one time.
- 31. The system according to claim 27, further comprising a communication medium coupled between the first and second storage facilities.
- 32. The system according to claim 27, wherein a first write transaction is replaced with a second write transaction at the first storage facility wherein the second write transaction overwrites data written by the first write transaction.
- 33. The system according to claim 32, wherein a receive batch includes all write transactions between the first write transaction and the second write transaction.
- 34. The system according to claim 27, wherein a first write transaction in a first receive batch is replaced with a second write transaction in a second received batch at the second storage facility wherein the second write transaction overwrites data written by the first write transaction and the first and second receive batches are combined.
- 35. The system according to claim 34, wherein a combined receive batch includes all write transactions between the first write transaction and the second write transaction.
- 36. The method according to claim 27, wherein a send batch size is determined adaptively.
- 37. The system according to claim 27, wherein the second storage facility applies a receive batch to the redundant copy of the data after a timestamp associated with the batch reaches a predetermined age.
- 38. The system according to claim 27, wherein the second storage facility applies a receive batch to the redundant copy of the data after the receive batch is determined safe to apply.
- 39. The method according to claim 38, wherein the receive batch is determined safe to apply after a data integrity test is passed.
RELATED APPLICATIONS
[0001] The following applications disclose related subject matter: U.S. application Ser. No. ______ (Attorney Docket No. 100204276-1), filed (on the same day as this application) and entitled, “Asynchronous Data Redundancy Technique”;U.S. application Ser. No. ______ (Attorney Docket No. 200309042-1), filed (on the same day as this application) and entitled, “Redundant Data Consistency After Failover”; U.S. application Ser. No. ______ (Attorney Docket No. 200309043-1), filed (on the same day as this application) and entitled, “Distributed Data Redundancy Operations”; U.S. application Ser. No. ______ (Attorney Docket No. 200309044-1), filed (on the same day as this application) and entitled, “Fault-Tolerant Data Redundancy Technique”; U.S. application Ser. No. ______ (Attorney Docket No. 200309045-1), filed (on the same day as this application) and entitled, “Adaptive Batch Sizing for Asynchronous Data Redundancy”; U.S. application Ser. No. ______ (Attorney Docket No. 200309046-1), filed (on the same day as this application) and entitled, “State Machine and System for Data Redundancy”; U.S. application Ser. No. ______ (Attorney Docket No. 200309499-1), filed (on the same day as this application) and entitled, “Data Redundancy Using Portal and Host Computer”; the contents of all of which are hereby incorporated by reference.