# US 2021/0334157 A1 · Resiliency scheme to enhance storage performance

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

- Number: US 2021/0334157 A1
- Document ID: US20210334157A1
- Status: Published application
- Kind: A1
- Application number: 16/857,475
- Filed: 2020-04-24
- Published: 2021-10-28
- Earliest claimed: 2020-04-24
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Hari Kannan; Nenad Miladinovic
- Web page: https://patentgrep.com/patent/US20210334157A1

## CPC

- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/106: {Correcting systematically all correctable errors, i.e. scrubbing}
- G06F 11/1096: {Parity calculation or recalculation after configuration or reconfiguration of the system}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2211/109: Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A storage system has a resiliency scheme to enhance storage system performance. The storage system composes a RAID stripe. The storage system mixes an ordering of portions of the RAID stripe, based on reliability differences across portions of the solid-state memory. The storage system writes the mixed ordering RAID stripe across the solid-state memory.

## Claims

### Claim 1

A method for a resiliency scheme to enhance storage system performance, performed by a storage system, comprising:
composing a RAID stripe of data to be written across solid-state memory of the storage system;
mixing an ordering of portions of the RAID stripe of data, based on reliability differences across portions of the solid-state memory; and
writing the mixed ordering RAID stripe of data across the solid-state memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the reliability differences comprise reliability differences among pages of an atomic write page group of the solid-state memory;
the mixed ordering of portions of the RAID stripe comprises a first RAID stripe with a first mixed ordering into pages of a first atomic write page group in the solid-state memory; and
the storage system is further to write a second, differing mixed ordering of portions of a second RAID stripe into pages of a second atomic write page group in the solid-state memory.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the reliability differences comprise reliability differences among pages in an atomic write page group of the solid-state memory; and
the mixed ordering of portions of the RAID stripe comprises a first mixed ordering of a first portion of the RAID stripe across a first type of solid-state memory and a second, differing mixed ordering of a second portion of the RAID stripe of data across a second type of solid-state memory.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
using an identifier of a storage device of the storage system as a seed for a function that determines the mixed ordering.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
reading the mixed ordering RAID stripe of data from the solid-state memory; and
rearranging the ordering of the portions of the mixed ordering RAID stripe to reconstitute the RAID stripe of data.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
selecting an error correction code (ECC) scheme based on the reliability differences across the portions of the solid-state memory, for the RAID stripe of data.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
scrubbing the solid-state memory, through wear monitoring the solid-state memory at varied address intervals or varied address offsets, and rewriting data from worn regions of solid-state memory to further regions of solid-state memory using mixed ordering of portions of the rewritten data.

### Claim 8

A tangible, non-transient, computer readable media having instructions thereon for one or more processors to perform a method, comprising:
composing a RAID stripe of data to be written across solid-state memory of a storage system;
mixing an ordering of portions of the RAID stripe of data, based on reliability differences across portions of the solid-state memory; and
writing the mixed ordering RAID stripe of data across the solid-state memory.

### Claim 9 (depends on 8)

The computer readable media of claim 8, wherein:
the reliability differences comprise reliability differences among pages of an atomic write page group of the solid-state memory;
the mixed ordering of portions of the RAID stripe comprises a first RAID stripe with a first mixed ordering into pages of a first atomic write page group in the solid-state memory; and
the storage system is further to write a second, differing mixed ordering of portions of a second RAID stripe into pages of a second atomic write page group in the solid-state memory.

### Claim 10 (depends on 8)

The computer readable media of claim 8, wherein:
the reliability differences comprise reliability differences among pages in an atomic write page group of the solid-state memory; and
the mixed ordering of portions of the RAID stripe comprises a first mixed ordering of a first portion of the RAID stripe across a first type of solid-state memory and a second, differing mixed ordering of a second portion of the RAID stripe of data across a second type of solid-state memory.

### Claim 11 (depends on 8)

The computer readable media of claim 8, wherein the method further comprises:
reading the mixed ordering RAID stripe of data from the solid-state memory; and
rearranging the ordering of the portions of the mixed ordering RAID stripe to reconstitute the RAID stripe of data.

### Claim 12 (depends on 8)

The computer readable media of claim 8, wherein the method further comprises:
selecting an error correction code (ECC) scheme based on the reliability differences across the portions of the solid-state memory, for the RAID stripe of data.

### Claim 13 (depends on 8)

The computer readable media of claim 8, wherein the method further comprises:
scrubbing the solid-state memory, through wear monitoring the solid-state memory at varied address intervals or varied address offsets, and rewriting data from worn regions of solid-state memory to further regions of solid-state memory using mixed ordering of portions of the rewritten data.

### Claim 14

A storage system, comprising:
solid-state memory; and
a processing device to:
compose a RAID stripe of data to be written across solid-state memory of the storage system;
mix an ordering of portions of the RAID stripe of data, based on reliability differences across portions of the solid-state memory; and
write the mixed ordering RAID stripe of data across the solid-state memory.

### Claim 15 (depends on 14)

The storage system of claim 14, wherein:
the reliability differences comprise reliability differences among pages of an atomic write page group of the solid-state memory;
the mixed ordering of portions of the RAID stripe comprises a first RAID stripe with a first mixed ordering into pages of a first atomic write page group in the solid-state memory; and
the processing device is further to write a second, differing mixed ordering of portions of a second RAID stripe into pages of a second atomic write page group in the solid-state memory.

### Claim 16 (depends on 14)

The storage system of claim 14, wherein:
the reliability differences comprise reliability differences among pages in an atomic write page group of the solid-state memory; and
the mixed ordering of portions of the RAID stripe comprises a first mixed ordering of a first portion of the RAID stripe across a first type of solid-state memory and a second, differing mixed ordering of a second portion of the RAID stripe of data across a second type of solid-state memory.

### Claim 17 (depends on 14)

The storage system of claim 14, wherein the processing device is further to:
use an identifier of a storage device of the storage system as a seed for a function that determines the mixed ordering.

### Claim 18 (depends on 14)

The storage system of claim 14, wherein the processing device is further to:
read the mixed ordering RAID stripe of data from the solid-state memory; and
rearrange the ordering of the portions of the mixed ordering RAID stripe to reconstitute the RAID stripe of data.

### Claim 19 (depends on 14)

The storage system of claim 14, wherein the processing device is further to:
select an error correction code (ECC) scheme based on the reliability differences across the portions of the solid-state memory, for the RAID stripe of data.

### Claim 20 (depends on 14)

The storage system of claim 14, wherein the processing device is further to:
scrub the solid-state memory, through wear monitoring the solid-state memory at varied address intervals or varied address offsets, and rewriting data from worn regions of solid-state memory to further regions of solid-state memory using mixed ordering of portions of the rewritten data.
