IP Library Granted Patent US 12,346,203
Granted Patent B2
US 12,346,203 · App. 18/410,150 · Granted Jul 1, 2025

Read request response for reconstructed data in a degraded drive

Inventors: Stuart John Inglis (Cambridge, NZ); Sheridan John Lambert (Cambridge, NZ); Adam Gworn Kit Fleming (Cambridge, NZ); Daniel James Nicholas Stokes (Cambridge, NZ)
Assignee: Daedalus Cloud LLC
G06F11/1084G06F3/0619G06F3/0656G06F3/0689G06F11/0772G06F11/1092
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,346,203
App. No.
18/410,150
Granted
Jul 1, 2025
Kind
B2
Abstract

A method comprising: receiving a request to read data stored in an array of drives; determining that the data is stored on one or more degraded drives in the array; reconstructing the data from one or more drives in the array other than the degraded drives; providing the reconstructed data in response to the request; and after providing the reconstructed data, writing the reconstructed data to one or more drives in the array other than the degraded drives.

Claims (54)

1. A method comprising:

receiving, from a program running on a processor, a request to read data stored in an array of drives;

determining that the data is stored on one or more degraded drives in the array;

reconstructing the data from one or more drives in the array other than the one or more degraded drives;

providing, by a storage controller, the reconstructed data to the program in response to the request by storing the reconstructed data in a memory accessible to the program; and

after providing the reconstructed data from the storage controller to the program, writing the reconstructed data to one or more drives in the array other than the one or more degraded drives.

2. The method of claim 1 , wherein the data stored in the array is erasure encoded.

3. The method of claim 1 , wherein the data belongs to a stripe, and wherein reconstructing the data from one or more drives in the array other than the one or more degraded drives comprises reconstructing the data from other data in the stripe, the other data being stored on the one or more drives in the array other than the one or more degraded drives.

4. The method of claim 1 , wherein the reconstructed data comprises:

the data corresponding to the request to read the data stored in the array; and

one or more additional pieces of data.

5. The method of claim 1 , wherein writing the reconstructed data to one or more drives in the array other than the one or more degraded drives comprises:

identifying a plurality of blocks of reconstructed data; and

writing the plurality of blocks of reconstructed data as a stripe in the array of drives.

6. The method of claim 1 , wherein writing the reconstructed data to one or more drives in the array other than the one or more degraded drives comprises using a garbage collection process to write the reconstructed data to one or more drives in the array other than the one or more degraded drives.

7. The method of claim 1 , wherein determining that the data is stored on one or more degraded drives in the array comprises determining that attempts to obtain the data have failed after a threshold time.

8. The method of claim 1 , wherein determining that the data is stored on one or more degraded drives in the array comprises determining that the one or more degraded drives have failed.

9. A system comprising:

an array of drives;

a storage controller;

a memory;

one or more processors; and

a memory storing instructions which, when executed by the one or more processors, cause the system to:

receive, from a program running on the one or more processors, a request to read data stored in the array of drives;

determine that the data is stored on one or more degraded drives in the array;

reconstruct the data from one or more drives in the array other than the one or more degraded drives;

provide, by the storage controller, the reconstructed data to the program in response to the request by storing the reconstructed data in the memory, wherein the memory is accessible to the program; and

after providing the reconstructed data, write the reconstructed data to one or more drives in the array other than the one or more degraded drives.

10. The system of claim 9 , wherein the data stored in the array is erasure encoded.

11. The system of claim 9 , wherein the data belongs to a stripe, and wherein reconstructing the data from one or more drives in the array other than the one or more degraded drives comprises reconstructing the data from other data in the stripe, the other data being stored on the one or more drives in the array other than the one or more degraded drives.

12. The system of claim 9 , wherein the reconstructed data comprises:

the data corresponding to the request to read the data stored in the array of drives; and

one or more additional pieces of data.

13. The system of claim 9 , wherein writing the reconstructed data to one or more drives in the array other than the one or more degraded drives comprises:

identifying a plurality of blocks of reconstructed data; and

writing the plurality of blocks of reconstructed data as a stripe in the array.

14. The system of claim 9 , wherein writing the reconstructed data to one or more drives in the array other than the one or more degraded drives comprises using a garbage collection process to write the reconstructed data to one or more drives in the array other than the one or more degraded drives.

15. The system of claim 9 , wherein determining that the data is stored on one or more degraded drives in the array comprises:

determining that attempts to obtain the data have failed after a threshold time, or

determining that the one or more degraded drives have failed.

16. A non-transitory computer readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform steps comprising:

receiving, from a program running on the one or more processors, a request to read data stored in an array of drives;

determining that the data is stored on one or more degraded drives in the array;

reconstructing the data from one or more drives in the array other than the one or more degraded drives;

