Ordering data writes from a local storage device to a remote storage device
First Claim
1. A method of ordering data writes, comprising:
- a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device;
following the primary storage device transferring all writes associated with the first chunk of data to the secondary storage device, the primary storage device sending a message to the secondary storage device; and
in response to receiving the message from the primary storage device, the secondary storage device storing the data writes associated with the first chunk of data.
9 Assignments
0 Petitions
Accused Products
Abstract
Ordering data writes include a host computer providing a plurality of data writes to a primary storage device, the primary storage device assigning a first sequence number to data writes begun after a first time and before a second time, the primary storage device assigning a second sequence number, different from the first sequence number, to data writes begun after the second time, in response to completion of all writes assigned the first sequence number, the primary storage device transferring writes assigned the first sequence number to a secondary storage device, and, in response to the primary storage device transferring all writes assigned the first sequence number to the secondary storage device, the primary storage device sending a commit message to the secondary storage device. Ordering data writes may also include, in response to receiving a commit message from the primary storage device, the secondary storage device storing the data writes having the first sequence number.
139 Citations
34 Claims
-
1. A method of ordering data writes, comprising:
-
a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device;
following the primary storage device transferring all writes associated with the first chunk of data to the secondary storage device, the primary storage device sending a message to the secondary storage device; and
in response to receiving the message from the primary storage device, the secondary storage device storing the data writes associated with the first chunk of data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of ordering data writes, comprising:
-
a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device;
providing data writes to cache slots of the primary storage device; and
in response to a data write being associated with the second chunk of data corresponding to a cache slot already associated with the first chunk of data, copying data to a new cache slot.
-
-
7. A method of ordering data writes, comprising:
-
a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device;
providing data writes to cache slots of the primary storage device;
the primary storage device using a first list of pointers to the cache slots for data writes associated with the first chunk of data; and
the primary storage device using a second list of pointers to the cache slots for data writes associated with the second chunk of data. - View Dependent Claims (8, 9, 10)
-
-
11. A method of ordering data writes, comprising:
-
a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device;
providing data writes to cache slots of the primary storage device;
providing a first cache only virtual device;
providing a second cache only virtual device;
the primary storage device using the first cache only virtual device for the cache slots corresponding to data writes associated with the first chunk of data; and
the primary storage device using the second cache only virtual device for the cache slots corresponding to data writes associated with the second chunk of data.
-
-
12. A method of storing ordered writes to a remote storage device, comprising:
-
receiving a message for data associated with a first chunk of data;
in response to data associated with a second chunk of data different from said first chunk of data not yet being stored, waiting for the data associated with the second chunk of data to be stored; and
initiating storage of the data associated with the first chunk of data. - View Dependent Claims (13, 14, 15)
-
-
16. Computer executable code, embodied in a computer readable medium, that orders data writes, comprising:
-
executable code that, when executed, associates data writes begun after a first time and before a second time with a first chunk of data;
executable code that, when executed, associates data writes begun after the second time with a second chunk of data different from the first chunk of data; and
executable code that, when executed, initiates transfer of writes associated with the first chunk of data to a storage device after completion of all writes associated with the first chunk of data;
executable code that, when executed, sends a message to the storage device after transferring all writes associated with the first chunk of data; and
executable code that, when executed, suspends transferring data to the storage device after sending the message thereto. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. Computer executable code, in a computer readable medium, that stores ordered writes to a remote storage device, comprising:
-
executable code that, when executed, receives a message for data associated with a first chunk of data;
executable code that, when executed, waits for the data associated with a second chunk of data, different from the first chunk of data, to be stored; and
executable code that, when executed, initiates storage of the data associated with the first chunk of data after the second chunk of data has been stored. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A method of ordering data writes, comprising:
-
a primary storage device receiving a plurality of data writes;
the primary storage device associating data writes begun after a first time and before a second time with a first chunk of data;
the primary storage device associating data writes begun after the second time with a second chunk of data different from the first chunk of data;
after completion of all writes associated with the first chunk of data, the primary storage device initiating transfer of writes associated with the first chunk of data to a secondary storage device; and
following the primary storage device transferring all writes associated with the first chunk of data to the secondary storage device, the primary storage device sending a message to the secondary storage device. - View Dependent Claims (32, 33)
-
-
34. A data storage device, comprising:
-
at least one disk drive that contains data;
at least one host adaptor, coupled to the at least one disk drive, that receives data to be stored on the at least one disk drive; and
at least one remote adaptor, coupled to the at least one disk drive and the at least one host adaptor, that transmits data to a remote storage device, wherein, in response to receipt of data by the at least one host adaptor, data writes begun after a first time and before a second time are associated with a first chunk of data, data writes begun after the second time are associated with a second chunk of data different from the first chunk of data, after completion of all writes associated with the first chunk of data, a transfer of writes associated with the first chunk of data to the remote storage device is initiated and, following completing transfer of writes associated with the first chunk of data to the remote storage device, sending a message to the remote storage device.
-
Specification