# US 11,121,727 B2 · Adaptive data storing for data storage systems employing erasure coding

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

- Number: US 11,121,727 B2
- Document ID: US11121727B2
- Status: Granted
- Kind: B2
- Application number: 16/399,897
- Filed: 2019-04-30
- Published: 2020-11-05
- Granted: 2021-09-14
- Earliest claimed: 2019-04-30
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Mikhail Danilov; Yohannes Altaye
- Web page: https://patentgrep.com/patent/US11121727B2

## CPC

- H03M 13/353: {Adaptation to the channel}
- H03M 13/373: {with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon 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: 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Adaptive data storing for a data storage system employing erasure coding is disclosed. Incoming data for storage can be encoded according to an erasure code scheme that can generate k coding fragments and in data fragments for each unit of incoming data. The portions of the encoded fragments resulting from the incoming data can be stored among different storage devices of data storage system. A first portion of the encoded fragments can be stored according to a first ratio. A storage system performance indicator based on the storing of the first portion can trigger an update of the first ratio, resulting in a second ratio that can be applied to storage of a second portion of the encoded fragments. The use of the disclosed variable k-to-m ratio can reduce instances of heavily burdened storage devices that can negatively impact performance of the data storage system.

## Claims

### Claim 1

A system, comprising:
a processor; and
a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:
in response to receiving incoming data, generating encoded data based on the incoming data according to an erasure code scheme, wherein the encoded data comprises k coding fragments of the encoded data for every m data fragments of the encoded data, wherein k is a positive integer, and wherein m is a positive integer;
causing storage of a first portion of the encoded data according to a first ratio of coding fragments to data fragments;
determining a first performance indicator value corresponding to the storage of the first portion of encoded data according to the first ratio;
in response to determining that a rule relating to the first performance indicator is satisfied, updating the first ratio, resulting in a second ratio; and
causing storage of a second portion of the encoded data according to the second ratio.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first ratio of coding fragments to data fragments is different than k coding fragments to m data fragments.

### Claim 3 (depends on 2)

The system of claim 2, wherein the first ratio of coding fragments to data fragments is greater than k coding fragments to m data fragments.

### Claim 4 (depends on 1)

The system of claim 1, wherein the first performance indicator value indicates a count of input/output events of a storage device storing the first portion of the encoded data.

### Claim 5 (depends on 4)

The system of claim 4, wherein the rule relating to the first performance indicator is satisfied if the count of input/output events is below a selectable threshold value.

### Claim 6 (depends on 5)

The system of claim 5, wherein the selectable threshold value is selected from a group of threshold values comprising an average count of input/output events for other storage devices of the storage system, and a median count of input/output events for other storage devices of the storage system.

### Claim 7 (depends on 1)

The system of claim 1, wherein the second ratio of coding fragments to data fragments is lower than the first ratio of coding fragments to data fragments.

### Claim 8 (depends on 7)

The system of claim 7, wherein the second ratio is k coding fragments to m data fragments.

### Claim 9 (depends on 7)

The system of claim 7, wherein the second ratio is lower than k coding fragments to m data fragments.

### Claim 10

A method, comprising:
selecting, by a system comprising a processor and a memory, a first ratio of coding fragments to data fragments, wherein the coding fragments and the data fragments are comprised in encoded data for storage in a storage system, wherein the encoded data is a representation of incoming data according to an erasure code scheme, wherein the encoded data comprises k coding fragments of the encoded data for every m data fragments of the encoded data, wherein k is a positive integer, and wherein m is a positive integer;
initiating, by the system, storage of a first portion of the encoded data according to the first ratio;
determining, by the system, a first performance indicator value corresponding to the storage of the first portion of encoded data according to the first ratio;
in response to determining that a rule relating to the first performance indicator is satisfied, updating, by the system, the first ratio, resulting in a second ratio that is different than the first ratio; and
initiating, by the system, storage of a second portion of the encoded data according to the second ratio.

### Claim 11 (depends on 10)

The method of claim 10, wherein the initiating the storage of a first portion of the encoded data is according to a ratio of coding fragments to data fragments that is greater than k coding fragments to m data fragments.

### Claim 12 (depends on 10)

The method of claim 10, wherein the determining that the rule relating to the first performance indicator is satisfied is based on a volume of input/output events, per unit time, of a storage device storing the first portion, and a selectable threshold value.

### Claim 13 (depends on 10)

The method of claim 10, wherein the updating the first ratio resulting in the second ratio of coding fragments to data fragments results in the second ratio being lower than the first ratio.

### Claim 14 (depends on 10)

The method of claim 10, wherein the updating the first ratio resulting in the second ratio of coding fragments to data fragments results in the second ratio being k coding fragments to m data fragments.

### Claim 15 (depends on 10)

The method of claim 10, wherein the updating the first ratio resulting in the second ratio of coding fragments to data fragments results in the second ratio being lower than k coding fragments to m data fragments.

### Claim 16

A non-transitory machine-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:
determining a first ratio of coding fragments to data fragments based on a first performance indicator of a storage system, wherein the coding fragments and the data fragments are comprised in encoded data to be stored in the storage system, wherein the encoded data is a representation of incoming data according to an erasure code scheme, and wherein the encoded data comprises k coding fragments of the encoded data for every m data fragments of the encoded data, wherein k is a positive integer, and wherein m is a positive integer;
storing a first portion of a first protection set of the encoded data according to the first ratio at a first storage device of the storage system, and storing a second portion of the first protection set of the encoded data at a second storage device of the storage system;
determining a first performance indicator value corresponding to the storage of the first portion of encoded data according to the first ratio;
in response to determining that a rule relating to the first performance indicator is satisfied, updating the first ratio, resulting in a second ratio that is different than the first ratio; and
storing a third portion of a second protection set of the encoded data according to the second ratio at the first storage device, and storing a fourth portion of the second protection set of the encoded data at a third storage device of the storage system.

### Claim 17 (depends on 16)

The non-transitory machine-readable storage medium of claim 16, wherein the first ratio of coding fragments to data fragments is greater than k coding fragments to m data fragments.

### Claim 18 (depends on 16)

The non-transitory machine-readable storage medium of claim 16, wherein the second ratio of coding fragments to data fragments is lower than the first ratio of coding fragments to data fragments.

### Claim 19 (depends on 18)

The non-transitory machine-readable storage medium of claim 18, wherein the second ratio is k coding fragments to m data fragments.

### Claim 20 (depends on 18)

The non-transitory machine-readable storage medium of claim 18, wherein the second ratio is lower than k coding fragments to m data fragments.