providing, by a storage controller, the reconstructed data to the program in response to the request by storing the reconstructed data in a memory accessible to the program; and

after providing the reconstructed data from the storage controller to the program, writing the reconstructed data to one or more drives in the array other than the one or more degraded drives.

17. The computer readable medium of claim 16 , wherein the data stored in the array is erasure encoded.

18. The computer readable medium of claim 16 , wherein the data belongs to a stripe, and wherein reconstructing the data from one or more drives in the array other than the one or more degraded drives comprises reconstructing the data from other data in the stripe, the other data being stored on the one or more drives in the array other than the one or more degraded drives.

19. The computer readable medium of claim 16 , wherein

the reconstructed data comprises: the data corresponding to the request to read the data stored in the array of drives; and

one or more additional pieces of data.

20. The computer readable medium of claim 16 , wherein writing the reconstructed data to one or more drives in the array other than the one or more degraded drives comprises:

identifying a plurality of blocks of reconstructed data; and

writing the plurality of blocks of reconstructed data as a stripe in the array.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 66856 FRAME 603. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 25, 2024
From: NYRIAD; NYRIAD, INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 067239/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: NYRIAD; NYRIAD INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 066856/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: INGLIS, STUART JOHN; LAMBERT, SHERIDAN JOHN; FLEMING, ADAM GWORN KIT; STOKES, DANIEL JAMES NICHOLAS
To: NYRIAD LIMITED
Reel/Frame 066110/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 066287/0829 →
CHANGE OF NAME Recorded Jan 12, 2024
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 066291/0524 →
Continuity (3)
Continuation 17669056 · Feb 10, 2022
Provisional Application 63149829 · Feb 16, 2021
Related Publication 20240152426A1 · May 9, 2024
References Cited (27)
US 6871263B2 · Dandrea · 2005 [cited by applicant]
US 7308602B2 · Dandrea · 2007 [cited by applicant]
US 8782339B2 · Au et al. · 2014 [cited by applicant]
US 9043639B2 · Barrall et al. · 2015 [cited by applicant]
US 9235472B2 · Sugawara et al. · 2016 [cited by applicant]
US 10585770B2 · Wu et al. · 2020 [cited by applicant]
US 10592336B1 · Donlan et al. · 2020 [cited by applicant]
US 11055188B2 · Alkalay · 2021 [cited by examiner]
US 11561860B2 · Ben Dayan et al. · 2023 [cited by applicant]
US 20160380650A1 · Calder et al. · 2016 [cited by applicant]
US 20190065314A1 · Sherlock · 2019 [cited by examiner]
US 20190278675A1 · Bolkhovitin et al. · 2019 [cited by applicant]
US 20200057566A1 · Ben Dayan et al. · 2020 [cited by applicant]
US 20200073818A1 · Inglis et al. · 2020 [cited by applicant]
US 20200327024A1 · Alkalay · 2020 [cited by examiner]
US 20210208782A1 · Zhu et al. · 2021 [cited by applicant]
US 20220121377A1 · Kamran · 2022 [cited by examiner]
US 20220414062A1 · Kamran et al. · 2022 [cited by applicant]
WO 2019172973A1 · 2019 [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Jan. 25, 2024, from the European Patent Office, for European Patent Application No. 22156701.9, 8 pgs. [cited by applicant]
Hollan, Mark Calvin, “On-Line Data Reconstruction In Redundant Disk Arrays”, Carnegie Mellon University, Thesis, 1994, 254 pgs. [cited by applicant]
Wikipedia, “RAID—Wikipedia,” available at https://en.wikipedia.org/wiki/RAID, 9 pages, accessed Feb. 10, 2022. [cited by applicant]
Wikipedia, “Degraded mode,” available at https://en.wikipedia.org/wiki/Degraded_mode, 1 page, accessed Feb. 10, 2022. [cited by applicant]
Alexander Thomasian et al: “Higher reliability redundant disk arrays”, ACM Transactions on Storage, Association for Computing Machinery, New York, NY, US, vol. 5, No. 3, Nov. 30, 2009 (Nov. 30, 2009), pp. 1-59, XP058144… [cited by applicant]
Nikolaus Jeremic et al: “Improving random write performance in homogeneous and heterogeneous erasure-coded drive arrays”, ACM SIGAPP Applied Computing Review, ACM, 2 Penn Plaza, Suite 701 New York NY 10121-0701 USA, vol… [cited by applicant]
Jul. 7, 2022—Extended European Search Report—EP 22156701.9. [cited by applicant]
Communication pursuant to Article 94 (3) EPC dated Jan. 29, 2025, for the European Patent Office, for EP Patent Application No. 22156701.9, 5 pgs. [cited by applicant]