IP Library Granted Patent US 10,754,784
Granted Patent B1
US 10,754,784 · App. 16/435,238 · Granted Aug 25, 2020

Mechanism for a cache to self-tune efficiently to allow scaling with the size of working set

Inventors: Vijaya Jakkula (San Jose, CA); Siva Ramineni (Milpitas, CA); Venkata Bhanu P. Gollapudi (Pleasanton, CA)
Assignee: Stellus Technologies, Inc.
G06F12/0891G06F9/5016G06F12/0815G06F16/907
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,754,784
App. No.
16/435,238
Granted
Aug 25, 2020
Kind
B1
Abstract

Provided is a method of cache entry management, the method comprising determining, by a cache manager, a level of importance for each of a plurality of cache entries, assigning, by the cache manager, a metadata type for each of the cache entries based upon the determined level of importance, determining, by the cache manager, a frequency of access of each of the cache entries, generating, by the cache manager, a heat map based upon the determined frequency of access of the cache entries, and determining, by the cache manager, which one of at least two of the cache entries to evict based upon the respective metadata types and the respective frequencies of access.

Claims (35)

1. A method of cache entry management, the method comprising:

determining, by a cache manager, a level of importance for each of a plurality of cache entries;

assigning, by the cache manager, a metadata type for each of the cache entries based upon the determined level of importance;

determining, by the cache manager, a frequency of access of each of the cache entries;

generating, by the cache manager, a heat map based upon the determined frequency of access of the cache entries; and

determining, by the cache manager, which one of at least two of the cache entries to evict based upon the respective metadata types and the respective frequencies of access.

2. The method of claim 1 , further comprising causing, by the cache manager, portions of the heat map corresponding to cache entries having a lower level of importance to decay faster than other portions of the heat map corresponding to cache entries having a higher level of importance.

3. The method of claim 1 , further comprising evicting, by the cache manager, one of the cache entries once a portion of the heat map corresponding to the one of the cache entries reaches zero.

4. The method of claim 1 , further comprising causing, by the cache manager, a portion of a heat map corresponding to a shard of an object to decay faster than a portion of the heat map corresponding to an entirety of the object.

5. The method of claim 1 , further comprising walking, by the cache manager, the cache, and evicting, by the cache manager, all of the cache entries corresponding to a level of importance that is less than a reference level of importance.

6. The method of claim 5 , further comprising triggering, by the cache manager, the walking of the cache once an amount of cache resources that are used reaches a reference level.

7. The method of claim 1 , further comprising assigning, by the cache manager, a highest level of importance to root metadata representing an entirety of an object, and assigning, by the cache manager, a lower level of importance to other metadata related to the object for shard metadata representing a shard of the object.

8. An object store configured to allow cache management while scaling with the size of a working set, the object store comprising a data cache that is configured to be managed by a cache manager, wherein the cache manager is configured to:

determine a level of importance for each of a plurality of cache entries;

assign a metadata type for each of the cache entries based upon the determined level of importance;

determine a frequency of access of each of the cache entries;

generate a heat map based upon the determined frequency of access of the cache entries; and

determine which one of at least two of the cache entries to evict based upon the respective metadata types and the respective frequencies of access.

9. The object store of claim 8 , wherein the cache manager is further configured to cause portions of the heat map corresponding to cache entries having a lower level of importance to decay faster than other portions of the heat map corresponding to cache entries having a higher level of importance.

10. The object store of claim 8 , wherein the cache manager is further configured to evict one of the cache entries once a portion of the heat map corresponding to the one of the cache entries reaches zero.

11. The object store of claim 8 , wherein the cache manager is further configured to cause a portion of a heat map corresponding to a shard of an object to decay faster than a portion of the heat map corresponding to an entirety of the object.

12. The object store of claim 8 , wherein the cache manager is further configured to walk the data cache, and evict all of the cache entries corresponding to a level of importance that is less than a reference level of importance.

13. The object store of claim 12 , wherein the cache manager is further configured to trigger the cache manager to walk the data cache once an amount of cache resources that are used reaches a reference level.

14. The object store of claim 8 , wherein the cache manager is further configured to assign a highest level of importance to root metadata representing an entirety of an object, and assign a lower level of importance to other metadata related to the object for shard metadata representing a shard of the object.

15. A non-transitory computer readable medium implemented on a distributed object store system, the non-transitory computer readable medium having computer code that, when executed on a processor, implements a method of cache management by a cache manager of a data cache of the distributed object store system, the method comprising:

determining, by the cache manager, a level of importance for each of a plurality of cache entries;

assigning, by the cache manager, a metadata type for each of the cache entries based upon the determined level of importance;

determining, by the cache manager, a frequency of access of each of the cache entries;

generating, by the cache manager, a heat map based upon the determined frequency of access of the cache entries; and

determining, by the cache manager, which one of at least two of the cache entries to evict based upon the respective metadata types and the respective frequencies of access.

16. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of cache management of the data cache of the distributed object store system by causing, by the cache manager, portions of the heat map corresponding to cache entries having a lower level of importance to decay faster than other portions of the heat map corresponding to cache entries having a higher level of importance.

17. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of cache management of the data cache of the distributed object store system by evicting, by the cache manager, one of the cache entries once a portion of the heat map corresponding to the one of the cache entries reaches zero.

18. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of cache management of the data cache of the distributed object store system by causing, by the cache manager, a portion of a heat map corresponding to a shard of an object to decay faster than a portion of the heat map corresponding to an entirety of the object.

19. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of cache management of the data cache of the distributed object store system by walking, by the cache manager, the data cache, and evicting, by the cache manager, all of the cache entries corresponding to a level of importance that is less than a reference level of importance.

20. The non-transitory computer readable medium of claim 19 , wherein the computer code, when executed by the processor, further implements the method of cache management of the data cache of the distributed object store system by triggering, by the cache manager, walking of the data cache once an amount of cache resources that are used reaches a reference level.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: STELLUS TECHNOLOGIES, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 055122/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2019
From: JAKKULA, VIJAYA; RAMINENI, SIVA; GOLLAPUDI, VENKATA BHANU P.
To: STELLUS TECHNOLOGIES, INC.
Reel/Frame 050366/0321 →
Cited By (2)
US 12,259,820 US 12,373,351