IP Library Granted Patent US 10,949,359
Granted Patent B2
US 10,949,359 · App. 15/961,402 · Granted Mar 16, 2021

Optimizing cache performance with probabilistic model

Inventors: Owen Martin (Hopedale, MA); Kaustubh S. Sahasrabudhe (Westborough, MA); Mark D. Moreau (Grafton, MA); Malak Alshawabkeh (Franklin, MA); Earl Medeiros (Fall River, MA)
Assignee: EMC IP Holding Company LLC
G06F12/122G06F12/0815G06F2212/1021G06F2212/608
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 10,949,359
App. No.
15/961,402
Granted
Mar 16, 2021
Kind
B2
Abstract

Determining storage of particular data in cache memory of a storage device includes using a first mechanism to determine when to remove the particular data from the cache memory and using a second mechanism, independent from the first mechanism, to inhibit the particular data from being stored in the cache memory independent of whether the first mechanism otherwise causes the particular data to be stored in the cache memory. The first mechanism may remove data from the cache memory that was least recently accessed. The second mechanism may be based, at least in part, on a prediction value of an expected benefit of storing the particular data in the cache memory. The prediction value may be determined based on input data corresponding to measured cache read hits (RH), cache write hits (WH), cache read misses (RM), cache write destage operations (WD), and prefetch reads (PR) for the particular data.

Claims (28)

1. A method of determining storage of particular data in cache memory of a storage device, comprising:

using a first mechanism to determine when to remove the particular data from the cache memory; and

using a second mechanism, independent from the first mechanism, to inhibit the particular data from being stored in the cache memory independent of whether the first mechanism otherwise causes the particular data to be stored in the cache memory, wherein the second mechanism is based, at least in part, on a prediction value of an expected benefit of storing the particular data in the cache memory and wherein the prediction value is determined based on input data corresponding to measured cache read hits (RH), cache write hits (WH), cache read misses (RM), cache write destage operations (WD), and prefetch reads (PR) for the particular data.

2. A method, according to claim 1 , wherein the prediction value is determined based on a formula:

prediction value=( RH+WH )/( RM+WD+PR )+RandomValue

wherein the RandomValue is a value between zero and one.

3. A method, according to claim 2 , wherein the input data for RH, WH, RM, WD, and PR is aged to cause more recent data to have a greater influence on the prediction value than less recent data.

4. A method, according to claim 3 , wherein aging the input data includes using a short term average that halves values of the input data once every twenty-hours and a long term average that halves values of the input data once every five days.

5. A method, according to claim 2 , wherein a prediction value of greater than one causes the second mechanism to always allow the particular data to be stored in the cache memory.

6. A method, according to claim 2 , further comprising:

generating a random number between zero and one; and

allowing the particular data to be stored in the cache memory in response to the random number being less than the prediction value.

7. A method, according to claim 2 , wherein the prediction value is stored in a hash table that is accessed where data is being stored in the cache memory.

8. A method, according to claim 1 , wherein the first mechanism removes data from the cache memory that was least recently accessed.

9. A non-transitory computer-readable medium containing software that determines storage of particular data in cache memory of a storage device, the software comprising:

executable code that uses a first mechanism to determine when to remove the particular data from the cache memory; and

executable code that uses a second mechanism, independent from the first mechanism, to inhibit the particular data from being stored in the cache memory independent of whether the first mechanism otherwise causes the particular data to be stored in the cache memory, wherein the second mechanism is based, at least in part, on a prediction value of an expected benefit of storing the particular data in the cache memory and wherein the prediction value is determined based on input data corresponding to measured cache read hits (RH), cache write hits (WH), cache read misses (RM), cache write destage operations (WD), and prefetch reads (PR) for the particular data.

10. A non-transitory computer-readable medium, according to claim 9 , wherein the prediction value is determined based on a formula:

prediction value=( RH+WH )/( RM+WD+PR )+RandomValue

wherein the RandomValue is a value between zero and one.

11. A non-transitory computer-readable medium, according to claim 10 , wherein the input data for RH, WH, RM, WD, and PR is aged to cause more recent data to have a greater influence on the prediction value than less recent data.

12. A non-transitory computer-readable medium, according to claim 11 , wherein aging the input data includes using a short term average that halves values of the input data once every twenty-hours and a long term average that halves values of the input data once every five days.

13. A non-transitory computer-readable medium, according to claim 10 , wherein a prediction value of greater than one causes the second mechanism to always allow the particular data to be stored in the cache memory.

14. A non-transitory computer-readable medium, according to claim 10 , further comprising:

executable code that generates a random number between zero and one; and

executable code that allows the particular data to be stored in the cache memory in response to the random number being less than the prediction value.

15. A non-transitory computer-readable medium, according to claim 10 , wherein the prediction value is stored in a hash table that is accessed where data is being stored in the cache memory.

16. A non-transitory computer-readable medium, according to claim 9 , wherein the first mechanism removes data from the cache memory that was least recently accessed.

Assignments (8)
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 (046366/0014) Recorded May 20, 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
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 21, 2019
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 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2018
From: MARTIN, OWEN; SAHASRABUDHE, KAUSTUBH S.; MOREAU, MARK D.; ALSHAWABKEH, MALAK; MEDEIROS, EARL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045682/0106 →
Continuity (1)
Related Publication 20190324921A1 · Oct 24, 2019
Cited By (1)
US 12,323,489