IP Library Granted Patent US 12,197,341
Granted Patent B2
US 12,197,341 · App. 18/413,341 · Granted Jan 14, 2025

Affinity-based cache operation for a persistent storage device

Inventors: Stuart John Inglis (Cambridge, NZ); Cameron Ray Simmonds (Cambridge, NZ); Dmitry Lapik (Cambridge, NZ); Chia-Chi Hsu (Cambridge, NZ); Daniel James Nicholas Stokes (Cambridge, NZ); Adam Gworn Kit Fleming (Cambridge, NZ)
Assignee: Daedalus Cloud LLC
G06F12/0891G06F3/0604G06F3/064G06F3/0659G06F3/0673G06F12/0246G06F2212/2542
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,197,341
App. No.
18/413,341
Granted
Jan 14, 2025
Kind
B2
Abstract

Aspects described herein relate to a method comprising: receiving a request to write data to a persistent storage device, the request comprising data; determining an affinity of the data; writing the request to a cache line of a cache; associating the cache line with the affinity of the data; and reporting the data as having been written to the persistent storage device.

Claims (44)

1. A method comprising:

receiving a request to write first data to a persistent storage device, the request comprising the first data and a process identifier;

determining an affinity of the first data, wherein the affinity of the first data is at least a function of the process identifier;

writing the request to a cache line of a cache;

associating the cache line with the affinity of the first data; and

reporting the first data as having been written to the persistent storage device.

2. The method of claim 1 , further comprising:

determining that second data is to be evicted from the cache;

generating a stream based on one or more buckets; and

writing the stream to the persistent storage device.

3. The method of claim 2 , wherein generating the stream based on the one or more buckets comprises determining the one or more buckets based on a least recently used (LRU) policy.

4. The method of claim 2 , wherein generating the stream based on the one or more buckets comprises selecting the one or more buckets randomly from a predetermined proportion of the one or more buckets.

5. The method of claim 2 , wherein determining that the second data is to be evicted from the cache comprises determining that the cache is below a threshold clean capacity.

6. The method of claim 2 , wherein determining that the second data is to be evicted from the cache comprises determining that a predetermined proportion of the one or more buckets are full above a threshold.

7. The method of claim 1 , further comprising after writing the first data to the cache line of the cache, marking the cache line as dirty.

8. A method comprising:

receiving a request to write first data to a persistent storage device, the request comprising the first data and a central processing unit (CPU) identifier;

determining an affinity of the first data, wherein the affinity of the first data is at least a function of the CPU identifier;

writing the request to a cache line of a cache;

associating the cache line with the affinity of the first data; and

reporting the first data as having been written to the persistent storage device.

9. The method of claim 8 , further comprising:

determining that second data is to be evicted from the cache;

generating a stream based on one or more buckets; and

writing the stream to the persistent storage device.

10. The method of claim 9 , wherein generating the stream based on the one or more buckets comprises determining the one or more buckets based on a least recently used (LRU) policy.

11. The method of claim 9 , wherein generating the stream based on the one or more buckets comprises selecting the one or more buckets randomly from a predetermined proportion of the one or more buckets.

12. The method of claim 9 , wherein determining that the second data is to be evicted from the cache comprises determining that the cache is below a threshold clean capacity.

13. The method of claim 9 , wherein determining that the second data is to be evicted from the cache comprises determining that a predetermined proportion of the one or more buckets are full above a threshold.

14. The method of claim 8 , further comprising after writing the first data to the cache line of the cache, marking the cache line as dirty.

15. A method comprising:

receiving a request to write first data to a persistent storage device, the request comprising the first data and a central processing unit (CPU) core identifier;

determining an affinity of the first data, wherein the affinity of the first data is at least a function of the CPU core identifier;

writing the request to a cache line of a cache;

associating the cache line with the affinity of the first data; and

reporting the first data as having been written to the persistent storage device.

16. The method of claim 15 , further comprising:

determining that second data is to be evicted from the cache;

generating a stream based on one or more buckets; and

writing the stream to the persistent storage device.

17. The method of claim 16 , wherein generating the stream based on the one or more buckets comprises determining the one or more buckets based on a least recently used (LRU) policy.

18. The method of claim 16 , wherein generating the stream based on the one or more buckets comprises selecting the one or more buckets randomly from a predetermined proportion of the one or more buckets.

19. The method of claim 16 , wherein determining that the second data is to be evicted from the cache comprises determining that the cache is below a threshold clean capacity.

20. The method of claim 15 , wherein determining that the second data is to be evicted from the cache comprises determining that a predetermined proportion of the one or more buckets are full above a threshold.

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 17, 2024
From: INGLIS, STUART JOHN; SIMMONDS, CAMERON RAY; LAPIK, DMITRY; HSU, CHIA-CHI; STOKES, DANIEL JAMES NICHOLAS; FLEMING, ADAM GWORN KIT
To: NYRIAD LIMITED
Reel/Frame 066145/0735 →
CHANGE OF NAME Recorded Jan 17, 2024
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 066339/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2024
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 066339/0209 →
Continuity (3)
Continuation 17581521 · Jan 21, 2022
Provisional Application 63140644 · Jan 22, 2021
Related Publication 20240264945A1 · Aug 8, 2024
References Cited (14)
US 8621145B1 · Kimmel et al. · 2013 [cited by applicant]
US 9092337B2 · Nellans et al. · 2015 [cited by applicant]
US 9507705B2 · Pignatelli · 2016 [cited by applicant]
US 10802762B1 · Gray et al. · 2020 [cited by applicant]
US 10831386B2 · Voigt · 2020 [cited by applicant]
US 20040093463A1 · Shang · 2004 [cited by applicant]
US 20110154289A1 · Mannarswamy · 2011 [cited by examiner]
US 20120239857A1 · Jibbe et al. · 2012 [cited by applicant]
US 20130185488A1 · Talagala et al. · 2013 [cited by applicant]
US 20130205097A1 · Flynn et al. · 2013 [cited by applicant]
US 20150261615A1 · Peterson et al. · 2015 [cited by applicant]
US 20150262632A1 · Shelton et al. · 2015 [cited by applicant]
US 20170109096A1 · Jean et al. · 2017 [cited by applicant]
Jun. 13, 2022—Extended European Search Report—EP 22152831.8. [cited by applicant]