6728898

Producing a Mirrored Copy Using Incremental-Divergence

PublishedApril 27, 2004
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
56 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; and having the second storage device, after receiving the commit-synchronization message, confirm that data associated with all write requests that preceded the designated write request have been written to the non-volatile storage of the second storage device and that data associated with the designated write request have been written to the non-volatile storage of the second storage device.

2

2. The method of claim 1 further comprising having the second storage device, after receiving the commit-synchronization message, process the designated write request.

3

3. The method of claim 1 wherein the information sent with the commit-synchronization message is a reference label identifying a write request processed by the first storage device.

4

4. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; and having the second storage device, after receiving the commit-synchronization message, confirm a successful cache flush of the volatile storage of the second storage device.

5

5. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; and having the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device, wherein the information sent with the commit-synchronization message is a reference label identifying a write request processed by the first storage device and reference labels are assigned sequentially to write requests.

6

6. The method of claim 5 wherein processing the write requests received at the second storage device further comprises processing write requests in sequential order by their reference labels such that all write requests issued prior to the write request identified by the reference label in the commit-synchronization message are processed prior to processing that write request.

7

7. The method of claim 5 wherein each storage device receives write requests with the same sequence of reference labels.

8

8. The method of claim 5 further comprising identifying regions of storage affected by write requests that have been processed at the first storage device.

9

9. The method of claim 8 wherein identifying regions of storage affected by write requests that have been processed at the first storage device further comprises accumulating the identified regions of storage in a first bit map.

10

10. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; having the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; identifying regions of storage affected by write requests that have been processed at the first storage device identifying regions of storage affected by write requests that have been processed at the first storage device; accumulating the identified regions of storage in a first bit map; after sending the commit-synchronization message, accumulating newly identified regions of storage in a second bit map; after the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device, sending a status message to the first storage device indicating whether the write data were successfully written to the non-volatile storage; and after receiving the status message indicating that the write data were successfully written, deleting the first bit map.

11

11. The method of claim 10 further comprising after receiving the status message indicating that the write data were not successfully written, copying the contents of the second bit map to the first bit map and deleting the second bit map.

12

12. The method of claim 10 further comprising, after deleting the first bit map, designating the second bit map as the first bit map.

13

13. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; and having the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; and after a period when the second storage device was unable to process write requests; copying the contents of the first bit map to a recovery bit map, using the recovery bit map to identify regions of storage of the first storage device to be copied from the first storage device to the second storage device, copying the identified regions of storage of the first storage device to the second storage device, and accumulating newly received write requests at the first storage device in a third bit map.

14

14. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller, a volatile storage and a non-volatile storage; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; sending a commit-synchronization message to the second storage device along with information designating a write request; having the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; sending a second commit-synchronization message to the first storage device along with information designating a second write request; and having the first storage device, after receiving the second commit-synchronization message, confirm that data associated with the designated second write request have been written to the non-volatile storage of the first storage device.

15

15. The method of claim 14 wherein having the first storage device confirm that data associated with the designated second write request have been written to the non-volatile storage of the first storage device comprises having the first storage device confirm that data associated with all write requests that preceded the designated second write request have been written to the non-volatile storage of the first storage device.

16

16. The method of claim 15 wherein having the first storage device confirm that data associated with the designated second write request have been written to the non-volatile storage of the first storage device comprises having the first storage device confirm that data associated with the designated second write request have been written to the non-volatile storage of the first storage device.

17

17. The method of claim 14 further comprising having the first storage device, after receiving the second commit-synchronization message, process the designated second write request.

18

18. The method of claim 14 wherein having the first storage device confirm that the data associated with the designated second write request have been written to the non-volatile storage of the first storage device comprises having the first storage device confirm a successful cache flush of the volatile storage of the second storage device.

19

19. The method of claim 14 wherein the information sent with the second commit-synchronization message is a reference label identifying a second write request processed by the second storage device.

20

20. The method of claim 19 wherein the reference labels are assigned sequentially to write requests.

21

