# US 2020/0401480 A1 · Erasure Code-Based Data Processing Method and Apparatus

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401480 A1
- Document ID: US20200401480A1
- Status: Published application
- Kind: A1
- Application number: 16/910,924
- Filed: 2020-06-24
- Published: 2020-12-24
- Earliest claimed: 2019-06-24
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Yanxing Zeng; Liang Chen; Ruliang Dong; Jinyi Zhang; Kebo Fu
- Web page: https://patentgrep.com/patent/US20200401480A1

## CPC

- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- H03M 13/3761: {using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- H03M 13/154: {Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial}
- H03M 13/616: {Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

An erasure code (EC)-based data processing method implemented by a storage controller includes obtaining K data chunks, dividing each of the K data chunks into two data slices, encoding the 2*K data slices based on a parity matrix including 2*M rows and 2*(K+M) columns of elements, to obtain 2*M parity slices, and separately storing the K data chunks and the M parity chunks in different storage devices.

## Claims

### Claim 1

An erasure code (EC)-based data processing method implemented by a storage controller, wherein the method comprises:
obtaining K data chunks, wherein K is a positive integer;
dividing each of the K data chunks into two data slices to obtain a total of 2*K data slices;
encoding the 2*K data slices based on a parity matrix to obtain 2*M parity slices, wherein the 2*M parity slices form M parity chunks, wherein is a positive integer, wherein the parity matrix comprises 2*M rows of elements and 2*(K+M) columns of elements, wherein each column of elements corresponds to one data slice or one parity slice, wherein each row of elements corresponds to one exclusive OR (XOR) equation, and wherein the one XOR equation obtains one parity slice based on a subset or the 2*K data slices; and
storing the K data chunks and the M parity chunks in a plurality of storage devices.

### Claim 2 (depends on 1)

The EC-based data processing method of claim 1, wherein the parity matrix is preset in the storage controller, and wherein the parity matrix meets a setting rule.

### Claim 3 (depends on 2)

The EC-based data processing method of claim 2, wherein the setting rule comprises that an element in the parity matrix is zero, one or an element in a finite field.

### Claim 4 (depends on 2)

The EC-based data processing method of claim 2, wherein the setting rule comprises that two columns in the parity matrix that correspond to two data slices comprised in any data chunk or two parity slices comprised in any parity chunk form a first submatrix comprising 2*M rows and two columns of elements, and wherein one of 2*2 matrices formed by any two even-numbered rows or any two odd-numbered rows of the first submatrix is full rank.

### Claim 5 (depends on 2)

The EC-based data processing method of claim 2, wherein the setting rule comprises that 2*r columns in the parity matrix that correspond to 2*r slices comprised in any r chunks form a second submatrix comprising 2*M rows and 2*r columns of elements, wherein a rank of the second submatrix is 2r, and wherein r is an integer less than or equal to M.

### Claim 6 (depends on 2)

The EC-based data processing method of claim 2, further comprising:
determining that r chunks in the K data chunks and the M parity chunks are damaged; and
reconstructing the r chunks based on XOR equations corresponding to a plurality of rows of elements in the parity matrix.

### Claim 7

A storage controller comprising:
a memory configured to store a program, and
a processor coupled to the memory, wherein the program causes the processor to be configured to:
obtain K data chunks, wherein K is a positive integer;
divide each of the K data chunks into two data slices to obtain a total of 2*K data slices;
encode the 2*K data slices based on a parity matrix to obtain 2*M parity slices, wherein the 2*M parity slices form M parity chunks, wherein M is a positive integer, wherein the parity matrix comprises 2*M rows of elements and 2*(K+M) columns of elements, wherein each column of elements corresponds to one data slice or one parity slice, wherein each row of elements corresponds to one exclusive OR (XOR) equation, and wherein the one XOR equation obtains one parity slice based on a subset of the 2*K data slices; and
store the K data chunks and the M parity chunks in a plurality of storage devices.

### Claim 8 (depends on 7)

The storage controller of claim 7, wherein the parity matrix is preset in the storage controller, and wherein the parity matrix meets a setting rule.

### Claim 9 (depends on 8)

The storage controller of claim 8, wherein the setting rule comprises that an element in the parity matrix is zero, one, or an element in a finite field.

### Claim 10 (depends on 8)

The storage controller of claim 8, wherein the setting rule comprises that two columns in the parity matrix that correspond to two data slices comprised in any data chunk or two parity slices comprised in any parity chunk form a first submatrix comprising 2*M rows and two columns of elements, and wherein one of 2*2 matrices formed by any two even-numbered rows or any two odd-numbered rows of the first submatrix is full rank.

### Claim 11 (depends on 8)

The storage controller of claim 8, wherein the setting rule comprises that 2*r columns in the parity matrix that correspond to 2*r slices comprised in any r chunks form a second submatrix comprising 2*M rows and 2*r columns of elements, wherein a rank of the second submatrix is 2r, and wherein r is an integer less than or equal to M.

### Claim 12 (depends on 8)

The storage controller of claim 8, wherein the program further causes the processor to configured to:
determine that r chunks in the K data chunks and the M parity chunks are damaged; and
reconstruct the r chunks based on XOR equations corresponding to a plurality of rows of elements in the parity matrix.

### Claim 13

A computer program product comprising computer-executable instructions for storage on a non-transitory computer readable storage medium that, when executed by a processor, cause a storage controller to:
obtain K data chunks, wherein K is a positive integer;
divide each of the K data chunks into two data slices to obtain a total of 2*K data slices;
encode the 2*K data slices based on a parity matrix to obtain 2*M parity slices, wherein the 2*M parity slices form M parity chunks, wherein M is a positive integer, wherein the parity matrix comprises 2*M rows of elements and 2*(K+M) columns of elements, wherein each column of elements corresponds to one data slice or one parity slices, wherein each row of elements corresponds to one exclusive OR (XOR) equation, and wherein the one XOR equation obtains one parity slice based on a subset of the 2*K data slices; and
store the K data chunks and the M parity chunks in a plurality of storage devices.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the parity matrix is preset in the storage controller, and wherein the parity matrix meets a setting rule.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein the setting rule comprises that an element in the parity matrix is zero.

### Claim 16 (depends on 14)

The computer program product of claim 14, wherein the setting rule comprises that an element in the parity matrix is one.

### Claim 17 (depends on 14)

The computer program product of claim 14, wherein the setting rule comprises that an element in the parity matrix is an element in a finite field.

### Claim 18 (depends on 14)

The computer program product of claim 14, wherein the setting rule comprises that two columns in the parity matrix that correspond to two data slices comprised in any data chunk or two parity slices comprised in any parity chunk form a first submatrix comprising 2*M rows and two columns of elements, and wherein one of 2*2 matrices formed by any two even-numbered rows or any two odd-numbered rows of the first submatrix is full rank.

### Claim 19 (depends on 14)

The computer program product of claim 14, wherein the setting rule comprises that 2*r columns in the parity matrix that correspond to 2*r slices comprised in any r chunks form a second submatrix comprising 2*M rows and 2*r columns of elements, wherein a rank of the second submatrix is 2r, and wherein r is an integer less than or equal to M.

### Claim 20 (depends on 14)

The computer program product of claim 14, wherein the computer-executable instructions further cause the storage controller to:
determine that r chunks in the K data chunks and the M parity chunks are damaged; and
reconstruct the r chunks based on XOR equations corresponding to a plurality of rows of elements in the parity matrix.
