Replicating data in a data storage system
First Claim
1. A computer-implemented method for replicating data in a data storage system, wherein the data storage system comprises:
- a first data storage device comprising a set of data regions;
a first host device in communication with the first data storage device;
a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device;
a second host device in communication with the second data storage device; and
a third data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device and the set of data regions of the second data storage device, the third data storage device being arranged to receive write requests from only the first data storage device and the second data storage device;
wherein the method comprises;
selecting one of the first data storage device and the second data storage device using a characteristic of the first data storage device and the second data storage device;
receiving, in the first data storage device, a first write request from the first host device to update a first subset of the data regions, and sending, from the first data storage device, the first write request to the second data storage device;
receiving, in the second data storage device, a second write request from the second host device to update a second subset of the data regions, and sending, from the second data storage device, the second write request to the first data storage device;
either;
in the case that the first data storage device is selected using the characteristic and in response to a notification from the second data storage device that the second data storage device has been updated in accordance with the first write request, sending, from the first data storage device, a write request based on the first write request and the second write request to the third storage device;
orin the case that the second data storage device is selected using the characteristic and in response to a notification from the first data storage device that the first data storage device has been updated in accordance with the second write request, sending, from the second data storage device, a write request based on the first write request and the second write request to the third storage device;
in the case that either the first data storage device or the second data storage device not selected using the characteristic, storing details indicative of received write requests; and
in the case that either the first data storage device or the second data storage device selected using the characteristic fails, sending, from either the first data storage device or the second data storage device not selected using the characteristic, the write requests indicated by the stored details to the third data storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism is provided for replicating data in a data storage system that comprises a first data storage device, a second data storage device, and a third data storage device arranged to receive write requests from the first data storage device and second data storage device. The first data storage device or the second data storage device is selected using a characteristic of the first data storage device and the second data storage device. The first data storage device receives a first write request and sends the first write request to the second data storage device, and the second data storage device receives a second write request and sends the second write request to the first data storage device. The data storage device selected using the characteristic sends a write request to the third storage device in response to a notification the non-selected data storage device has completed the update.
-
Citations
12 Claims
-
1. A computer-implemented method for replicating data in a data storage system, wherein the data storage system comprises:
-
a first data storage device comprising a set of data regions; a first host device in communication with the first data storage device; a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device; a second host device in communication with the second data storage device; and a third data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device and the set of data regions of the second data storage device, the third data storage device being arranged to receive write requests from only the first data storage device and the second data storage device; wherein the method comprises; selecting one of the first data storage device and the second data storage device using a characteristic of the first data storage device and the second data storage device; receiving, in the first data storage device, a first write request from the first host device to update a first subset of the data regions, and sending, from the first data storage device, the first write request to the second data storage device; receiving, in the second data storage device, a second write request from the second host device to update a second subset of the data regions, and sending, from the second data storage device, the second write request to the first data storage device; either; in the case that the first data storage device is selected using the characteristic and in response to a notification from the second data storage device that the second data storage device has been updated in accordance with the first write request, sending, from the first data storage device, a write request based on the first write request and the second write request to the third storage device;
orin the case that the second data storage device is selected using the characteristic and in response to a notification from the first data storage device that the first data storage device has been updated in accordance with the second write request, sending, from the second data storage device, a write request based on the first write request and the second write request to the third storage device; in the case that either the first data storage device or the second data storage device not selected using the characteristic, storing details indicative of received write requests; and in the case that either the first data storage device or the second data storage device selected using the characteristic fails, sending, from either the first data storage device or the second data storage device not selected using the characteristic, the write requests indicated by the stored details to the third data storage device. - View Dependent Claims (2, 3, 4)
-
-
5. A data storage system for replicating data, the data storage system comprising:
-
a first data storage device comprising a set of data regions; a first host device in communication with the first data storage device; a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device; a second host device in communication with the second data storage device; and a third data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device and the set of data regions of the second data storage device, the third data storage device being arranged to receive write requests from only the first data storage device and the second data storage device; wherein the data storage system is arranged to; select one of the first data storage device and the second data storage device using a characteristic of the first data storage device and the second data storage device; receive, in the first data storage device, a first write request from a first host device to update a first subset of the data regions; send, from the first data storage device, the first write request to the second data storage device; receive, in the second data storage device, a second write request to update a second subset of the data regions from the second host device; send, from the second data storage device, the second write request to the first data storage device; either; in the case that the first data storage device is selected using the characteristic and in response to a notification from the second data storage device that the second data storage device has been updated in accordance with the first write request, send, from the first data storage device, a write request based on the first write request and the second write request to the third storage device;
orin the case that the second data storage device is selected using the characteristic and in response to a notification from the first data storage device that the first data storage device has been updated in accordance with the second write request, send, from the second data storage device, a write request based on the first write request and the second write request to the third storage device; in the case that either the first data storage device or the second data storage device is not selected using the characteristic, store details indicative of received write requests; and in the case that either the first data storage device or the second data storage device selected using the characteristic fails, send, from either the first data storage device or the second data storage device not selected using the characteristic, the write requests indicated by the stored details to the third data storage device. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product for replicating data in a computing system comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing system comprising:
-
a first data storage device comprising a set of data regions; a first host device in communication with the first data storage device; a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device; a second host device in communication with the second data storage device; and a third data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device and the set of data regions of the second data storage device, the third data storage device being arranged to receive write requests from only the first data storage device and the second data storage device; causes the computing device to; select one of the first data storage device and the second data storage device using a characteristic of the first data storage device and the second data storage device; receive, in the first data storage device, a first write request from a first host device to update a first subset of the data regions; send, from the first data storage device, the first write request to the second data storage device; receive, in the second data storage device, a second write request to update a second subset of the data regions from the second host device; send, from the second data storage device, the second write request to the first data storage device; either; in the case that the first data storage device is selected using the characteristic and in response to a notification from the second data storage device that the second data storage device has been updated in accordance with the first write request, send, from the first data storage device, a write request based on the first write request and the second write request to the third storage device;
orin the case that the second data storage device is selected using the characteristic and in response to a notification from the first data storage device that the first data storage device has been updated in accordance with the second write request, send, from the second data storage device, a write request based on the first write request and the second write request to the third storage device; in the case that either the first data storage device or the second data storage device is not selected using the characteristic, store details indicative of received write requests; and in the case that either the first data storage device or the second data storage device selected using the characteristic fails, send, from either the first data storage device or the second data storage device not selected using the characteristic, the write requests indicated by the stored details to the third data storage device. - View Dependent Claims (10, 11, 12)
-
Specification