IP Library › Granted Patent US 12,079,125
Granted Patent B2
US 12,079,125 · App. 17/976,512 · Granted Sep 3, 2024

Tiered caching of data in a storage system

Inventors: Riley Thomasson (Redondo Beach, CA); Manpreet Singh (Palo Alto, CA); Mohit Gupta (San Jose, CA); Joshua Freilich (San Francisco, CA)
Assignee: PURE STORAGE, INC.
G06F12/0806G06F3/0604G06F3/0655G06F3/0679G06F2212/6042
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,079,125
App. No.
17/976,512
Granted
Sep 3, 2024
Kind
B2
Abstract

A first read request for data stored at a non-volatile memory is received by a primary storage controller. The data is programmed from the non-volatile memory to a first cache of the primary storage controller, the first cache to store the data over a first time range. A second read request is received for the data. In response to receiving the second read request for the data, the data is programmed to a second cache to store the data over a second time range that is greater than the first time range. A notification is transmitted to a secondary storage controller, the notification including information associated with the programming of the data to the second cache.

Claims (37)

1. A storage system, comprising:

a non-volatile memory; and

a first storage controller operatively coupled to the non-volatile memory, the first storage controller comprising a first memory region and a processing device, the processing device configured to:

in response to receiving a first read request for data stored in the non-volatile memory, store the data from the non-volatile memory in the first memory region over a first time range; and

in response to receiving a second read request for the data and determining that the data was evicted from the first memory region within a threshold time frame, store the data from the non-volatile memory to a second memory region over a second time range that is greater than the first time range.

2. The storage system of claim 1 , wherein the processing device is further to:

transmit a notification to a second storage controller operatively coupled to the non-volatile memory and the second memory region, the notification comprising information associated with the storing of the data in the second memory region.

3. The storage system of claim 2 , wherein the information associated with the storing of the data in the second memory region comprises an identification of the data and address information of the data stored at the second memory region.

4. The storage system of claim 1 , wherein the second memory region is external to the first storage controller and a second storage controller, and is shared with the first storage controller and the second storage controller.

5. The storage system of claim 4 , wherein the processing device is further configured to:

evict the data from the second memory region; and

transmit a second notification to the second storage controller, the second notification comprising information associated with the eviction of the data from the second memory region.

6. The storage system of claim 1 , wherein the first memory region has a first eviction policy and the second memory region has a second eviction policy, wherein the first eviction policy is different than the second eviction policy.

7. The storage system of claim 1 , wherein the data corresponds to deduplicated data stored at the storage system.

8. The storage system of claim 1 , wherein the processing device is further configured to:

receive the first read request; and

in response to receiving the first read request, determine whether the data is stored at the first memory region or the second memory region, wherein the data is stored in the first memory region further in response to determining that the data is not stored at the first memory region or the second memory region.

9. The storage system of claim 1 , wherein the first memory region comprises random access memory, the second memory region comprises 3D cross-point memory, and the non-volatile memory comprises a NAND memory.

10. A method, comprising:

in response to receiving a first read request for data stored in a non-volatile memory of a storage system, storing the data from the non-volatile memory in a first memory region of a first storage controller of the storage system over a first time range; and

in response to receiving a second read request for the data and determining that the data was evicted from the first memory region within a threshold time frame, store the data from the non-volatile memory to a second memory region over a second time range that is greater than the first time range.

11. The method of claim 10 , further comprising:

transmitting a notification to a second storage controller operatively coupled to the non-volatile memory and the second memory region, the notification comprising information associated with the storing of the data to the second memory region.

12. The method of claim 11 , wherein the information associated with the storing of the data to the second memory region comprises an identification of the data and address information of the data stored at the second memory region.

13. The method of claim 10 , wherein the second memory region is external to the first storage controller and a second storage controller, and is shared with the first storage controller and the second storage controller.

14. The method of claim 13 , further comprising:

evicting the data from the second memory region; and

transmitting a second notification to the second storage controller, the second notification comprising information associated with the eviction of the data from the second memory region.

15. The method of claim 10 , wherein the first memory region has a first eviction policy and the second memory region has a second eviction policy, wherein the first eviction policy is different than the second eviction policy.

16. The method of claim 10 , wherein the data corresponds to deduplicated data stored at the storage system.

17. The method of claim 10 , further comprising:

receiving the first read request; and

in response to receiving the first read request, determining whether the data is stored at the first memory region or the second memory region, wherein the data is stored in the first memory region further in response to determining that the data is not stored at the first memory region or the second memory region.

18. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device of a first storage controller to:

in response to receiving a first read request for data stored in a non-volatile memory of a storage system, store data from a non-volatile memory in a first memory region of the first storage controller over a first time range; and

in response to receiving a second read request for the data and determining that the data was evicted from the first memory region within a threshold time frame, store the data from the non-volatile memory to a second memory region over a second time range that is greater than the first time range.

19. The storage system of claim 1 , wherein the non-volatile memory comprises erase blocks that are directly mapped.

Continuity (3)
Continuation 16552896 · Aug 27, 2019
Provisional Application 62857408 · Jun 5, 2019
Related Publication 20230055389A1 · Feb 23, 2023
Cited By (1)
US 12,645,546