Claims
- 1. A data redundancy system including a primary facility for storing a primary copy of data and a secondary facility for storing data that is redundant of the primary copy of the data, wherein the primary facility comprises:
a first redundancy appliance for receiving a first sequence of write requests and for storing data for the first sequence of write requests in mass storage associated with the first redundancy appliance; and a second redundancy appliance for receiving a second sequence of write requests and for storing data for the second sequence of write requests in mass storage associated with the second redundancy appliance.
- 2. The data redundancy system according to claim 1, wherein the first redundancy appliance and the second redundancy appliance each forward redundant data to the secondary facility in send batches having coordinated send batch boundaries.
- 3. The data redundancy system according to claim 2, wherein a first write transaction in a send batch at the first storage facility is replaced with a second write transaction where the second write transaction overwrites data written by the first write transaction.
- 4. The data redundancy system according to claim 2, wherein the send batch boundaries are coordinated by one of the first and second redundancy appliances informing the other of how a send batch is to be terminated.
- 5. The data redundancy system according to claim 2, wherein the send batches are terminated based on time.
- 6. The data redundancy system according to claim 2, wherein the send batches are terminated immediately.
- 7. The data redundancy system according to claim 2, wherein the send batches are terminated at a previously identified time.
- 8. The data redundancy system according to claim 2, wherein the send batches are terminated after a previously identified request is received.
- 9. The data redundancy system according to claim 2, wherein the send batches are terminated upon agreement of the first and second redundancy appliances.
- 10. The data redundancy system according to claim 2, wherein the send batches are terminated upon notification from a host.
- 11. The data redundancy system according to claim 2, wherein the send batches are terminated after a determined quantity of data is received.
- 12. The data redundancy system according to claim 2, wherein the send batches are terminated based on log space utilization.
- 13. The data redundancy system according to claim 2, further comprising a host computer coupled to the first and second redundancy appliances wherein the send batch boundaries are coordinated by the host computer informing both of the first and second redundancy appliances of how a send batch is to be terminated.
- 14. The data redundancy system according to claim 2, further comprising a host computer coupled to the first and second redundancy appliances wherein the send batch boundaries are coordinated by the host computer informing one of the first and second redundancy appliances of how a send batch is to be terminated and wherein the one redundancy appliance informs the other of the time.
- 15. The data redundancy system according to claim 1, wherein the secondary facility comprises a third redundancy appliance for storing redundant data for the first sequence of write requests in mass storage associated with the third redundancy appliance.
- 16. The data redundancy system according to claim 15, further comprising a fourth redundancy appliance for storing redundant data for the first sequence of write requests in mass storage associated with the fourth redundancy appliance.
- 17. The data redundancy system according to claim 16, wherein the third redundancy appliance and the fourth redundancy appliance each store redundant data to the secondary facility according to receive batches.
- 18. The data redundancy system according to claim 17, wherein the receive batches have coordinated receive batch boundaries.
- 19. The data redundancy system according to claim 17, wherein the receive batches are stored by the third and fourth redundancy appliances performing a two-phase commit operation at the secondary facility.
- 20. The data redundancy system according to claim 17, wherein an acknowledgement is sent to the primary facility after a receive batch has been stored at the secondary facility.
- 21. The data redundancy system according to claim 17, wherein the first redundancy appliance and the second redundancy appliance each forward redundant data to the secondary facility in send batches having coordinated send batch boundaries.
- 22. The data redundancy system according to claim 17, wherein the third redundancy appliance and the fourth redundancy appliance each store redundant data to the secondary facility after a batch is determined safe to apply.
- 23. The data redundancy system according to claim 22, wherein a batch is determined safe to apply when a data integrity test is successfully performed.
- 24. The data redundancy system according to claim 15, wherein an acknowledgement is sent to the primary facility after a receive batch has been stored at the secondary facility.
- 25. The data redundancy system according to claim 15, wherein the first redundancy appliance and the second redundancy appliance each forward redundant data to the secondary facility in send batches having coordinated send batch boundaries.
- 26. The data redundancy system according to claim 15, wherein the third redundancy appliance and the fourth redundancy appliance each store redundant data to the secondary facility after a batch is determined safe to apply.
- 27. The data redundancy system according to claim 26, wherein a batch is determined safe to apply when a data integrity test is successfully performed.
- 28. The data redundancy system according to claim 1, wherein the first redundancy appliance is disjoint from the second redundancy appliance.
- 29. A data redundancy method for storing a primary copy of data at a primary storage facility and for storing data that is redundant of the primary copy at a secondary storage facility, the method comprising:
receiving a first sequence of write requests at the primary storage facility and receiving a second sequence of write requests at the primary storage facility; arranging the first sequence write requests according to a first sequence of send batches and arranging the second sequence of write requests according to a second sequence of send batches wherein boundaries of batches in the first sequence of send batches are coordinated to boundaries of batches in the second sequence of send batches; and forwarding the batches in the first and second sequence of batches to the secondary storage facility.
- 30. The data redundancy method according to claim 29, wherein the send batch boundaries are coordinated according to a time at which a send batch is to be terminated.
- 31. The data redundancy method according to claim 30, wherein said first sequence of write requests is received by a first redundancy appliance at the primary storage facility and said second sequence of write requests is received by a second redundancy appliance at the primary storage facility.
- 32. The data redundancy method according to claim 31, wherein the send batch boundaries are coordinated by one of the first and second redundancy appliances informing the other of how a send batch is to be terminated.
- 33. The data redundancy method according to claim 31, wherein the send batch boundaries are coordinated by a host computer informing both of the first and second redundancy appliances of how a send batch is to be terminated.
- 34. The data redundancy method according to claim 31, wherein the send batch boundaries are coordinated by a host computer informing one of the first and second redundancy appliances of how a send batch is to be terminated and wherein the one redundancy appliance informs the other.
- 35. The data redundancy method according to claim 34, further comprising:
receiving the first sequence of send batches at the secondary storage facility and receiving the second sequence of send batches at the secondary storage facility; and arranging the first sequence of send batches according to a first sequence of receive batches and arranging the second sequence of send batches according to a second sequence of receive batches.
- 36. The data redundancy method according to claim 35, further comprising storing the redundant data at the secondary facility according to the receive batches.
- 37. The data redundancy method according to claim 36, further comprising sending an acknowledgement to the primary facility after a receive batch has been stored at the secondary facility.
- 38. The data redundancy method according to claim 36, wherein said storing the redundant data at the secondary facility is performed for a batch after determining that the batch is safe to apply.
- 39. The data redundancy method according to claim 38, wherein determining the batch is safe to apply comprises performing a data integrity test.
- 40. The data redundancy method according to claim 35, wherein said first sequence of send batches are arranged into the first sequence of receive batches by a third redundancy appliance at the secondary storage facility and said second sequence of send batches are arranged into the second sequence of receive batches by a fourth redundancy appliance at the secondary storage facility.
- 41. The data redundancy method according to claim 40, further comprising storing the redundant data at the secondary facility according to the receive batches by the third and fourth redundancy appliances performing two-phase commit operations at the secondary facility.
- 42. The data redundancy system according to claim 29, wherein the send batches are terminated based on time.
- 43. The data redundancy system according to claim 29, wherein the send batches are terminated after a previously identified request is received.
- 44. The data redundancy system according to claim 29, wherein the send batches are terminated upon agreement of the first and second redundancy appliances.
- 45. The data redundancy system according to claim 29, wherein the send batches are terminated upon notification from a host.
- 46. The data redundancy system according to claim 29, wherein the send batches are terminated after a determined quantity of data is received.
- 47. The data redundancy system according to claim 29, wherein the send batches are terminated based on log space utilization.
- 48. The data redundancy method according to claim 29, further comprising replacing a first write transaction in a receive batch at the second storage facility with a second write transaction where the second write transaction overwrites data written by the first write transaction.
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. 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. 200309047-1), filed (on the same day as this application) and entitled, “Batched, Asynchronous Data Redundancy Technique”; 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.