FAILURE-DECOUPLED VOLUME-LEVEL REDUNDANCY CODING TECHNIQUES
First Claim
1. A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,selecting a first predetermined pattern and a second predetermined pattern for a set of volumes such that, when respectively applied to a first subset of a plurality of volumes and a second subset of the plurality of volumes, decorrelates a failure of the first subset of the plurality of volumes from the failure of the second subset of the plurality of volumes;
processing incoming archives so as to make a determination of which of the first predetermined pattern and the second predetermined pattern to apply, based at least in part on an attribute of the incoming archives;
applying a redundancy code to the archives to generate redundancy coded archives; and
storing the redundancy coded archives on one of the first subset of the plurality of volumes or the second subset of the plurality of volumes according to the determination.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques described and suggested herein include systems and methods for storing, indexing, and retrieving original data of data archives on data storage systems using redundancy coding techniques. For example, redundancy codes, such as erasure codes, may be applied to archives (such as those received from a customer of a computing resource service provider) so as allow the storage of original data of the individual archives available on a minimum of volumes, such as those of a data storage system, while retaining availability, durability, and other guarantees imparted by the application of the redundancy code. Sparse indexing techniques may be implemented so as to reduce the footprint of indexes used to locate the original data, once stored. The volumes may be apportioned into failure-decorrelated subsets, and archives stored thereto may be apportioned to such subsets.
51 Citations
20 Claims
-
1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions, selecting a first predetermined pattern and a second predetermined pattern for a set of volumes such that, when respectively applied to a first subset of a plurality of volumes and a second subset of the plurality of volumes, decorrelates a failure of the first subset of the plurality of volumes from the failure of the second subset of the plurality of volumes; processing incoming archives so as to make a determination of which of the first predetermined pattern and the second predetermined pattern to apply, based at least in part on an attribute of the incoming archives; applying a redundancy code to the archives to generate redundancy coded archives; and storing the redundancy coded archives on one of the first subset of the plurality of volumes or the second subset of the plurality of volumes according to the determination. - View Dependent Claims (2, 3, 4)
-
5. A system, comprising:
at least one computing device that implements one or more services, wherein the one or more services; receive a request to store an archive; determine, based at least in part on an attribute associated with the request, a storage pattern for a set of volumes that, when applied to the set of volumes, decorrelates a failure of the set of volumes from a different failure; apply a redundancy code to the archive to generate a redundancy coded archive; and store the redundancy coded archive on the set of volumes according to the storage pattern. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
-
determine, from a request to store an archive, an attribute associated with the request; generate, based at least in part on the attribute, a storage pattern for a set of volumes of the computer system that, when applied to the set of volumes, decorrelates a failure of the set of volumes from a different failure; generate a redundancy coded form of the archive to generate one or more shards; and write the one or more shards to the set of volumes according to the storage pattern. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification