IP Library Granted Patent US 11,347,653
Granted Patent B2
US 11,347,653 · App. 16/544,605 · Granted May 31, 2022

Persistent storage device management

Inventors: Stuart John Inglis (Cambridge, NZ); Sheridan John Lambert (Cambridge, NZ); Timothy Kelly Dawson (Cambridge, NZ); Xavier Aldren Simmons (Cambridge, NZ); Alexander Kingsley St. John (Cambridge, NZ)
Assignee: Nyriad, Inc.
G06F12/10G06F3/065G06F3/0607G06F9/30036G06F9/30123G06F9/3877G06F11/1004G06F11/1088G06F12/0246G06F12/0815G06F12/12G06F12/1408G06F3/0679G06F2212/1052G06F2212/657
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 11,347,653
App. No.
16/544,605
Granted
May 31, 2022
Kind
B2
Abstract

A method comprising: receiving a request to write data at a virtual location; writing the data to a physical location on a persistent storage device; and recording a mapping from the virtual location to the physical location; wherein the physical location corresponds to a next free block in a sequence of blocks on the persistent storage device.

Claims (55)

1. A method comprising:

receiving a request to write data at a virtual location;

writing the data to a physical location on a persistent storage device of a plurality of persistent storage devices, wherein the physical location corresponds to a block within a stripe, the stripe comprising a plurality of blocks, each block being a physical location on each of the plurality of persistent storage devices;

after completing the stripe by writing received data to the physical location of each of the plurality of persistent storage devices, updating a head counter; and

recording a mapping from the virtual location to the physical location on the persistent storage;

wherein the physical location on the persistent storage device corresponds to a next free block in a sequence of blocks on the persistent storage device.

2. The method of claim 1 , wherein the virtual location and the physical location are not correlated.

3. The method of claim 1 , wherein the physical location is determined by the head counter.

4. The method of claim 1 , further comprising:

receiving one or more requests to write further data to corresponding virtual locations;

wherein the data and the further data form a data stream.

5. The method of claim 1 , wherein writing the data to a second location occurs without performing a read from the persistent storage device.

6. The method of claim 1 , further comprising:

calculating a checksum for the data; and

recording the checksum in metadata associated with the persistent storage device.

7. The method of claim 1 , further comprising:

determining that a garbage collection condition is met.

8. The method of claim 7 , wherein the garbage collection condition comprises one or more of:

a number of gaps on the persistent storage device exceeds a predetermined threshold;

an activity level of the persistent storage device falls below a threshold;

a free capacity of the persistent storage device falls below a threshold; or

a time period has passed.

9. The method of claim 7 , further comprising, in response to determining that a garbage collection condition is met:

determining a block at the tail of the sequence of blocks;

writing the data at the block to the head of the sequence of blocks; and

updating the mapping based on the writing.

10. The method of claim 1 , further comprising:

determining that a predetermined number of blocks within the stripe have been written;

calculating parity corresponding to the data written to the predetermined number of blocks within the stripe; and

writing the parity data in one or more blocks within the stripe.

11. The method of claim 10 , further comprising:

retrieving a checksum for the retrieved data;

calculating a checksum for the retrieved data; and

comparing the calculated checksum with the retrieved checksum.

12. The method of claim 1 , further comprising:

determining that a block of a stripe is missing;

reconstructing the data at the missing block from one or more other blocks in the stripe;

writing the data to the head of the sequence of blocks; and

updating the mapping based on the writing.

13. The method of claim 1 , further comprising:

determining that a persistent storage device among the plurality of persistent storage devices is unavailable; and

wherein writing the data to a physical location on a persistent storage device comprises:

writing the data to a physical location on a different one of the persistent storage devices.

14. The method of claim 1 , wherein recording a mapping from the virtual location to the physical location on the persistent storage device comprises:

identifying a mapping from the virtual location to a previous physical location; and

updating the mapping to record a mapping from the virtual location to the physical location on the persistent storage device.

15. The method of claim 14 , further comprising:

recording a block corresponding to the previous physical location as dirty.

16. The method of claim 1 , further comprising:

writing a duplicate of the data to a subsequent physical location.

17. A system comprising:

one or more processors; and

a memory;

wherein the memory comprises instructions which, when executed by the one or more processors, configure the one or more processors to perform the method of claim 1 .

18. One or more non-transitory computer readable media comprising instructions which, when executed by one or more processors, cause the one or more processors to perform the method of claim 1 .

Assignments (8)
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 Apr 18, 2022
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 059627/0572 →
CHANGE OF NAME Recorded Apr 14, 2022
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 059862/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2022
From: INGLIS, STUART JOHN; DAWSON, TIMOTHY KELLY; LAMBERT, SHERIDAN JOHN
To: NYRIAD LIMITED
Reel/Frame 059335/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: SIMMONS, XAVIER ALDREN; ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058380/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058381/0016 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058380/0941 →
Continuity (4)
Provisional Application 62746981 · Oct 17, 2018
Provisional Application 62725691 · Aug 31, 2018
Provisional Application 62725703 · Aug 31, 2018
Related Publication 20200073818A1 · Mar 5, 2020
Cited By (2)
US 12,229,055 US 12,235,772