Storage element polymorphism to reduce performance degradation during error recovery

US9529670B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9529670-B2
Application numberUS-201414280014-A
CountryUS
Kind codeB2
Filing dateMay 16, 2014
Priority dateMay 16, 2014
Publication dateDec 27, 2016
Grant dateDec 27, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A data storage system includes a plurality of storage devices forming a storage array for storing data and associated error correction codes and a controller coupled to the plurality of storage devices. The controller is configured to, responsive to an error in a data element among the data, rebuild the data element from other data elements and an error correction code in the storage array and overwrite the error correction code with the rebuilt data element.

First claim

Opening claim text (preview).

What is claimed is: 1. A data storage system, comprising: a controller configured to control access to a plurality of storage devices forming a storage array for storing data and associated error correction codes, wherein the controller is configured to, responsive to an error in a data element among the data, rebuild the data element from other data elements and an error correction code in the storage array and overwrite the error correction code with the rebuilt data element, wherein the controller, after the data element is rebuilt, retains the rebuilt data element in a storage element that formerly held the error correction code, regenerates the error correction code, and stores the regenerated error correction code in another storage element. 2. The data storage system of claim 1 , wherein: the error correction code is a parity element; and the controller rebuilds the data element by logically combining the other data elements and the parity element utilizing an exclusive-OR operation. 3. The data storage system of claim 2 , wherein: the storage array implements a RAID-3 error recovery scheme; and the storage array includes multiple data channels and a dedicated parity channel that stores the parity element. 4. The data storage system of claim 2 , wherein: the storage array implements a RAID-5 error recovery scheme; and the storage array includes multiple data channels across which the data and the error correction codes are distributed. 5. The data storage system of claim 1 , wherein: the error includes a failure affecting multiple addresses; and the controller is configured to rebuild multiple data elements corresponding to the multiple addresses substantially sequentially, wherein the multiple data elements include the data element. 6. The data storage system of claim 5 , wherein: the controller, while rebuilding the multiple data elements substantially sequentially, rebuilds at least one of the multiple data elements out-of-sequence in response to a storage access request; and the controller tracks data elements rebuilt out-of-sequence utilizing a data structure. 7. The data storage system of claim 1 , and further comprising the plurality of storage devices coupled to the controller. 8. The data storage system of claim 1 , wherein: the plurality of storage devices include a plurality of volatile memory devices; and the controller is a memory controller. 9. A program product, comprising: a storage device; and program code stored in the storage device, wherein the program code, when executed, causes a controller of a data storage system to perform: a controller detecting an error in a data element stored in a storage array including a plurality of storage devices for storing data and associated error correction codes; and in response to detecting the error in the data element: the controller data rebuilding the data element from other data elements and an error correction code in the storage array; and the controller overwriting the error correction code with the rebuilt data element; and after the data element is rebuilt, the controller retaining the rebuilt data element in a storage element that formerly held the error correction code, regenerating the error correction code, and storing the regenerated error correction code in another storage element. 10. The program product of claim 9 , wherein: the error includes a failure affecting multiple addresses; and the rebuilding includes the controller rebuilding multiple data elements corresponding to the multiple addresses substantially sequentially, wherein the multiple data elements include the data element. 11. The program product of claim 10 , wherein the program code, when executed, further causes the controller to perform: the controller, while rebuilding the multiple data elements substantially sequentially, rebuilding at least one of the multiple data elements out-of-sequence in response to a storage access request; and the controller tracking data elements rebuilt out-of-sequence utilizing a data structure. 12. The program product of claim 9 , wherein: the error correction code is a parity element; and the program code, when executed, causes the controller to rebuild the data element by logically combining the other data elements and the parity element utilizing an exclusive-OR operation. 13. The program product of claim 12 , wherein: the storage array includes multiple data channels and a dedicated parity channel that stores the parity element; and the program code, when executed, causes the controller to implement a RAID-3 error recovery scheme for the storage array. 14. The program product of claim 12 , wherein: the storage array includes multiple data channels across which the data and the error correction codes are distributed; and the program code, when executed, causes the controller to implement a RAID-5 error recovery scheme for the storage array.

Assignees

Inventors

Classifications

  • Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title

  • Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title

  • Rebuilding, e.g. when physically replacing a failing disk · CPC title

  • Management of blocks · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9529670B2 cover?
A data storage system includes a plurality of storage devices forming a storage array for storing data and associated error correction codes and a controller coupled to the plurality of storage devices. The controller is configured to, responsive to an error in a data element among the data, rebuild the data element from other data elements and an error correction code in the storage array and …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/1076. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 27 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).