# US 10,769,018 B2 · System and method for handling uncorrectable data errors in high-capacity storage

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

- Number: US 10,769,018 B2
- Document ID: US10769018B2
- Status: Granted
- Kind: B2
- Application number: 16/209,319
- Filed: 2018-12-04
- Published: 2020-06-04
- Granted: 2020-09-08
- Earliest claimed: 2018-12-04
- Assignees: Alibaba Group Holding Limited
- Applicants: Alibaba Group Holding Limited
- Inventors: Shu Li
- Web page: https://patentgrep.com/patent/US10769018B2

## CPC

- G06F 11/141: {for bus or memory accesses}
- G11C 29/4401: {for self repair}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 11/1666: {where the redundant component is memory or memory area}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G11C 29/42: using error correcting codes [ECC] or parity check
- G11C 29/44: Indication or identification of errors, e.g. for repair
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G11C 2029/0409: {Online test}
- G11C 2029/0411: {Online error correction}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

One embodiment described herein provides a method and system for handling errors in a storage system. During operation a data-placement module of the storage system detects an error occurring at a first physical location within the storage system. In response to determining that the error occurs during a write access, the system writes to-be-written data into a second physical location within the storage system, and updates a mapping between a logical address and a physical address associated with the to-be-written data.

## Claims

### Claim 1

A computer-implemented method for handling errors in a storage system, the method comprising:
detecting, by a data-placement module of the storage system, an error occurring at a first physical location within the storage system;
in response to determining that the error occurs during a write access, writing to-be-written data into a second physical location within the storage system;
updating a mapping between a logical address and a physical address associated with the to-be-written data;
in response to determining that the error occurs during a read access that belongs to a background process,
determining a destination physical location associated with to-be-read data based on a current mapping table,
writing dummy data into the destination physical location and
indicating, by setting a data-incorrect flag, in a mapping table entry associated with the to-be-read data that current data stored at the destination physical location is incorrect;
retrieving a copy of the to-be-read data from a second storage system; and
serving the read access using the retrieved copy.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the storage system is based on solid-state drives (SSDs), and wherein the SSD-based storage system comprises a plurality of not-and (NAND) flash drives.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
in response to determining that the error occurs during a read access belongs to a host process, serving the read access by returning the retrieved copy to an application requesting the to-be written data.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the background process comprises a garbage collection process or a read-disturb handling process.

### Claim 5 (depends on 1)

The computer-implemented method of claim claim 1, further comprising:
subsequent to retrieving the copy, writing the copy to a second destination physical location; and
updating the mapping table entry associated with the to-be-read data using a physical address of the second destination physical location.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein updating the mapping table entry further comprises unsetting the data-incorrect flag.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
subsequent to retrieving the copy, repairing a storage drive within the storage system, within which the error occurs, using the retrieved copy without bringing the storage drive offline.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein detecting the error further comprises:
in response to receiving an error correction coding (ECC) error, initiating a data recovery operation; and
detecting the error in response to determining that the data recovery operation fails.

### Claim 9

A storage system, comprising:
a plurality of storage drives; and
a data-placement module coupled to the storage drives, wherein the data-placement module is configured to:
detect an error occurring at a first physical location within the storage drives;
in response to determining that the error occurs during a write access, write to-be-written data into a second physical location within the storage drives;
update a mapping between a logical address and a physical address associated with the to-be-written data;
in response to determining that the error occurs during a read access that belongs to a background process,
determine a destination physical location associated with to-be-read data based on a current mapping table,
write dummy data into the destination physical location, and
indicate, by setting a data-incorrect flag, in a mapping table entry associated with the to-be-read data that current data stored at the destination physical location is incorrect;
retrieve a copy of the to-be-read data from a second storage system; and
serve the read access using the retrieved copy.

### Claim 10 (depends on 9)

The storage system of claim 9, wherein the storage drives comprise a plurality of not-and (NAND) flash drives.

### Claim 11 (depends on 9)

The storage system of claim 9, wherein the data-placement module is further configured to:
in response to determining that the error occurs during a read access belongs to a host process, serve the read access by returning the retrieved copy to an application requesting the to-be written data.

### Claim 12 (depends on 9)

The storage system of claim 9, wherein the background process comprises a garbage collection process or a read-disturb handling process.

### Claim 13 (depends on 9)

The storage system of claim 9, wherein the data-placement module is further configured to:
write the copy into a second destination physical location subsequent to retrieving the copy; and
update the mapping table entry associated with the to-be-read data using a physical address of the second destination physical location.

### Claim 14 (depends on 9)

The storage system of claim 9, wherein while updating the mapping table entry, the data-placement layer is further configured to unset the data-incorrect flag.

### Claim 15 (depends on 9)

The storage system of claim 9, wherein the data-placement layer is further configured to:
subsequent to retrieving the copy, repair a storage drive within the storage system, within which the error occurs, using the retrieved copy without bringing the storage drive offline.

### Claim 16 (depends on 9)

The storage system of claim 9, wherein while detecting the error, the data-placement module is further configured to:
in response to receiving an error correction coding (ECC) error, initiate a data recovery operation; and
detect the error in response to determining that the data recovery operation fails.

### Claim 17 (depends on 9)

The storage system of claim 9, wherein the data-placement module resides in a user space, and wherein the data-placement module is further configured to:
interface with application to receive to-be written data;
allocate logic extents for the to-be-written data; and
map the logic extents to physical locations.
