IP Library Granted Patent US 12,229,055
Granted Patent B2
US 12,229,055 · App. 17/731,038 · Granted Feb 18, 2025

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: Daedalus Cloud LLC
G06F12/10G06F3/0607G06F3/065G06F9/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 12,229,055
App. No.
17/731,038
Granted
Feb 18, 2025
Kind
B2
Abstract

A method includes 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. The physical location corresponds to a next free block in a sequence of blocks on the persistent storage device.

Claims (29)

1. A method comprising:

receiving from a user a first request to write first data at a first virtual location;

writing the first data to a first physical location on a persistent storage system;

recording a first mapping from the first virtual location to the first physical location;

receiving from the user a second request to write second data at the first virtual location;

writing the second data to a second physical location on the persistent storage system, the second physical location corresponding to a next free block in a sequence of blocks on the persistent storage system, and being different from the first physical location, wherein each block on the persistent storage system is written to once, before any block of the persistent storage system is written to a second time;

replacing the first mapping with a second mapping from the first virtual location to the second physical location; and

marking the first physical location as dirty.

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

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

4. The method of claim 3 , further comprising after writing the data to the first physical location, updating the head counter.

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

6. The method of claim 1 , further comprising:

calculating a checksum for the first data; and

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

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 system exceeding a first threshold;

an activity level of the persistent storage system falling below a second threshold;

a free capacity of the persistent storage system falling below a third threshold; or

an expiration of a time period.

9. 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 .

10. 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 .

11. The method of claim 1 , wherein the first mapping is overwritten by the second mapping.

12. The method of claim 1 , wherein the persistent storage system comprises a persistent storage device.

