IP Library Granted Patent US 11,593,271
Granted Patent B2
US 11,593,271 · App. 17/234,031 · Granted Feb 28, 2023

Adapting cache processing using phase libraries and real time simulators

Inventors: Brian McKean (Boulder, CO); Sai Susarla (Bangalore, IN); Ariel Hoffman (Boulder, CO)
Assignee: NETAPP, INC.
G06F12/0893G06F3/0689G06F11/3409G06F11/3447G06F11/3457G06F30/33G06F2201/865G06F2212/1021G06F2212/601
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,593,271
App. No.
17/234,031
Granted
Feb 28, 2023
Kind
B2
Abstract

A method, a computing device, and a non-transitory machine-readable medium for modifying cache settings in the array cache are provided. Cache settings are set in an array cache, such that the array cache caches data in an input/output (I/O) stream based on the cache settings. Multiple cache simulators simulate the caching the data from the I/O stream in the array cache using different cache settings in parallel with the array cache. The cache settings in the array cache are replaced with the cache settings from one of the cache simulators based on the determination that the cache simulators increase effectiveness of caching data in the array cache.

Claims (64)

1. A method comprising:

caching data from an input/output (I/O) stream using first cache settings;

matching the I/O stream with a first I/O pattern in a library of pre-defined caching policies, wherein the first I/O pattern is associated with second cache settings in the library;

applying the second cache settings to the I/O stream;

simulating the caching of the data from the I/O stream using a plurality of other cache settings;

creating an entry in the library as a new cache policy corresponding to third cache settings and a second I/O pattern associated with the I/O stream based on a result of simulating the caching; and

applying the third cache settings to the I/O stream based on the new cache policy.

2. The method of claim 1 , wherein matching the I/O stream with the first I/O pattern comprises matching parameters of the I/O stream to parameters of the first I/O pattern.

3. The method of claim 2 , wherein the parameters of the I/O stream include at least one item selected from a list consisting of:

a number of read operations that occurred when a portion of the I/O stream was processed;

a number of write operations that occurred when the portion of the I/O stream was processed; and

attributes of a machine learning algorithm used to process the I/O portion.

4. The method of claim 1 , wherein the first cache settings comprise default settings.

5. The method of claim 1 , wherein the result of simulating the caching indicates an item selected from a list consisting of:

that the third cache settings increase efficiency of the caching over the second cache settings;

that the third cache settings increase throughput of the caching over the second cache settings; and

that the third cache settings increase effectiveness of the caching of the second cache settings.

6. The method of claim 1 , wherein adding the entry in the library is based at least in part on determining that the second I/O pattern is not represented in the library.

7. The method of claim 1 , wherein the simulating of the caching of the data is performed in parallel with the caching.

8. The method of claim 1 , wherein the third cache settings specify at least one item selected from a list consisting of:

cache block size;

times that different data types are kept in cache before being flushed to storage devices;

the data is written to the storage devices per volume; and

the data is written to the storage devices per workload.

9. A method performed by a storage system, the method comprising:

matching an input/output (I/O) stream with a first I/O pattern in a library of pre-defined caching policies,

wherein the first I/O pattern is associated with first cache settings in the library;

applying the first cache settings to the I/O stream based on the matching;

simulating caching of data within the I/O stream using a plurality of other cache settings;

updating the library to include an entry as a new cache policy corresponding to second cache settings and a second I/O pattern associated with the I/O stream based on a result of simulating the caching; and

applying the second cache settings to the I/O stream based on the new cache policy.

10. The method of claim 9 , wherein matching the I/O stream with the first I/O pattern comprises matching parameters of the I/O stream to parameters of the first I/O pattern.

11. The method of claim 9 , wherein the result of simulating indicates an item selected from a list consisting of:

that the second cache settings increase efficiency of the caching over the first cache settings;

that the second cache settings increase throughput of the caching over the first cache settings; and

that the second cache settings increase effectiveness of the caching of the first cache settings.

12. The method of claim 9 , wherein updating the library is based at least in part on determining that the second I/O pattern is not represented in the library.

13. The method of claim 9 , wherein the simulating is performed in parallel with caching.

14. The method of claim 9 , wherein the second cache settings specify at least one item selected from a list consisting of:

cache block size;

times that different data types are kept in cache before being flushed to storage devices;

the data is written to the storage devices per volume; and

the data is written to the storage devices per workload.

15. A storage controller comprising:

a memory having stored thereon instructions for performing a method of data caching in a storage system; and

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to:

cache data from an input/output (I/O) stream using first cache settings;

simulate the caching of the data from the input/output (I/O) stream according to a plurality of different cache settings;

create an entry in a policy library as a new cache policy corresponding to second cache settings and an I/O pattern associated with the I/O stream based on a result of the simulating the caching; and

apply the second cache settings in the storage system based on the new cache policy.

16. The storage controller of claim 15 , wherein the processor is further configured to execute the instructions to cause the processor to:

identify the first cache settings, including matching parameters of the I/O stream to parameters of a policy in the policy library.

17. The storage controller of claim 15 , wherein the processor is further configured to execute the instructions to cause the processor to:

generate the new cache policy based at least in part on determining that the I/O pattern of the I/O stream is not represented in the policy library.

18. The storage controller of claim 15 , wherein the processor is configured to simulate the caching in parallel with the caching the data.

19. The storage controller of claim 15 , wherein the second cache settings specify at least one item selected from a list consisting of:

cache block size;

times that different data types are kept in cache before being flushed to storage devices;

the data is written to the storage devices per volume; and

the data is written to the storage devices per workload.

20. The storage controller of claim 15 , wherein the result of simulating indicates an item selected from a list consisting of:

that the second cache settings increase efficiency of the caching over the first cache settings;

that the second cache settings increase throughput of the caching over the first cache settings; and

that the second cache settings increase effectiveness of the caching of the first cache settings.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2021
From: MCKEAN, BRIAN; SUSARLA, SAI; HOFFMAN, ARIEL
To: NETAPP, INC.
Reel/Frame 055959/0529 →
Continuity (3)
Continuation 15496857 · Apr 25, 2017
Provisional Application 62366476 · Jul 25, 2016
Related Publication 20210240630A1 · Aug 5, 2021