Resilient distributed storage system
First Claim
1. A data storage system;
- comprising;
a plurality of data storage centers, each comprising;
a set of storage units;
an encoder configured to encode local protection information and global protection information;
a parity map data structure configured to dynamically identify which data storage centers in the plurality of data storage centers participate in a given parity group;
a content map data structure configured to identify where among the plurality of data storage centers that data is stored and how to recover the data when a given data storage center is unreachable; and
a buffer configured to temporarily store data prior to loading into the set of storage units,wherein the data is moved asynchronously between the plurality of data storage centers, parity for the plurality of data storage centers is maintained asynchronously by at least one parity data storage center, and each of the plurality of data storage centers is configured to issue a parity read command.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment provides a method for storing data in a data storage system. The method comprises copying a data set into a buffer in a data storage center in response to receiving a write command for the data set; updating a content map; and sending to a second data storage center a parity write command for the data set. The method continues with copying the data set into a buffer in the second data storage center; updating a second content map; and sending to the first data storage center an acknowledgement indicating the parity write command is complete. Then in response to receiving the acknowledgement, updating the first content map; moving the data set to a storage unit in first data storage center; and acknowledging the data set is protected. Finally, releasing the data set from the first buffer; and updating the first map content.
-
Citations
19 Claims
-
1. A data storage system;
- comprising;
a plurality of data storage centers, each comprising; a set of storage units; an encoder configured to encode local protection information and global protection information; a parity map data structure configured to dynamically identify which data storage centers in the plurality of data storage centers participate in a given parity group; a content map data structure configured to identify where among the plurality of data storage centers that data is stored and how to recover the data when a given data storage center is unreachable; and a buffer configured to temporarily store data prior to loading into the set of storage units, wherein the data is moved asynchronously between the plurality of data storage centers, parity for the plurality of data storage centers is maintained asynchronously by at least one parity data storage center, and each of the plurality of data storage centers is configured to issue a parity read command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- comprising;
-
9. A method for storing data in a data storage system;
- comprising;
in response to receiving a write command for a first data set, copying the first data set into a first buffer in a first data storage center; updating a first content map in the first data storage center; sending a first acknowledgement indicating the write command is complete; and sending to a second data storage center a parity write command for the first data set; wherein the data storage system comprises a plurality of data storage centers, data is moved asynchronously between the plurality of data storage centers, parity for the plurality of data storage centers is maintained asynchronously by at least one parity data storage center, and each of the plurality of data storage centers is configured to issue a parity read command. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
- comprising;
-
17. A system comprising a computer processor, a computer-readable hardware storage device, and program code embodied with the computer-readable hardware storage device for execution by the computer processor to implement a method comprising:
-
in response to receiving a write command for a first data set, copying the first data set into a first buffer in a first data storage center; updating a first content map in the first data storage center; sending a first acknowledgement indicating the write command is complete; sending to a second data storage center a parity write command for the first data set; copying the first data set into a second buffer in the second data storage center; updating a second content map in the second data storage center; sending to the first data storage center an acknowledgement indicating the parity write command is complete; in response to receiving the acknowledgement indicating the parity write command is complete, updating the first content map; moving the first data set in the first buffer to a first storage unit in first data storage center; sending a second acknowledgement indicating the first data set is protected against loss; releasing the first data set from the first butler; and updating the first content map, wherein the system comprises a plurality of data storage centers, data is moved asynchronously between the plurality of data storage centers, a portion of available storage in a given data storage center of the plurality of data storage centers is configured as a parity data storage center, parity for the plurality of data storage centers is maintained asynchronously by at least one parity data storage center, and each of the plurality of data storage centers is configured to issue a parity read command. - View Dependent Claims (18, 19)
-
Specification