13. The method of claim 1 , wherein the persistent storage system comprises an array of persistent storage devices.

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 Feb 22, 2023
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 062768/0365 →
CHANGE OF NAME Recorded Feb 9, 2023
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 062693/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2023
From: INGLIS, STUART JOHN; LAMBERT, SHERIDAN JOHN; DAWSON, TIMOTHY KELLY
To: NYRIAD LIMITED
Reel/Frame 062513/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062484/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: SIMMONS, XAVIER ALDREN; KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062486/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062485/0453 →
Continuity (5)
Continuation 16544605 · Aug 19, 2019
Provisional Application 62746981 · Oct 17, 2018
Provisional Application 62725691 · Aug 31, 2018
Provisional Application 62725703 · Aug 31, 2018
Related Publication 20220253385A1 · Aug 11, 2022
References Cited (105)
US 5282274A · Liu · 1994 [cited by examiner]
US 5459857A · Ludlam · 1995 [cited by examiner]
US 5502836A · Hale · 1996 [cited by examiner]
US 6467016B1 · Kanai · 2002 [cited by examiner]
US 7822856B2 · Zuckerman et al. · 2010 [cited by applicant]
US 9092152B1 · Piszczek et al. · 2015 [cited by applicant]
US 9116621B1 · Pintiysky · 2015 [cited by examiner]
US 9158927B1 · Franklin et al. · 2015 [cited by applicant]
US 9164702B1 · Nesbit · 2015 [cited by examiner]
US 9268640B1 · Foley et al. · 2016 [cited by applicant]
US 9571125B2 · Lee et al. · 2017 [cited by applicant]
US 9639457B1 · Piszczek et al. · 2017 [cited by applicant]
US 9779035B1 · Patiejunas · 2017 [cited by applicant]
US 9811275B2 · Chen · 2017 [cited by examiner]
US 9823968B1 · Fugini et al. · 2017 [cited by applicant]
US 10152376B2 · Danilov et al. · 2018 [cited by applicant]
US 10739996B1 · Ebsen · 2020 [cited by examiner]
US 10783022B2 · Danilov et al. · 2020 [cited by applicant]
US 11115057B2 · Danilov et al. · 2021 [cited by applicant]
US 11263144B2 · Inglis et al. · 2022 [cited by applicant]
US 11263145B2 · Simmons et al. · 2022 [cited by applicant]
US 11347653B2 · Inglis et al. · 2022 [cited by applicant]
US 20040123032A1 · Talagala et al. · 2004 [cited by applicant]
US 20050080990A1 · Mereddy · 2005 [cited by examiner]
US 20060212782A1 · Li · 2006 [cited by applicant]
US 20070168632A1 · Zeevi · 2007 [cited by examiner]
US 20080086620A1 · Morris · 2008 [cited by examiner]
US 20090203430A1 · Peek · 2009 [cited by examiner]
US 20090235014A1 · Yim · 2009 [cited by examiner]
US 20090268903A1 · Bojinov et al. · 2009 [cited by applicant]
US 20100037056A1 · Follis et al. · 2010 [cited by applicant]
US 20110126045A1 · Bennett · 2011 [cited by applicant]
US 20120268469A1 · Shchepetov et al. · 2012 [cited by applicant]
US 20120311238A1 · Im · 2012 [cited by examiner]
US 20130016109A1 · Garanzha · 2013 [cited by applicant]
US 20130067174A1 · Moss · 2013 [cited by examiner]
US 20140006850A1 · Aliev et al. · 2014 [cited by applicant]
US 20140046908A1 · Patiejunas et al. · 2014 [cited by applicant]
US 20140075104A1 · Buswell · 2014 [cited by examiner]
US 20140281364A1 · Buschardt · 2014 [cited by examiner]
US 20140325117A1 · Canepa · 2014 [cited by examiner]
US 20150205663A1 · Sundaram et al. · 2015 [cited by applicant]
US 20150325315A1 · Rakitzis et al. · 2015 [cited by applicant]
US 20170061566A1 · Min et al. · 2017 [cited by applicant]
US 20170132151A1 · Bakke et al. · 2017 [cited by applicant]
US 20170147516A1 · De · 2017 [cited by applicant]
US 20170206033A1 · Ma · 2017 [cited by examiner]
US 20170228313A1 · Boitei · 2017 [cited by examiner]
US 20170272209A1 · Yanovsky et al. · 2017 [cited by applicant]
US 20180004413A1 · Zhang · 2018 [cited by examiner]
US 20180150347A1 · Vidyapoornachary et al. · 2018 [cited by applicant]
US 20180173420A1 · Li · 2018 [cited by examiner]
US 20180181324A1 · Danilov et al. · 2018 [cited by applicant]
US 20190095123A1 · Lin · 2019 [cited by examiner]
US 20190129834A1 · Purkayastha · 2019 [cited by examiner]
US 20190138445A1 · Lee · 2019 [cited by examiner]
US 20190188079A1 · Kohli · 2019 [cited by applicant]
US 20190266048A1 · Schauer et al. · 2019 [cited by applicant]
US 20190391926A1 · Lin · 2019 [cited by examiner]
US 20200073663A1 · Simmons et al. · 2020 [cited by applicant]
US 20200073818A1 · Inglis et al. · 2020 [cited by applicant]
US 20200073824A1 · Inglis et al. · 2020 [cited by applicant]
US 20220138111A1 · Inglis et al. · 2022 [cited by applicant]
US 20220156200A1 · Simmons et al. · 2022 [cited by applicant]
CN 104410725A · 2015 [cited by applicant]
CN 105141891A · 2015 [cited by examiner]
CN 107102957A · 2017 [cited by applicant]
WO 2012052800A1 · 2012 [cited by applicant]
WO 2019050418A1 · 2019 [cited by applicant]
https://web.archive.org/web/20171223141405/https://en.wikipedia.org/wiki/Virtual_memory (Year: 2017). [cited by examiner]
Simmons, Xavier Aldren, et al., “Vector Processor Storage,” filed Aug. 30, 2019, U.S. Appl. No. 16/556,711. [cited by applicant]
Inglis, et al., “Persistent Storage Device Management,” filed Aug. 19, 2019, U.S. Appl. No. 16/544,605. [cited by applicant]
Inglis, et al., “Block Device Interface Using Non-Volatile Pinned Memory,” filed Aug. 30, 2019, U.S. Appl. No. 16/556,575. [cited by applicant]
M. L. Curry, “A highly reliable GPU-based RAID system”, (Doctoral dissertation), 2010. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Extended European Search Report dated Jan. 16, 2020, European Application No. 19194744.9 filed on Aug. 30, 2019. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Partial European Search Report dated Jan. 30, 2020, European Application No. 19194748.0 filed on Aug. 30, 2019. [cited by applicant]
Anujan Varma et al: “Destage algorithms for disk arrays with non-volatile caches”, ACM SIGARCH Computer Architecture News, ACM Special Interest Group on Computer Architecture, 2 Penn Plaza, Suite 701 New York NY 10121-0… [cited by applicant]
Anonymous: “CUDA 2.2 Pinned Memory APIs”, Mar. 1, 2009 (Mar. 1, 2009), XP055655605, Retrieved from the Internet: URL: https://devtalk.nvidia.com/cmd/default/download-comment-attachment/50683/ [retrieved on Jan. 8, 2020]. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Extended European Search Report dated Jan. 27, 2020, European Application No. 19193027.0 filed on Aug. 22, 2019. [cited by applicant]
Office Action dated Mar. 1, 2021, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019. [cited by applicant]
Final Office Action dated Jul. 8, 2021, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019. [cited by applicant]
Notice of Allowance dated Jan. 18, 2022, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019. [cited by applicant]
Notice of Allowance dated Feb. 18, 2021, U.S. Appl. No. 16/556,711, filed Aug. 30, 2019. [cited by applicant]
Office Action dated Sep. 25, 2020, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019. [cited by applicant]
Final Office Action dated Apr. 12, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019. [cited by applicant]
Office Action dated Apr. 22, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019. [cited by applicant]
Notice of Allowance dated Oct. 15, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019. [cited by applicant]
Inglis, et al., “Block Device Interface Using Non-Volatile Pinned Memory,” filed Jan. 19, 2022, U.S. Appl. No. 17/579,264. [cited by applicant]
Simmons, et al., “Vector Processor Storage,” filed Feb. 1, 2022, U.S. Appl. No. 17/590,721. [cited by applicant]
R.A. Patel, et al., “Parallel lossless data compression on the GPU” 2012 Innovative Parallel Computer (InPar) 2012. [cited by applicant]
M. L. Curry, “A highly reliable GPU-based RAID system”, (Doctoral dissertation), 2010, pp. 1-141. [cited by applicant]
Office Action dated Dec. 20, 2022, U.S. Appl. No. 17/590,721, filed Feb. 1, 2022. [cited by applicant]
Office Action dated Oct. 3, 2022, U.S. Appl. No. 17/579,264, filed Jan. 19, 2022. [cited by applicant]
Final Office Action dated May 1, 2023, U.S. Appl. No. 17/579,264, filed Jan. 19, 2022. [cited by applicant]
M. L. Curry, “A highly reliable GPU-based RAID system”, (Doctoral dissertation), 2010, Chapter 3 (pp. 21-37) and Chapter 5 (pp. 51-75). [cited by applicant]
“Virtual memory”, retrieved from: https://web.archive.org/web/20171223141405/https://en. wikipedia.org/wiki/Virtual_memory (Year: 2017), 9 pgs. [cited by applicant]
Foreign Communication from a Related Counterpart Application, European Examination Report dated Apr. 21, 2023, European Application No. 19194748.0 filed on Aug. 30, 2019, 10 pgs. [cited by applicant]
Notice of Allowance mailed Jun. 2, 2023, for U.S. Appl. No. 17/590,721, filed Feb. 1, 2022, 9 pgs. [cited by applicant]
Notice of Allowance mailed May 26, 2021, for U.S. Appl. No. 16/556,711, filed Aug. 30, 2019, 9 pgs. [cited by applicant]
Notice of Allowance mailed Nov. 1, 2021, for U.S. Appl. No. 16/556,711, filed Aug. 30, 2019, 9 pgs. [cited by applicant]
Office Action dated Nov. 20, 2023, for U.S. Appl. No. 17/579,264, filed Nov. 20, 2023, 11 pgs. [cited by applicant]
Office Action dated Oct. 15, 2020, for U.S. Appl. No. 16/556,711, filed Aug. 30, 2019, 15 pgs. [cited by applicant]
Amendment filed Apr. 11, 2024, for U.S. Appl. No. 17/579,264, filed Jan. 19, 2022, 11 pgs. [cited by applicant]
Notice of Allowance mailed Jul. 10, 2024, for U.S. Appl. No. 17/579,264, filed Jan. 19, 2022, 7 pgs. [cited by applicant]
Non-Final Office Action dated Jun. 20, 2024, for U.S. Appl. No. 18/463,256, filed Sep. 7, 2023, 24 pgs. [cited by applicant]