IP Library Granted Patent US 10,474,588
Granted Patent B1
US 10,474,588 · App. 15/480,161 · Granted Nov 12, 2019

Method and system for memory-based data caching

Inventors: Rahul B. Ugale (Santa Clara, CA); Satish Visvanathan (San Jose, CA)
Assignee: EMC IP Holding Company LLC
G06F12/128G06F3/0608G06F3/0641G06F3/0685G06F12/0864G06F12/122G06F2212/6032G06F2212/621G06F2212/69
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,474,588
App. No.
15/480,161
Granted
Nov 12, 2019
Kind
B1
Abstract

According to some embodiment, a backup storage system receives a request from a client for reading a data segment associated with a file object stored in a storage system. In response to the request, the system determines whether a cache hit counter associated with the data segment exceeds a cache hit threshold. The system further determines whether the data segment is associated with a file region of the file object that is frequently accessed. The system writes the data segment into a memory responsive to determining that the cache hit counter exceeds the cache hit threshold and the data segment is associated with the frequently accessed file region. Otherwise, the system writes the data segment into a solid state device (SSD) operating as a cache device.

Claims (54)

1. A computer-implemented method for memory-based data caching, the method comprising:

receiving a request from a client for reading a data segment associated with a file object stored in a storage system;

in response to the request,

determining whether a cache hit counter associated with the data segment exceeds a cache hit threshold;

determining whether the data segment is associated with a file region of the file object that is frequently accessed;

writing the data segment into a memory responsive to determining that the cache hit counter exceeds the cache hit threshold and the data segment is associated with the frequently accessed file region, wherein the memory has stored therein a hash, table or map including one or more buckets, each of the one or more buckets including a respective bucket chain and a respective head entry, each bucket chain storing one or more data segments, and wherein a bucket hit counter and an access bit indicative if any data segment in the bucket is frequently accessed are encapsulated within the head entry; and

otherwise, writing the data segment into a solid state device (SSD) operating as a cache device.

2. The method of claim 1 , further comprising:

hashing the data segment to obtain one or more buckets;

for each bucket:

determining whether a bucket hit counter associated with a bucket chain of the bucket is low;

determining whether any data segment in the bucket chain is frequently accessed; and

evicting the bucket from the memory responsive to determining that the bucket hit counter is low or that no data segment in the bucket is frequently accessed.

3. The method of claim 2 , wherein a data segment in the bucket chain is frequently accessed if the data segment is accessed within a predetermined time period within the bucket chain.

4. The method of claim 1 , further comprising tracking the cache hit counter associated the data segment, wherein the cache hit counter is indicative of cache hits from the memory, the SSD operating as a cache device, and a disk storage.

5. The method of claim 4 , wherein the cache hit counter is stored in a cache index within the memory.

6. The method of claim 1 , wherein the cache hit threshold is 10 hits.

7. The method of claim 1 , wherein the frequently accessed file region is a region that is accessed within a previous hour.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for memory-based data caching, the operations comprising:

receiving a request from a client for reading a data segment associated with a file object stored in a storage system;

in response to the request,

determining whether a cache hit counter associated with the data segment exceeds a cache hit threshold;

determining whether the data segment is associated with a file region of the file object that is frequently accessed;

writing the data segment into a memory responsive to determining that the cache hit counter exceeds the cache hit threshold and the data segment is associated with the frequently accessed file region, wherein the memory has stored therein a hash table or map including one or more buckets, each of the one or more buckets including a respective bucket chain and a respective head entry, each bucket chain storing one or more data segments, and wherein a bucket hit counter and an access bit indicative if any data segment in the bucket is frequently accessed are encapsulated within the head entry; and

otherwise, writing the data segment into a solid state device (SSD) operating as a cache device.

9. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:

hashing the data segment to obtain one or more buckets;

for each bucket:

determining whether a bucket hit counter associated with a bucket chain of the bucket is low;

determining whether any data segment in the bucket chain is frequently accessed; and

evicting the bucket from the memory responsive to determining that the bucket hit counter is low or that no data segment in the bucket is frequently accessed.

10. The non-transitory machine-readable medium of claim 9 , wherein a data segment in the bucket chain is frequently accessed if the data segment is accessed within a predetermined time period within the bucket chain.

11. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:

tracking the cache hit counter associated the data segment, wherein the cache hit counter is indicative of cache hits from the memory, the SSD operating as a cache device, and a disk storage.

12. The non-transitory machine-readable medium of claim 11 , wherein the cache hit counter is stored in a cache index within the memory.

13. The non-transitory machine-readable medium of claim 8 , wherein the cache hit threshold is 10 hits.

14. The non-transitory machine-readable medium of claim 8 , wherein the frequently accessed file region is a region that is accessed within a previous hour.

15. A data processing system, comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations comprising:

receiving a request from a client for reading a data segment associated with a file object stored in a storage system;

in response to the request,

determining whether a cache hit counter associated with the data segment exceeds a cache hit threshold;

determining whether the data segment is associated with a file region of the file object that is frequently accessed;

writing the data segment into a memory responsive to determining that the cache hit counter exceeds the cache hit threshold and the data segment is associated with the frequently accessed file region, wherein the memory has stored therein a hash table or map including one or more buckets, each of the one or more buckets including a respective bucket chain and a respective head entry, each bucket chain storing one or more data segments, and wherein a bucket hit counter and an access bit indicative if any data segment in the bucket is frequently accessed are encapsulated within the head entry; and

otherwise, writing the data segment into a solid state device (SSD) operating as a cache device.

16. The data processing system of claim 15 , wherein the operations further comprise:

hashing the data segment to obtain one or more buckets;

for each bucket:

determining whether a bucket hit counter associated with a bucket chain of the bucket is low;

determining whether any data segment in the bucket chain is frequently accessed; and

evicting the bucket from the memory responsive to determining that the bucket hit counter is low or that no data segment in the bucket is frequently accessed.

17. The data processing system of claim 15 , wherein the operations further comprise:

tracking the cache hit counter associated the data segment, wherein the cache hit counter is indicative of cache hits from the memory, the SSD operating as a cache device, and a disk storage.

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 Apr 6, 2017
From: UGALE, RAHUL B.; VISVANATHAN, SATISH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041885/0389 →
Cited By (2)
US 12,210,458 US 12,675,443