IP Library Granted Patent US 11,768,777
Granted Patent B2
US 11,768,777 · App. 16/749,175 · Granted Sep 26, 2023

Application aware cache management

Inventors: Jai P. Gahlot (Pune, IN); Shiv S. Kumar (Pune, IN)
Assignee: EMC IP Holding Company LLC
G06F12/122G06F12/1416G06F12/1483G06F16/24552G06F2212/604
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,768,777
App. No.
16/749,175
Granted
Sep 26, 2023
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for application aware cache management are provided herein. An example computer-implemented method includes maintaining a data structure comprising at least one entry indicative of an importance of at least one of a plurality of applications associated with a storage system; and controlling whether or not a particular data item requested by one of the plurality of applications is cached in a cache memory of the storage system based at least in part on the at least one entry of the data structure.

Claims (51)

1. A computer-implemented method comprising:

maintaining a data structure for a plurality of data items currently stored in a cache memory of a storage system, wherein, for each respective data item, the data structure comprises: (i) an eviction parameter value corresponding to a cache eviction algorithm, (ii) a priority value indicative of an importance of at least one of a plurality of applications associated with the storage system, and (iii) an adjusted eviction parameter value of the respective data item that is computed based at least in part on the eviction parameter value and the priority value;

retrieving a particular data item requested by one of the plurality of applications from one of the cache memory and a second memory of the storage system;

in response to retrieving the particular data item from the cache memory: (i) updating the eviction parameter value, in the data structure, corresponding to the particular data item; and (ii) when the priority value of the application requesting the particular data item is higher than the priority value currently maintained for the particular data item, changing the priority value in the data structure to the priority value of the application requesting the particular data item and updating the adjusted eviction parameter value, in the data structure, corresponding to the particular data item to a default value incremented by the priority value of the application requesting the particular data item; and

controlling whether or not the particular data item is cached in the cache memory of the storage system based at least in part on the adjusted eviction parameter values of the data structure;

wherein the method is performed by at least one processing device comprising a hardware processor.

2. The computer-implemented method of claim 1 , further comprising:

maintaining a list of one or more application identifiers, and wherein the controlling comprises: in response to retrieving the particular data item from the second memory, preventing the retrieved particular data item from being copied into the cache memory when an application identifier of the application requesting the particular data item is in the list.

3. The computer-implemented method of claim 2 , wherein the application requesting the particular data item one or more of: accesses data in the storage system based on a predetermined schedule and accesses data in the storage system only once during a predetermined period of time.

4. The computer-implemented method of claim 1 , wherein:

the eviction parameter value is associated with at least one of: a number of times that the respective data item has been requested and a time since the respective data item was last requested; and

the priority value is based on a highest priority value assigned to an application that has requested the respective data item.

5. The computer-implemented method of claim 4 , wherein, in response to retrieving the particular data item from the second memory, the adjusted eviction parameter value is computed at least in part by multiplying the eviction parameter value for the respective data item by: one plus the highest priority value assigned to the application that has requested the respective data item.

6. The computer-implemented method of claim 1 , further comprising:

in response to retrieving the particular data item from the second memory of the storage system, replacing the data item having the highest adjusted eviction parameter value with the particular data item in the cache memory.

7. The computer-implemented method of claim 1 , further comprising:

in response to retrieving an additional particular data item from the cache memory, maintaining the priority value of the application in the data structure for the additional particular data item when the priority value of the application requesting the additional particular data item is not higher than the priority value currently maintained for the additional particular data item.

8. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to maintain a data structure for a plurality of data items currently stored in a cache memory of a storage system, wherein, for each respective data item, the data structure comprises: (i) an eviction parameter value corresponding to a cache eviction algorithm, (ii) a priority value indicative of an importance of at least one of a plurality of applications associated with the storage system, and (iii) an adjusted eviction parameter value of the respective data item that is computed based at least in part on the eviction parameter value and the priority value;

to retrieve a particular data item requested by one of the plurality of applications from one of the cache memory and a second memory of the storage system;

in response to retrieving the particular data item from the cache memory: (i) to update the eviction parameter value, in the data structure, corresponding to the particular data item; and (ii) when the priority value of the application requesting the particular data item is higher than the priority value currently maintained for the particular data item, to change the priority value in the data structure to the priority value of the application requesting the particular data item and to update the adjusted eviction parameter value, in the data structure, corresponding to the particular data item to a default value incremented by the priority value of the application requesting the particular data item; and

