SYSTEM AND METHODS FOR PRIORITIZING DATA IN A CACHE
First Claim
1. A method for prioritizing a retention of data comprising:
- setting a maximum size of a critical state of a cache using at least one processor;
setting an upper limit on a size of a deduplication table using the at least one processor, the upper limit being less than the maximum size of the critical state;
storing an entirety of the deduplication table in the critical state of the cache; and
retaining the entirety of the deduplication table at the expense of data stored outside the critical state in the cache.
1 Assignment
0 Petitions
Accused Products
Abstract
Implementations described and claimed herein provide a system and methods for prioritizing data in a cache. In one implementation, a priority level, such as critical, high, and normal, is assigned to cached data. The priority level dictates how long the data is cached and consequently, the order in which the data is evicted from the cache memory. Data assigned a priority level of critical will be resident in cache memory unless heavy memory pressure causes the system to reclaim memory and all data assigned a priority state of high or normal has been evicted. High priority data is cached longer than normal priority data, with normal priority data being evicted first. Accordingly, important data assigned a priority level of critical, such as a deduplication table, is kept resident in cache memory at the expense of other data, regardless of the frequency or recency of use of the data.
28 Citations
20 Claims
-
1. A method for prioritizing a retention of data comprising:
-
setting a maximum size of a critical state of a cache using at least one processor; setting an upper limit on a size of a deduplication table using the at least one processor, the upper limit being less than the maximum size of the critical state; storing an entirety of the deduplication table in the critical state of the cache; and retaining the entirety of the deduplication table at the expense of data stored outside the critical state in the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory tangible computer-readable storage media storing computer-executable instructions for performing a computer process on a computing system, the computer process comprising:
-
receiving a write request to write data to a cache having a plurality of states, the data assigned a priority level, the plurality of states including a critical state and a non-critical state; determining a current size of the critical state compared to a maximum side of the critical state, the maximum size being less than a total size of the cache; writing the data to one of the plurality of states based on the priority level and the current size of the critical state; and dynamically adjusting a size of the non-critical state based on an updated size of the critical state after the data is written to one or the plurality of states. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for prioritizing a retention of data comprising:
a cache having a critical state and a non-critical state, the critical state configured to grow unbounded until a maximum size of the critical state is reached by dynamically adjusting the non-critical state, the maximum size of the critical state being less than a total size of the cache and greater than an upper limit of a deduplication table, the non-critical state dynamically adjusted based on one or more priority levels assigned to data stored in the non-critical state. - View Dependent Claims (18, 19, 20)
Specification