21. The method of claim 20 wherein processing the write requests received at the first storage device further comprises processing write requests in sequential order by their reference labels such that all write requests issued prior to the write request identified by the reference label in the second commit-synchronization message are processed prior to processing that write request.

22

22. The method of claim 20 wherein each storage device receives write requests with the same sequence of reference labels.

23

23. The method of claim 14 further comprising identifying regions of storage affected by write requests that have been processed at the second storage device.

24

24. The method of claim 23 wherein identifying regions of storage affected by write requests that have been processed at the second storage device further comprises accumulating the identified regions of storage in a fourth bit map.

25

25. The method of claim 24 further comprising: after sending the second commit-synchronization message, accumulating newly identified regions of storage in a fifth bit map, after the first storage device confirms that data in the processed write requests have been written to non-volatile storage of the first storage device, sending a status message to the second storage device indicating whether the write data were successfully written to the non-volatile storage, and after receiving the second status message indicating that the write data were successfully written, deleting the fourth bit map.

26

26. The method of claim 25 further comprising after receiving the status message indicating that the write data were not successfully written, copying the contents of the fifth bit map to the fourth bit map and deleting the fifth bit map.

27

27. The method of claim 25 further comprising, after deleting the fourth bit map, designating the fifth bit map as the fourth bit map.

28

28. The method of claim 24 further comprising, after a period when the first storage device was unable to process write requests: copying the contents of the fourth bit map to a second recovery bit map, using the second recovery bit map to identify the regions of storage of the second storage device to be copied from the second storage device to the first storage device, copying the identified regions of storage of the second storage device to the first storage device, and accumulating newly received write requests at the first storage device in a sixth bit map.

29

29. The method of claim 14 further comprising associating a unique identifier with a particular data set such that wherein the write request is uniquely identified.

30

30. The method of claim 29 wherein the unique identifier comprises an instance number.

31

31. The method of claim 29 wherein the unique identifier comprises a date.

32

32. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; after determining that the second storage device is about to enter a period in which the second storage device will be unable to process write requests, having the controller of the first storage device send a commit-synchronization message to the second storage device along with information designating a write request; having the controller of the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; after sending the commit-synchronization message, having the controller of the first storage device accumulate regions of storage affected by new write requests in a bit map; after the second storage device is able to process write requests, having the controller of the first storage device use the bit map to identify the regions of storage of the first storage device to be copied from the first storage device to the second storage device; and copying the contents of the identified regions of the first storage device to the second storage device.

33

33. A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising: receiving write requests at a first storage device, the first storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the first storage device; receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; processing the write requests received at the second storage device; having the controller of the first storage device accumulate regions of storage affected by new write requests in a first bit map; having the controller of the first storage device send a commit-synchronization message to the second storage device along with information designating a uniquely identified write request; having the controller of the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; after sending the commit-synchronization message, having the controller of the first storage device accumulate regions of storage affected by new write requests in a second bit map; after the controller of the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device, sending a status message to the first storage device indicating whether the write data were successfully written to non-volatile storage; after receiving the status message indicating that the write data were successfully written, deleting the first bit map; after receiving the status message indicating that the write data were not successfully written, copying the contents of the second bit map to the first bit map and deleting the second bit map; after the second storage device is able to process write requests after a period in which the second storage device was unable to process write requests: copying the contents of the second bit map to a recovery bit map; using the recovery bit map to identify regions of storage of the first storage device to be copied from the first storage device to the second storage device; copying the contents of the identified regions of the first storage device to the second storage device, and having the controller of the first storage device accumulate regions of storage affected by new write requests in a third bit map.

34

34. The method of claim 33 wherein copying the contents of the identified regions of the first storage device to the second storage device comprises: having the controller of the first storage device send a commit-synchronization message to the second storage device along with information designating a uniquely identified write request; having the controller of the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device; after sending the commit-synchronization message, having the controller of the first storage device accumulate regions of storage affected by new write requests in a fourth bit map; after the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device, sending a status message to the first storage device indicating whether the write data were successfully written to non-volatile storage; after receiving the status message indicating that the write data were successfully written, deleting the third bit map; and after receiving the status message indicating that the write data were not successfully written, copying the contents of the fourth bit map to the third bit map and deleting the fourth bit map.

