Erasure coding across multiple zones
First Claim
1. One or more hardware computer storage media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method for erasure encoding data across multiple storage zones, the method comprising:
- dividing a data chunk into a plurality of sub-fragments, each of the plurality sub-fragments associated with one of a plurality zones;
computing a plurality of reconstruction parities, each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments, wherein the plurality of reconstruction parities is generated based on;
dividing the plurality of sub-fragments into a plurality of groups in a selected zone from the plurality of zones, each of the plurality of groups comprising one or more zone data-fragments in the selected zone; and
wherein for each zone from the plurality of zones;
computing a plurality local parities for each of the plurality of groups in the zone from a subset zone data-fragments in each of the plurality of groups;
computing a plurality of zone parities from the one or more zone data-fragments of the zone; and
computing a plurality of cross-zone parities using a plurality zone fragments comprising the one or more zone data-fragments; and
assigning the at least one cross-zone parity to a parity zone, wherein the cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
3 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments, methods and systems for erasure coding data across multiple storage zones are provided. This may be accomplished by dividing a data chunk into a plurality of sub-fragments. Each of the plurality of sub-fragments is associated with a zone. Zones comprise buildings, data centers, and geographic regions providing a storage service. A plurality of reconstruction parities is computed. Each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments. The plurality of reconstruction parities comprises at least one cross-zone parity. The at least one cross-zone parity is assigned to a parity zone. The cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
-
Citations
20 Claims
-
1. One or more hardware computer storage media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method for erasure encoding data across multiple storage zones, the method comprising:
-
dividing a data chunk into a plurality of sub-fragments, each of the plurality sub-fragments associated with one of a plurality zones; computing a plurality of reconstruction parities, each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments, wherein the plurality of reconstruction parities is generated based on; dividing the plurality of sub-fragments into a plurality of groups in a selected zone from the plurality of zones, each of the plurality of groups comprising one or more zone data-fragments in the selected zone; and wherein for each zone from the plurality of zones; computing a plurality local parities for each of the plurality of groups in the zone from a subset zone data-fragments in each of the plurality of groups; computing a plurality of zone parities from the one or more zone data-fragments of the zone; and computing a plurality of cross-zone parities using a plurality zone fragments comprising the one or more zone data-fragments; and assigning the at least one cross-zone parity to a parity zone, wherein the cross-zone parity provides cross-zone reconstruction of a portion of the data chunk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for erasure encoding data across multiple storage zones, the system comprising:
-
an encoder component configured for; dividing a data chunk into a plurality of sub-fragments, each of the plurality of sub-fragments having one or more zone data-fragments, wherein each of the plurality of sub-fragments is associated with one of a plurality of zones; computing a plurality of reconstruction parities, each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments, wherein the plurality of reconstruction parities comprises at least one cross-zone parity; and assigning the at least one cross-zone parity to a parity zone, wherein the cross-zone parity provides cross-zone reconstruction of a portion of the data chunk; and a reconstruction component configured for; reconstructing data using the plurality of sub-fragments and the plurality of reconstruction parities, associated with the plurality of zones, wherein the data is reconstructed based on an erasure coding scheme of the data, and wherein recovering data for a first erasure coding scheme comprises; providing local reconstruction within a recovery zone and maximum fault-tolerance across zones using local parities and zones parities; for a second erasure coding scheme comprises; providing local reconstruction within the recovery zone and maximum fault-tolerance across zones using local parities and inter-zone parities; and for a third erasure coding scheme comprises; providing maximum fault-tolerance across zones using inter-zone parities. - View Dependent Claims (13, 14, 15)
-
-
16. A computer-implemented method for selecting an erasure coding scheme for encoding data chunks across multiple storage zones, the method comprising:
-
providing a plurality of erasure coding schemes, wherein each of the plurality of erasure coding schemes is associated with a plurality of dimensions that define implementation constraints; selecting an erasure coding scheme for encoding a data chunk based at least in part on the plurality of dimensions; and encoding the data chunk using the erasure coding scheme selected, the erasure coding scheme divides the data chunk into a plurality of sub-fragments in one or more groups in a selected zone from the plurality of zones, each of the one or more groups comprising one or more zone data-fragments in the selected zone, wherein a first selected erasure coding scheme is configured for; for each zone of the plurality of zones; computing in a horizontal direction a plurality local parities for each of the one or more groups in the zone from a subset zone data-fragments in each of the one or more groups in the zone; computing in the horizontal direction a plurality of zone parities from the one or more zone data-fragments of the zone; and computing in the vertical direction a plurality of cross-zone parities using a plurality zone fragments comprising the one or more zone data-fragments, the plurality of local parities, and the plurality of zone parities vertically corresponding in each of the plurality of zones, wherein the plurality of cross-zone parities are assigned to a corresponding position the parity zone; wherein a second erasure coding scheme is configured for; for each zone of the plurality of zones; computing in the horizontal direction local parities for each of the one or more groups in the zone from a subset zone data-fragments in each of the one or more groups; computing in the horizontal direction an inter-zone parity from the one or more zone data-fragments in each of the plurality of zones; and computing in the vertical direction a plurality of cross-zone parities using a plurality of zone fragments comprising the one or more zone data-fragments, the plurality of local parities, and the inter-zone parity vertically corresponding in each of the plurality of zones, wherein the plurality of cross-zone parities are assigned to a corresponding position the parity zone; wherein a third erasure coding scheme is configured for; for each zone from the plurality of zones; computing in a horizontal direction a plurality of inter-zone parities from the one or more zone data-fragments in each of the plurality of zones; and computing in a vertical direction a plurality of cross-zone parities using a plurality of zone fragments comprising the one or more zone data-fragments and the plurality of inter-zone parities vertically corresponding in each of the plurality of zones, wherein the plurality of cross-zone parities are assigned to a corresponding position the parity zone. - View Dependent Claims (17, 18, 19, 20)
-
Specification