to control whether or not the particular data item is cached in the cache memory of the storage system based at least in part on the adjusted eviction parameter values of the data structure.

9. The non-transitory processor-readable storage medium of claim 8 , wherein the program code further causes the at least one processing device:

to maintain a list of one or more application identifiers, and wherein the controlling comprises:

in response to retrieving the particular data item from the second memory, preventing the retrieved particular data item from being copied into the cache memory when an application identifier of the application requesting the particular data item is in the list.

10. The non-transitory processor-readable storage medium of claim 9 , wherein the application requesting the particular data item one or more of: accesses data in the storage system based on a predetermined schedule and accesses data in the storage system only once during a predetermined period of time.

11. The non-transitory processor-readable storage medium of claim 8 , wherein:

the eviction parameter value is associated with at least one of: a number of times that the respective data item has been requested and a time since the respective data item was last requested; and

the priority value is based on a highest priority value assigned to an application that has requested the respective data item.

12. The non-transitory processor-readable storage medium of claim 11 , in response to retrieving the particular data item from the second memory, the adjusted eviction parameter value is computed at least in part by multiplying the eviction parameter value for the respective data item by: one plus the highest priority value assigned to the application that has requested the respective data item.

13. The non-transitory processor-readable storage medium of claim 8 , wherein the program code further causes the at least one processing device:

in response to retrieving an additional particular data item from the cache memory, to maintain the priority value of the application in the data structure for the additional particular data item when the priority value of the application requesting the additional particular data item is not higher than the priority value currently maintained for the additional particular data item.

14. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to maintain a data structure for a plurality of data items currently stored in a cache memory of a storage system, wherein, for each respective data item, the data structure comprises: (i) an eviction parameter value corresponding to a cache eviction algorithm, (ii) a priority value indicative of an importance of at least one of a plurality of applications associated with the storage system, and (iii) an adjusted eviction parameter value of the respective data item that is computed based at least in part on the eviction parameter value and the priority value;

to retrieve a particular data item requested by one of the plurality of applications from one of the cache memory and a second memory of the storage system;

in response to retrieving the particular data item from the cache memory: (i) to update the eviction parameter value, in the data structure, corresponding to the particular data item; and (ii) when the priority value of the application requesting the particular data item is higher than the priority value currently maintained for the particular data item, to change the priority value in the data structure to the priority value of the application requesting the particular data item and to update the adjusted eviction parameter value, in the data structure, corresponding to the particular data item to a default value incremented by the priority value of the application requesting the particular data item; and

to control whether or not the particular data item is cached in the cache memory of the storage system based at least in part on the adjusted eviction parameter values of the data structure.

15. The apparatus of claim 14 , wherein the at least one processing device is further configured:

to maintain a list of one or more application identifiers, and wherein the controlling comprises:

in response to retrieving the particular data item from the second memory, preventing the retrieved particular data item from being copied into the cache memory when an application identifier of the application requesting the particular data item is in the list.

16. The apparatus of claim 15 , wherein the application requesting the particular data item one or more of: accesses data in the storage system based on a predetermined schedule and accesses data in the storage system only once during a predetermined period of time.

17. The apparatus of claim 14 , wherein:

the eviction parameter value is associated with at least one of: a number of times that the respective data item has been requested and a time since the respective data item was last requested; and

the priority value is based on a highest priority value assigned to an application that has requested the respective data item.

18. The apparatus of claim 17 , in response to retrieving the particular data item from the second memory, the adjusted eviction parameter value is computed at least in part by multiplying the eviction parameter value for the respective data item by: one plus the highest priority value assigned to the application that has requested the respective data item.

19. The apparatus of claim 14 , wherein the at least one processing device is further configured:

in response to retrieving the particular data item from the second memory of the storage system, to replace the data item having the highest adjusted eviction parameter value with the particular data item in the cache memory.

20. The apparatus of claim 14 , wherein the at least one processing device is further configured:

in response to retrieving an additional particular data item from the cache memory, to maintain the priority value of the application in the data structure for the additional particular data item when the priority value of the application requesting the additional particular data item is not higher than the priority value currently maintained for the additional particular data item.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2020
From: GAHLOT, JAI P.; KUMAR, SHIV S.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051583/0706 →