Read, write, and recovery operations for replicated data
First Claim
1. A method of reading replicated data comprising:
- receiving a request to read data from a requester;
issuing a message to each of a plurality of storage devices wherein the message includes a timestamp and wherein each storage device has a version of the data and a timestamp that indicates when the version of data was last updated;
comparing the timestamp from the request to the timestamp at each storage device and, if the comparison indicates the device has the same version of the data block returning an affirmative response; and
when at least a majority of the storage devices has returned an affirmative response, providing the data to the requestor of the data.
6 Assignments
0 Petitions
Accused Products
Abstract
Read, write and recovery operations for replicated data are provided. In one aspect, a system for redundant storage of data included a plurality of storage devices and a communication medium for interconnecting the storage devices. At least two of the storage devices are designated devices for storing a block of data. Each designated device has a version of the data and a first timestamp that is indicative of when the version of data was last updated and a second timestamp that is indicative of any pending update to the block of data. The read, write and recovery operations are performed to the data using the first and second timestamps to coordinate the operations among the designated devices.
-
Citations
46 Claims
-
1. A method of reading replicated data comprising:
-
receiving a request to read data from a requester;
issuing a message to each of a plurality of storage devices wherein the message includes a timestamp and wherein each storage device has a version of the data and a timestamp that indicates when the version of data was last updated;
comparing the timestamp from the request to the timestamp at each storage device and, if the comparison indicates the device has the same version of the data block returning an affirmative response; and
when at least a majority of the storage devices has returned an affirmative response, providing the data to the requestor of the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15)
-
-
14. A method of writing replicated data comprising:
-
receiving a request to write data;
issuing a message to each of a plurality of storage devices wherein the message includes a timestamp and wherein each storage device has a version of the data and a timestamp that indicates when the version of data was last updated;
comparing the timestamp from the request to the timestamp at each storage device and, if the comparison indicates the device has an earlier version of the data block returning an affirmative response; and
when at least a majority of the storage devices has returned an affirmative response, providing the data to at least the majority of the storage devices. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of recovering replicated data comprising:
-
issuing a message to each of a plurality of storage devices indicating that data is to be recovered, wherein each storage device has a version of the data and a timestamp that indicates when the version of data was last updated;
receiving the timestamp from at least a majority of the storage devices and determining which version of the data is most-current based on the received timestamps; and
providing the most-current version of the data to at least a majority of the storage devices. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
- 32. A system for redundant storage of data comprising a plurality of storage devices and a communication medium for interconnecting the storage devices wherein at least two of the storage devices are designated devices for storing a block of data and wherein each designated device has a version of the block of data and a first timestamp that is indicative of when the version of the block of data was last updated and a second timestamp that is indicative of any pending update to the block of data.
Specification