35

35. A mirrored data storage system comprising: a first storage device; a second storage device; a first controller associated with the first storage device; and a second controller associated with the second storage device; wherein: the first controller is configured to: receive write requests at a first storage device; process the write requests received at the first storage; and send a commit-synchronization message to the second storage device along with information designating one write request; and the second controller is configured to: receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage; process the write requests received at the second storage device; and confirm, after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message, that data associated with all write requests that preceded the designated write request have been written to the non-volatile storage of the second storage device and that data associated with the designated write request have been written to the non-volatile storage of the second storage device.

36

36. A mirrored data storage system comprising: a first storage device; a second storage device; a first controller associated with the first storage device; and a second controller associated with the second storage device; wherein: the first controller is configured to: receive write requests at a first storage device; process the write requests received at the first storage; and send a commit-synchronization message to the second storage device along with information designating one write request; and the second controller is configured to: receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage; process the write requests received at the second storage device; confirm that data associated with the write request identified by the information in the commit-synchronization message have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message; and confirm a successful cache flush of the volatile storage of the second storage device.

37

37. The system of claim 36 wherein the information sent with the commit-synchronization message is a reference label identifying a write request processed by the first storage device.

38

38. A mirrored data storage system comprising: a first storage device; a second storage device; a first controller associated with the first storage device; and a second controller associated with the second storage device; wherein: the first controller is configured to: receive write requests at a first storage device; process the write requests received at the first storage; and send a commit-synchronization message to the second storage device along with information designating one write request wherein the information sent with the commit-synchronization message is a reference label identifying a write request processed by the first storage device and reference labels are assigned sequentially to write requests; and the second controller is configured to: receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage; process the write requests received at the second storage device; confirm that data associated with the write request identified by the information in the commit-synchronization message have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message.

39

39. The system of claim 38 wherein the second controller is configured to process write requests in sequential order by their reference labels such that all write requests issued prior to the write request identified by the reference label in the commit-synchronization message are processed prior to processing that write request.

40

40. The system of claim 38 wherein each storage device receives write requests with the same sequence of reference labels.

41

41. The system of claim 38 wherein the first controller is further configured to identify regions of storage affected by write requests that have been processed at the first storage device.

42

42. The system of claim 41 wherein the first controller is configured to accumulate the identified regions of storage in a first bit map.

43

43. A mirrored data storage system comprising: a first storage device; a second storage device; a first controller associated with the first storage device; and a second controller associated with the second storage device; wherein: the first controller is configured to: receive write requests at a first storage device; process the write requests received at the first storage; send a commit-synchronization message to the second storage device along with information designating one write request; and after sending the commit-synchronization message, accumulate newly identified regions of storage in a second bit map, and after receiving a status message from the second controller indicating that the write data were successfully written, delete the first bit map; and the second controller is configured to: receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage; process the write requests received at the second storage device; confirm that data associated with the write request identified by the information in the commit-synchronization message have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message; and after the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device, send the status message to the first storage device indicating whether the write data were successfully written to the non-volatile storage.

44

44. The system of claim 43 wherein the first controller is further configured to, after receiving the status message indicating that the write data were not successfully written, copy the contents of the second bit map to the first bit map and delete the second bit map.

45

45. A mirrored data storage system comprising: a first storage device; a second storage device; a first controller associated with the first storage device; and a second controller associated with the second storage device; wherein: the first controller is configured to: receive write requests at a first storage device; process the write requests received at the first storage; send a commit-synchronization message to the second storage device along with information designating one write request; and after a period when the second storage device was unable to process write requests: copy the contents of the first bit map to a recovery bit map, use the recovery bit map to identify regions of storage of the first storage device to be copied from the first storage device to the second storage device, copy the identified regions of storage of the first storage device to the second storage device, and accumulate newly received write requests at the first storage device in a third bit map; and the second controller is configured to: receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage; process the write requests received at the second storage device; confirm that data associated with the write request identified by the information in the commit-synchronization message have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message.

46

46. A computer-readable medium or propagated signal having embodied thereon a computer program configured to maintain a mirrored copy of a first storage device at a second storage device in a computer system, the medium comprising code segments configured to: receive write requests at a first storage device, the first storage device including an associated controller; process the write requests received at the first storage device; receive write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; process the write requests received at the second storage device: send a commit-synchronization message to the second storage device along with information designating a write request; and after receiving the commit-synchronization message, confirm that data associated with all write requests that preceded the designated write request have been written to the non-volatile storage of the second storage device and that data associated with the designated write request have been written to the non-volatile storage of the second storage device.

47

47. A computer-readable medium or propagated signal having embodied thereon a computer program configured to maintain a mirrored copy of a first storage device at a second storage device in a computer system, the medium comprising code segments configured to: receive write requests at a first storage device, the first storage device including an associated controller; process the write requests received at the first storage device; receive write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; process the write requests received at the second storage device; send a commit-synchronization message to the second storage device along with information designating a write request; and after receiving the commit-synchronization message, confirm a successful cache flush of the volatile storage of the second storage device.

48

48. The medium of claim 47 wherein the information sent with the commit-synchronization message is a reference label identifying a write request processed by the first storage device.

49

49. The medium of claim 48 wherein reference labels are assigned sequentially to write requests.

50

50. The medium of claim 49 wherein processing the write requests received at the second storage device further comprises processing write requests in sequential order by their reference labels such that all write requests issued prior to the write request identified by the reference label in the commit-synchronization message are processed prior to processing that write request.

51

51. The medium of claim 49 wherein each storage device receives write requests with the same sequence of reference labels.

52

52. The medium of claim 47 further comprising a code segment configured to identify regions of storage affected by write requests that have been processed at the first storage device.

53

53. The medium of claim 52 wherein identifying regions of storage affected by write requests that have been processed at the first storage device further comprises accumulating the identified regions of storage in a first bit map.

54

54. A computer-readable medium or propagated signal having embodied thereon a computer program configured to maintain a mirrored copy of a first storage device at a second storage device in a computer system, the medium comprising code segments configured to: receive write requests at a first storage device, the first storage device including an associated controller; process the write requests received at the first storage device; receive write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; process the write requests received at the second storage device; send a commit-synchronization message to the second storage device along with information designating a write request; and confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message; accumulate newly identified regions of storage in a second bit map after sending the commit-synchronization message; send a status message to the first storage device indicating whether the write data were successfully written to the non-volatile storage after the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device; and delete the first bit map after receiving the status message indicating that the write data were successfully written.

55

55. The medium of claim 54 further comprising a code segment configured to copy the contents of the contents of the second bit map to the first bit map and delete the second bit map after receiving the status message indicating that the write data were not successfully written.

56

56. A computer-readable medium or propagated signal having embodied thereon a computer program configured to maintain a mirrored copy of a first storage device at a second storage device in a computer system, the medium comprising code segments configured to: receive write requests at a first storage device, the first storage device including an associated controller; process the write requests received at the first storage device; receive write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage; process the write requests received at the second storage device; send a commit-synchronization message to the second storage device along with information designating a write request; confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message; and after a period when the second storage device was unable to process write requests: copy the contents of the first bit map to a recovery bit map, use the recovery bit map to identify regions of storage of the first storage device to be copied from the first storage device to the second storage device, copy the identified regions of storage of the first storage device to the second storage device, and accumulate newly received write requests at the first storage device in a third bit map.

Patent Metadata

Filing Date

Unknown

Publication Date

April 27, 2004

Inventors

Glenn A. Tremblay
Paul A. Leveille
Charles H. Kaman
Gairy Grannum

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “PRODUCING A MIRRORED COPY USING INCREMENTAL-DIVERGENCE” (6728898). https://patentable.app/patents/6728898

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.