IP Library Granted Patent US 10,095,624
Granted Patent B1
US 10,095,624 · App. 15/581,785 · Granted Oct 9, 2018

Intelligent cache pre-fetch

Inventors: Satish Kumar Kashi Visvanathan (San Jose, CA); Rahul Ugale (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F12/0862G06F2212/1021G06F2212/1024G06F2212/222G06F2212/401G06F2212/6026
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,095,624
App. No.
15/581,785
Granted
Oct 9, 2018
Kind
B1
Abstract

An intelligent cache pre-fetch system includes a pre-fetch throttling scheme to monitor a cache hit rate context. Pre-fetch reads of additional data are only launched when the context is below a given threshold. A pre-fetch read of additional data can be selectively initiated after determining that references to neighboring segments related to a compression region already in memory are not yet present in the cache. Additional throttling of pre-fetch reads can be accomplished by only initiating the selective pre-fetch of additional data after determining whether the compression region to which the neighboring segments are related is a hot region, where a hot region is characterized as a compression region having data that is accessed frequently as compared to data in other compression regions.

Claims (63)

1. A computer-implemented method for managing read operations in a tiered data storage system, the method comprising:

storing compressions regions in a data cache in a cache memory device, the compression regions containing data accessed by applications;

determining that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache;

initiating a pre-fetch read of the additional data from a storage unit;

completing the pre-fetch read for a hot region, the hot region characterized by compression regions containing any one or more of frequently and recently accessed data; and

stopping the pre-fetch read for a cold region to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read, wherein the cold region is characterized by compression regions containing neither frequently nor recently accessed data.

2. The computer-implemented method of claim 1 , wherein determining that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache is based on metadata associated with the compression regions, including:

receiving a reference for a compression region in a callback of a read operation for the compression region, the callback containing the reference as one or more contiguous references associated with data contained in the compression region;

selecting metadata for the reference, the metadata including a fingerprint of the reference; and

performing a cache-only lookup of the reference using the fingerprint to determine whether the additional data is not yet present in the data cache.

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

monitoring a cache hit rate context of the pre-fetch read;

determining that the cache hit rate context has met a threshold after which pre-fetch reads are throttled;

stopping the pre-fetch read to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read.

4. The computer-implemented method of claim 3 , wherein monitoring a cache hit rate context of the pre-fetch read includes:

initializing a cache miss count and a cache hit count over a window of time;

accumulating the cache miss count and the cache hit count over the window of time; and

computing the cache hit rate context for the window of time based on a percentage of cache hit count relative to the cache miss count and the cache hit count combined.

5. The computer-implemented method of claim 3 , wherein the threshold after which pre-fetch reads are throttled varies depending on any one or more of a disk I/O capacity of the tiered data storage system and a current cache hit rate context.

6. The computer-implemented method of claim 3 , wherein the threshold after which pre-fetch reads are throttled varies depending on a temporal locality associated with the compression regions stored in the data cache, wherein a high temporal locality increases the threshold and a low temporal locality lowers the threshold.

7. The computer-implemented method of claim 1 , wherein the cache memory device is any one of a solid-state device and a flash memory device.

8. A storage system for managing read operations in a tiered data storage system, comprising:

a cache memory device having a data cache in which to store one or more compressions regions, the compression regions containing data accessed by applications;

a cache manager executed by a processor to:

determine that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache;

initiate a pre-fetch read of the additional data from a storage unit;

complete the pre-fetch read for a hot region, the hot region characterized by compression regions containing any one or more of frequently and recently accessed data; and

stop the pre-fetch read for a cold region to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read, wherein the cold region is characterized by compression regions containing neither frequently nor recently accessed data.

9. The storage system of claim 8 , wherein to determine that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache is based on metadata associated with the compression regions, the cache manager executed by the processor is further to:

receive a reference for a compression region in a callback of a read operation for the compression region, the callback containing the reference as one or more contiguous references associated with data contained in the compression region;

select metadata for the reference, the metadata including a fingerprint of the reference; and

perform a cache-only lookup of the reference using the fingerprint to determine whether the additional data is not yet present in the data cache.

10. The storage system of claim 8 , the cache manager executed by the processor is further to:

monitor a cache hit rate context of the pre-fetch read;

determine that the cache hit rate context has met a threshold after which pre-fetch reads are throttled; and

stop the pre-fetch read to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read.

11. The storage system of claim 10 , wherein to monitor a cache hit rate context of the pre-fetch read, the cache manager executed by the processor is further to:

initialize a cache miss count and a cache hit count over a window of time;

accumulate the cache miss count and the cache hit count over the window of time; and

compute the cache hit rate context for the window of time based on a percentage of cache hit count relative to the cache miss count and the cache hit count combined.

12. The storage system of claim 10 , wherein the threshold after which pre-fetch reads are throttled varies depending on any one or more of a disk I/O capacity of the tiered data storage system and a current cache hit rate context.

13. The storage system of claim 10 , wherein the threshold after which pre-fetch reads are throttled varies depending on a temporal locality associated with the compression regions stored in the data cache, wherein a high temporal locality increases the threshold and a low temporal locality lowers the threshold.

14. The storage system of claim 10 , wherein the cache memory device is any one of a solid-state device and a flash memory device.

15. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for managing read operations in a tiered data storage system, the operations comprising:

storing compressions regions in a data cache in a cache memory device, the compression regions containing data accessed by applications;

determining that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache;

initiating a pre-fetch read of the additional data from a storage unit;

completing the pre-fetch read for a hot region, the hot region characterized by compression regions containing any one or more of frequently and recently accessed data; and

stopping the pre-fetch read for a cold region to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read, wherein the cold region is characterized by compression regions containing neither frequently nor recently accessed data.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the operation for determining that additional data related to data contained in any one or more of the compression regions is not yet present in the data cache is based on metadata associated with the compression regions, further includes operations for:

receiving a reference for a compression region in a callback of a read operation for the compression region, the callback containing the reference as one or more contiguous references associated with data contained in the compression region;

selecting metadata for the reference, the metadata including a fingerprint of the reference; and

performing a cache-only lookup of the reference using the fingerprint to determine whether the additional data is not yet present in the data cache.

17. The non-transitory computer-readable storage medium of claim 15 , the operations comprising:

monitoring a cache hit rate context of the pre-fetch read;

determining that the cache hit rate context has met a threshold after which pre-fetch reads are throttled;

stopping the pre-fetch read to avoid unnecessary disk Input/Output operations that would be incurred by completing the pre-fetch read.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the operation to monitor a cache hit rate context of the pre-fetch read further includes operations for:

initializing a cache miss count and a cache hit count over a window of time;

accumulating the cache miss count and the cache hit count over the window of time; and

computing the cache hit rate context for the window of time based on a percentage of cache hit count relative to the cache miss count and the cache hit count combined.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the threshold after which pre-fetch reads are throttled varies depending on any one or more of a disk I/O capacity of the tiered data storage system and a current cache hit rate context.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the threshold after which pre-fetch reads are throttled varies depending on a temporal locality associated with the compression regions stored in the data cache, wherein a high temporal locality increases the threshold and a low temporal locality lowers the threshold.

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 (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2017
From: VISVANATHAN, SATISH KUMAR KASHI; UGALE, RAHUL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042196/0512 →
Cited By (2)
US 12,399,824 US 12,681,862