Processing read and write requests during reconstruction in a storage system

US10248516B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10248516-B1
Application numberUS-201715416151-A
CountryUS
Kind codeB1
Filing dateJan 26, 2017
Priority dateDec 11, 2014
Publication dateApr 2, 2019
Grant dateApr 2, 2019

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 system and method for efficiently distributing data among multiple storage devices. A data storage array receives read and write requests from multiple client computers. The data storage array includes multiple storage devices, each with multiple allocation units (AUs). A storage controller within the data storage array determines a RAID layout for use in storing data. In response to determining a failure of a first AU, the storage controller begins reconstructing in a second AU the data stored in the first AU. For read and write requests targeting data in the first AU, the request is serviced by the first AU responsive to determining no error occurs when accessing the first AU.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer system comprising: a data storage subsystem configured to receive read and write requests, wherein the subsystem comprises a plurality of allocation units (AUs), each AU comprising a plurality of data storage locations; and a data storage controller; in response to detecting a failure of a first AU of the plurality of AUs, the storage controller is configured to: select an unallocated second AU as a replacement for the first AU; and initiate reconstruction of data stored in the first AU to the second AU; and in response to receiving a read or write request targeting a given data storage location in the first AU during said reconstruction, the storage controller is configured to: simultaneously access the first AU and the second AU in order to service the read or write request; identify which of the first AU and the second AU responds first with the requested data in response to simultaneously accessing the first AU and the second AU; and service the received read or write requests with the requested data from the identified AU that responds first with the requested data. 2. The computer system as recited in claim 1 , wherein in response to determining data has not yet been reconstructed in the given data storage location in the second AU, the data storage controller is further configured to copy data from the given data storage location in the first AU to the given data storage location in the second AU. 3. The computer system as recited in claim 1 , wherein the data storage controller is further configured to service the received read or write request using the second AU responsive to determining an error occurs when accessing the given data storage location in the first AU. 4. The computer system as recited in claim 3 , wherein the data storage controller is further configured to use reconstructed data to both service the received read or write request and store data in the given data storage location in the second AU responsive to determining an error occurs when accessing the given data storage location in the first AU. 5. The computer system as recited in claim 1 , wherein detecting the failure of the first AU comprises determining a number of errors when accessing data in the first AU exceeds a threshold. 6. The computer system as recited in claim 1 , wherein the data storage subsystem further comprises a plurality of storage devices, wherein the first AU and the second AU are located on different storage devices. 7. A method for use in a computer system, the method comprising: receiving read and write requests at a data storage subsystem, wherein the subsystem comprises a plurality of allocation units (AUs), each AU comprising a plurality of data storage locations; in response to detecting a failure of a first AU of the plurality of AUs: selecting an unallocated second AU as a replacement for the first AU; and initiating reconstruction of data stored in the first AU to the second AU; and in response to receiving a read or write request targeting a given data storage location in the first AU during said reconstruction: simultaneously accessing the first AU and the second AU in order to service the read or write request; identifying which of the first AU and the second AU responds first with the requested data in response to simultaneously accessing the first AU and the second AU; and servicing the received read or write requests with the requested data from the identified AU that responds first with the requested data. 8. The method as recited in claim 7 , wherein in response to determining data has not yet been reconstruction in the given data storage location in the second AU, the method further comprises copying data from the given data storage location in the first AU to the given data storage location in the second AU. 9. The method as recited in claim 7 , further comprising servicing the received read or write request using the second AU responsive to determining an error occurs when accessing the given data storage location in the first AU. 10. The method as recited in claim 9 , further comprising using reconstructed data to both service the received read or write request and store data in the given data storage location in the second AU responsive to determining an error occurs when accessing the given data storage location in the first AU. 11. The method as recited in claim 7 , wherein detecting the failure of the first AU comprises determining a number of errors when accessing data in the first AU exceeds a threshold. 12. The method as recited in claim 7 , wherein detecting the failure of the first AU comprises determining an error rate when accessing data in the first AU exceeds a threshold. 13. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to: receive read and write requests at a data storage subsystem, wherein the subsystem comprises a plurality of allocation units (AUs), each AU comprising a plurality of data storage locations; in response to detecting a failure of a first AU of the plurality of AUs: select an unallocated second AU as a replacement for the first AU; initiate reconstruction of data stored in the first AU to the second AU; in response to receiving a read or write request targeting a given data storage location in the first AU during said reconstruction: simultaneously access the first AU and the second AU in order to service the read or write request; identify which of the first AU and the second AU responds first with the requested data in response to simultaneously accessing the first AU and the second AU; and service the received read or write requests with the requested data from the identified AU that responds first with the requested data. 14. The non-transitory computer readable storage medium as recited in claim 13 , wherein in response to determining data has not yet been reconstructed in the given data storage location in the second AU, the program instructions are further executable by a processor to copy data from the given data storage location in the first AU to the given data storage location in the second AU. 15. The non-transitory computer readable storage medium as recited in claim 13 , wherein the program instructions are further executable by a processor to service the received read or write request using the second AU responsive to determining an error occurs when accessing the given data storage location in the first AU.

Assignees

Inventors

Classifications

  • Reconstruction on already foreseen single or plurality of spare disks · CPC title

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

  • Parity data distribution in semiconductor storages, e.g. in SSD · CPC title

  • Solving problems relating to consistency · CPC title

  • Real-time · 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 US10248516B1 cover?
A system and method for efficiently distributing data among multiple storage devices. A data storage array receives read and write requests from multiple client computers. The data storage array includes multiple storage devices, each with multiple allocation units (AUs). A storage controller within the data storage array determines a RAID layout for use in storing data. In response to determin…
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/1088. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 02 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).