IP Library Granted Patent US 11,762,778
Granted Patent B2
US 11,762,778 · App. 17/504,490 · Granted Sep 19, 2023

Efficient cache eviction and insertions for sustained steady state performance

Inventors: Vijaya Kumar Jakkula (San Jose, CA); Siva Ramineni (Milpitas, CA); Venkata Bhanu Prakash Gollapudi (Pleasanton, CA)
G06F12/0891G06F9/3009G06F9/5016G06F9/5022G06F12/0824G06F12/127G06F2209/5011G06F2209/5022G06F2212/1021G06F2212/7207
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,762,778
App. No.
17/504,490
Granted
Sep 19, 2023
Kind
B2
Abstract

A distributed metadata cache for a distributed object store includes a plurality of cache entries, an active-cache-entry set and an unreferenced-cache-entry set. Each cache entry includes information relating to whether at least one input/output (IO) thread is referencing the cache entry and information relating to whether the cache entry is no longer referenced by at least one IO thread. Each cache entry in the active-cache-entry set includes information that indicates that at least one IO thread is actively referencing the cache entry. Each cache entry in the unreferenced-cache-entry set is eligible for eviction from the distributed metadata cache by including information that indicates that the cache entry is no longer actively referenced by an IO thread.

Claims (30)

1. A distributed metadata cache for a distributed object store, the distributed metadata cache comprising:

a plurality of cache entries, each cache entry including information relating to whether at least one input/output (IO) thread is referencing the cache entry and information relating to whether the cache entry is no longer referenced by at least one IO thread; and

an active-cache-entry set, each cache entry in the active-cache-entry set including information that indicates that at least one IO thread is actively referencing the cache entry.

2. The distributed metadata cache of claim 1 , further comprising an unreferenced-cache-entry set, each cache entry in the unreferenced-cache-entry set being eligible for eviction from the distributed metadata cache by including information that indicates that the cache entry is no longer actively referenced by an IO thread.

3. The distributed metadata cache of claim 2 , wherein each cache entry in the unreferenced-cache-entry set being eligible for eviction from the distributed metadata cache by including information of a decreased cache hit of the cache entry over time.

4. The distributed metadata cache of claim 2 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource after a predetermined period of time in the unreferenced-cache-entry set.

5. The distributed metadata cache of claim 2 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource based on one of IO characteristics of an application, and a rate of consumption of available free resources.

6. The distributed metadata cache of claim 2 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource based on an amount of available free resources falling below a predetermined threshold.

7. The distributed metadata cache of claim 1 , wherein the information that each entry in the active-cache-entry set includes comprises a linked list of previous and next pointers.

8. The distributed metadata cache of claim 1 , wherein the information that each entry in the active-cache-entry set includes comprises a searchable tree data structure.

9. A method to manage a distributed metadata cache for a distributed object store, the method comprising:

converting a free resource into a first cache entry in response to the distributed metadata cache receiving an input/output (IO) thread; and

including the first cache entry in a set of active cache entries, each cache entry in the set of active cache entries including information indicating that the cache entry is actively referenced by a one or more corresponding TO threads.

10. The method of claim 9 , further comprising:

including the first cache entry in a set of unreferenced cache entries based on the cache entry no longer being actively referenced by the IO thread, the first cache entry including information indicating that the first cache entry is no longer being actively referenced by the IO thread, and each cache entry in the set of unreferenced cache entries being eligible for eviction from the distributed metadata cache; and

evicting the first cache entry from the set of active cache entries and the set of unreferenced cache entries based on one of a predetermined period of time elapsing while the first cache entry is in the set of unreferenced cache entries.

11. The method of claim 10 , wherein including the first cache entry into the set of unreferenced cache entries is further based on a decreased cache hit of the first cache entry over time.

12. The method of claim 10 , wherein evicting the first cache entry from the set of active cache entries and the set of unreferenced cache entries is further based on one of a predetermined period of time elapsing while the first cache entry is in the set of unreferenced cache entries, and based on IO characteristics of an application.

13. A distributed metadata cache for a distributed object store, the distributed metadata cache comprising:

a plurality of cache entries, each cache entry including information relating to whether at least one input/output (IO) thread is actively referencing the cache entry and information relating to whether the cache entry is no longer referenced by at least one IO thread; and

an active-cache-entry set, each cache entry in the active-cache-entry set including information that indicates that at least one IO thread is actively referencing the cache entry; and

an unreferenced-cache-entry set, each cache entry in the unreferenced-cache-entry set being eligible for eviction from the distributed metadata cache by including information that indicates that the cache entry is no longer actively referenced by an IO thread.

14. The distributed metadata cache of claim 13 , further comprising:

a pool of free resources that is available to become a cache entry in response to an IO thread, wherein each cache entry in the unreferenced-cache-entry set being eligible for eviction from the distributed metadata cache by including information that indicates a decreasing heat condition of the cache entry.

15. The distributed metadata cache of claim 14 , wherein the decreasing heat condition comprises a decreased cache hit of the cache entry over time.

16. The distributed metadata cache of claim 14 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource in the pool of free resources after a predetermined period of time in the unreferenced-cache-entry set.

17. The distributed metadata cache of claim 14 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource based on one of IO characteristics of an application, and a rate of consumption of available free resources.

18. The distributed metadata cache of claim 14 , wherein a cache entry in the unreferenced-cache-entry set is released to be a free resource in the pool of free resources based on an amount of available free resources falling below a predetermined threshold.

19. The distributed metadata cache of claim 13 , wherein the information that each entry in the active-cache-entry set includes comprises a linked list of previous and next pointers.

20. The distributed metadata cache of claim 13 , wherein the information that each entry in the active-cache-entry set includes comprises a searchable tree data structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2023
From: JAKKULA, VIJAYA KUMAR; RAMINENI, SIVA; GOLLAPUDI, VENKATA BHANU PRAKASH
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064557/0381 →
Continuity (3)
Continuation 16812257 · Mar 6, 2020
Provisional Application 62957120 · Jan 3, 2020
Related Publication 20220035746A1 · Feb 3, 2022
Cited By (1)
US 12,373,351