Patent ID: 9489252
Filing Date: 2016-11-08
CPC Classification: G06F,H03M

Claim Text:
1. A computer-readable storage medium having computer-executable instructions stored thereupon for recovering a data file from a plurality of erasure encoded fragments generated by a plurality of erasure encoding schemes operating on the data file, and the instructions, when executed by a computer, cause the computer to: collect at least some of the erasure encoded fragments for the data file to provide collected erasure encoded fragments; identify the erasure encoding schemes of the plurality of erasure encoding schemes used to produce the collected erasure encoded fragments; identify a fragment position of each erasure encoded fragment of the collected erasure encoded fragments; generate a collected fragment matrix of the collected erasure encoded fragments based upon at least one of the identified erasure encoding scheme of each erasure encoded fragment or the fragment position of each erasure encoded fragment; determine a first order for a first identified erasure encoding scheme of the plurality of erasure encoding schemes; determine a second order for a second identified erasure encoding scheme of the plurality of erasure encoding schemes; if the first order is different than the second order then add one or more padding symbols to at least one of the collected erasure encoded fragments of the first identified erasure encoding scheme or the collected erasure encoded fragments of the second identified erasure encoding scheme so both the collected erasure encoded fragments of the first identified erasure encoding scheme and the collected erasure encoded fragments of the second identified erasure encoding scheme have a same number of symbols, the number of symbols being divisible by both the first order and the second order; generate an expanded encoding matrix based upon the identified erasure encoding schemes; remove one or more rows from the expanded encoding matrix to generate a square matrix; determine whether the square matrix is invertible; if the square matrix is invertible then: if the square matrix is not invertible then remove one or more different rows from the expanded encoding matrix to generate a different square matrix; if the different square matrix is invertible then: