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 according to a sequence of batches; queuing the batches at a second storage facility; and selectively applying the batches of the write transactions to a redundant data copy at the second storage facility.
- 2. The method according to claim 1, wherein said selectively applying the batches comprises waiting until a batch reaches a predetermined age before applying the batch.
- 3. The method according to claim 1, wherein said selectively applying the batches comprises waiting until a specified external clock-driven event occurs before applying the batch.
- 4. The method according to claim 1, wherein said selectively applying the batches comprises waiting until a trigger is received from the first storage facility.
- 5. The method according to claim 1, wherein said selectively applying the batch comprises waiting until a combination of a time delay criteria and a data integrity test are satisfied before applying the batch.
- 6. The method according to claim 1, wherein said selectively applying the batches comprises determining that a batch is safe to apply before applying the batch.
- 7. The method according to claim 6, wherein said determining that a batch is safe to apply comprises performing a data integrity test.
- 8. The method according to claim 7, wherein the data integrity test is performed on data within the batch.
- 9. The method according to claim 7, wherein the data integrity test is performed on data at the first storage facility.
- 10. The method according to claim 7, wherein said performing a data integrity test on the data is selected from the group consisting of: performing virus detection, performing intrusion detection, verifying a checksum and verifying network logs.
- 11. The method according to claim 7, wherein performing a data integrity test is performed at the second facility.
- 12. The method according to claim 1, further comprising replacing a first write transaction in a batch with a second write transaction where the second write transaction overwrites data written by the first write transaction.
- 13. The method according to claim 1, wherein one of the batches at the second storage facility includes all write transactions between the first write transaction and the second write transaction and wherein said selectively applying the batch applies the batch as a whole.
- 14. The method according to claim 1, wherein said arranging the write transactions comprises arranging the write transactions into a sequence of send batches at the first storage facility, communicating the send batches to the second storage facility and arranging the send batches according to receive batches at the second storage facility.
- 15. The method according to claim 14, further comprising replacing a first write transaction in a send batch at the first storage facility with a second write transaction where the second write transaction overwrites data written by the first write transaction.
- 16. The method according to claim 14, 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 where the second write transaction overwrites data written by the first write transaction and the first and second receive batches are combined.
- 17. The method according to claim 14, wherein a size for a send batch is determined according to a time interval for collecting transactions into the send batch.
- 18. The method according to claim 14, wherein size for a send batch is determined according to a predetermined quantity of transactions to be included in the send batch.
- 19. The method according to claim 14, wherein a size for a send batch is determined adaptively based on available communication bandwidth between the first storage facility and the second storage facility.
- 20. The method according to claim 14, wherein a size for a receive batch is determined based on a time interval for collecting transactions into the batch.
- 21. The method according to claim 14, wherein a size for a receive batch is determined based on collecting a predetermined quantity of transactions in the batch.
- 22. The method according to claim 14, wherein a size for a receive batch is determined adaptively based on available space in the write queue at the secondary storage facility.
- 23. The method according to claim 14, wherein a size for a send batch is determined adaptively.
- 24. The method according to claim 1, wherein a size for a batch is determined adaptively.
- 25. The method according to claim 1, wherein a size for a batch is determined based on a time interval for collecting transactions into the batch.
- 26. The method according to claim 1, wherein a size for a batch is determined based on collecting a predetermined quantity of transactions in the batch.
- 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 a second storage facility for receiving the write transactions from the first storage facility, wherein the transactions are queued at the second storage facility and wherein the second storage facility applies the transactions to a redundant copy of the data at the second storage facility after a time delay criteria is satisfied, a data integrity test is satisfied or combination thereof is satisfied.
- 28. The system according to claim 27, further comprising a communication medium for communicating write transactions between the first and second storage facilities.
- 29. The system according to claim 27, wherein the write transactions are arranged according to a sequence of receive batches at the second storage facility.
- 30. The system according to claim 29, wherein a first write transaction in a first receive batch is replaced with a second write transaction in a second receive batch at the second storage facility where the second write transaction overwrites data written by the first write transaction and the first and second receive batches are combined.
- 31. The system according to claim 29, wherein one of the receive batches at the second storage facility includes all write transactions between the first write transaction and the second write transaction and wherein the receive batch is applied to the redundant copy as a whole.
- 32. The method according to claim 29, wherein the write transactions are arranged according to a sequence of send batches at the first storage facility wherein a size for a send batch is determined adaptively based on available space in the write queue at the secondary storage facility.
RELATED APPLICATIONS
[0001] The following applications disclose related subject matter: U.S. application No. (Attorney Docket No. 200309042-1), filed (on the same day as this application) and entitled, “Redundant Data Consistency After Failover”; U.S. application No. (Attorney Docket No. 200309043-1), filed (on the same day as this application) and entitled, “Distributed Data Redundancy Operations”; U.S. application No. (Attorney Docket No. 200309044-1), filed (on the same day as this application) and entitled, “Fault-Tolerance Data Redundancy Technique”; U.S. application 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 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 No. (Attorney Docket No. 200309047-1), filed (on the same day as this application) and entitled, “Batched, Asynchronous Data Redundancy Technique”; U.S. application 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.