IP Library Granted Patent US 11,693,570
Granted Patent B2
US 11,693,570 · App. 17/243,973 · Granted Jul 4, 2023

Machine learning to improve caching efficiency in a storage system

Inventors: Vamsi Vankamamidi (Hopkinton, MA); Shaul Dar (Petach Tikva, IL)
Assignee: EMC IP Holding Company LLC
G06F3/064G06F3/0604G06F3/0613G06F3/0644G06F3/0679G06F12/0891
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,693,570
App. No.
17/243,973
Filed
Apr 29, 2021
Granted
Jul 4, 2023
Kind
B2
Art Unit
2132
USPC
711/154
Abstract

A system and method improve caching efficiency in a data storage system by performing machine learning processes on metadata relating to extents of data blocks, rather than individual blocks themselves. Thus, once the storage devices are divided into extents, various metadata regarding access to the blocks within each extent are aggregated, and per-extent features are extracted. These features are used to train a data regression model that is subsequently used to infer a most likely “hotness” value for each extent at a future time. These predicted values, which may be further classified as e.g. “hot”, “warm”, and “cold” using thresholds, are used to implement the cache replacement policy. Embodiments scale to large and multi-layered caches, and may avoid common caching problems like thrashing, by adjusting the extent size. Policy goal functions may be optimized by dynamically adjusting the classification thresholds.

Claims (38)

1. A method of managing blocks of data in a data cache having a first storage device and a second storage device, wherein each block of data has a fixed size that defines the unit of transfer between the first storage device and the second storage device, the method comprising:

organizing the blocks of data in the first storage device into a plurality of extents, each extent comprising a plurality of the blocks of data having contiguous addresses, in the first storage device, wherein at least two extents in the first storage device have different sizes;

for each extent in the first storage device, generating feature data as a function of metadata associated with input/output operations on the blocks of data in the respective extent;

using a data model trained by machine learning to infer a hotness value for each extent in the first storage device as a function of the generated feature data; and

promoting blocks of data from the first storage device into the second storage device, and evicting blocks of data stored in the second storage device, according to the inferred hotness values for each extent in the first storage device.

2. The method of claim 1 , wherein the metadata associated with input/output operations comprise one or more of: a timestamp, and an input/output command, and a block address, and a data access size, and a data access pattern, and a volume identification.

3. The method of claim 1 , wherein the feature data comprise one or more of: a number of blocks within the respective extent that have been accessed more than once during a fixed window of time, and an average number of accesses to such blocks during the fixed window of time, and an average time interval between accesses to such blocks.

4. The method of claim 1 , further comprising classifying each extent as hot, warm, or cold by applying thresholds to the inferred hotness values, wherein the promoting and evicting of blocks of data are performed according to the classifying.

5. The method of claim 4 , further comprising dynamically adjusting the thresholds using a feedback loop to maximize one or more goal functions.

6. The method of claim 4 , further comprising either merging extents having the same classification as hot, warm, or cold according to the thresholds, or dividing an extent into two or more extents, wherein each of the two or more extents has a different classification as hot, warm, or cold according to the thresholds.

7. The method of claim 1 , wherein the data cache has a third storage device, the method further comprising:

organizing the blocks of data in the second storage device into extents, each extent comprising a plurality of the blocks of data having contiguous addresses in the second storage device;

for each extent in the second storage device, generating feature data as a function of metadata associated with input/output operations on the blocks of data in the respective extent;

using a data model trained by machine learning to infer a hotness value for each extent in the second storage device as a function of the generated feature data; and

promoting blocks of data from the second storage device into the third storage device, and evicting blocks of data stored in the third storage device, according to the inferred hotness values for each extent in the second storage device.

8. A non-transitory, computer-readable storage medium, in which is stored computer program code for performing a method of managing blocks of data in a data cache having a first storage device and a second storage device, wherein each block of data has a fixed size that defines the unit of transfer between the first storage device and the second storage device, the method comprising:

organizing the blocks of data in the first storage device into a plurality of extents, each extent comprising a plurality of the blocks of data having contiguous addresses in the first storage device, wherein at least two extents in the first storage device have different sizes;

for each extent in the first storage device, generating feature data as a function of metadata associated with input/output operations on the blocks of data in the respective extent;

using a data model trained by machine learning to infer a hotness value for each extent in the first storage device as a function of the generated feature data; and

promoting blocks of data from the first storage device into the second storage device, and evicting blocks of data stored in the second storage device, according to the inferred hotness values for each extent in the first storage device.

9. The storage medium of claim 8 , wherein the metadata associated with input/output operations comprise one or more of: a timestamp, and an input/output command, and a block address, and a data access size, and a data access pattern, and a volume identification.

10. The storage medium of claim 8 , wherein the feature data comprise one or more of: a number of blocks within the respective extent that have been accessed more than once during a fixed window of time, and an average number of accesses to such blocks during the fixed window of time, and an average time interval between accesses to such blocks.

11. The storage medium of claim 8 , further comprising program code for classifying each extent as hot, warm, or cold by applying thresholds to the inferred hotness values, wherein the promoting and evicting of blocks of data are performed according to the classifying.

12. The storage medium of claim 11 , further comprising program code for dynamically adjusting the thresholds using a feedback loop to maximize one or more goal functions.

13. The storage medium of claim 11 , further comprising program code for either merging extents having the same classification as hot, warm, or cold according to the thresholds, or dividing an extent into two or more extents, wherein each of the two or more extents has a different classification as hot, warm, or cold according to the thresholds.

14. The storage medium of claim 8 , wherein the data cache has a third storage device, the storage medium further comprising program code for:

organizing the blocks of data in the second storage device into extents, each extent comprising a plurality of the blocks of data having contiguous addresses in the second storage device;

for each extent in the second storage device, generating feature data as a function of metadata associated with input/output operations on the blocks of data in the respective extent;

using a data model trained by machine learning to infer a hotness value for each extent in the second storage device as a function of the generated feature data; and

promoting blocks of data from the second storage device into the third storage device, and evicting blocks of data stored in the third storage device, according to the inferred hotness values for each extent in the second storage device.

15. A computerized system for managing blocks of data in a data cache having a first storage device and a second storage device, wherein each block of data has a fixed size that defines the unit of transfer between the first storage device and the second storage device, the computerized system comprising:

a metadata generator, coupled to the first and second storage devices, for generating metadata associated with input/output operations on the blocks of data in the data cache;

a feature generator, coupled to the metadata generator, for generating feature data, as a function of the generated metadata, for each of a plurality of extents in the first storage device, each extent comprising a plurality of the blocks of data in the first storage device having contiguous addresses, wherein at least two extents in the first storage device have different sizes;

an inference engine, coupled to the feature generator and comprising a data model, trained by machine learning, for inferring a hotness value for each extent in the first storage device as a function of feature data generated by the feature generator; and

a cache control interface, coupled to the inference engine and the first and second storage devices, for promoting blocks of data from the first storage device into the second storage device, and evicting blocks of data stored in the second storage device, according to the inferred hotness values for each extent in the first storage device.

16. The computerized system of claim 15 , wherein the metadata generator is configured to generate metadata comprising one or more of: a timestamp, and an input/output command, and a block address, and a data access size, and a data access pattern, and a volume identification.

17. The computerized system of claim 15 , wherein the feature generator is configured to generate feature data comprising one or more of: a number of blocks within the respective extent that have been accessed more than once during a fixed window of time, and an average number of accesses to such blocks during the fixed window of time, and an average time interval between accesses to such blocks.

18. The computerized system of claim 15 , wherein the inference engine is further configured for classifying each extent as hot, warm, or cold by applying thresholds to the inferred hotness values, wherein the promoting and evicting of blocks of data are performed according to the classifying.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 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 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 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 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: VANKAMAMIDI, VAMSI; DAR, SHAUL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056095/0445 →
Continuity (1)
Related Publication 20220350484A1 · Nov 3, 2022