Data block frequency map dependent caching
First Claim
1. A method for increasing cache memory performance and utilization, comprising:
- combining a data block frequency map generated by a data de-duplication mechanism with a page prefetching and eviction process;
using said data block frequency map to provide weights that are directly proportional to a corresponding frequency count of a data block in a dataset;
creating a set of de-duplicated data blocks in the cache memory with the data de-duplication mechanism;
ordering the set of de-duplicated data blocks in the cache memory according to the corresponding frequency count for each of the de-duplicated data blocks;
ordering de-duplicated data blocks having a same frequency count in the cache memory into a least recently used order according to an average value of a cache residence term for each de-duplicated data block;
influencing a caching algorithm controlling said page prefetching and eviction process with said weights;
evicting the data block from the cache memory when the frequency count for the data block is greater than zero; and
evicting all data blocks having a same frequency count that is less than or equal to the frequency count of other data blocks from the cache memory, with data blocks having a same frequency count evicted in the least recently used order according to an average value of a cache residence term, before evicting any data block with a higher frequency count.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for increasing the performance and utilization of cache memory by combining the data block frequency map generated by data de-duplication mechanism and page prefetching and eviction algorithms like Least Recently Used (LRU) policy. The data block frequency map provides weight directly proportional to the frequency count of the block in the dataset. This weight is used to influence the caching algorithms like LRU. Data blocks that have lesser frequency count in the dataset are evicted before those with higher frequencies, even though they may not have been the topmost blocks for page eviction by caching algorithms. The method effectively combines the weight of the block in the frequency map and its eviction status by caching algorithms like LRU to get an improved performance and utilization of the cache memory.
-
Citations
11 Claims
-
1. A method for increasing cache memory performance and utilization, comprising:
-
combining a data block frequency map generated by a data de-duplication mechanism with a page prefetching and eviction process; using said data block frequency map to provide weights that are directly proportional to a corresponding frequency count of a data block in a dataset; creating a set of de-duplicated data blocks in the cache memory with the data de-duplication mechanism; ordering the set of de-duplicated data blocks in the cache memory according to the corresponding frequency count for each of the de-duplicated data blocks; ordering de-duplicated data blocks having a same frequency count in the cache memory into a least recently used order according to an average value of a cache residence term for each de-duplicated data block; influencing a caching algorithm controlling said page prefetching and eviction process with said weights; evicting the data block from the cache memory when the frequency count for the data block is greater than zero; and evicting all data blocks having a same frequency count that is less than or equal to the frequency count of other data blocks from the cache memory, with data blocks having a same frequency count evicted in the least recently used order according to an average value of a cache residence term, before evicting any data block with a higher frequency count. - View Dependent Claims (2)
-
-
3. A device for increasing cache memory performance and utilization, comprising:
-
a cache memory; a data de-duplication engine in data communication with said cache memory; a data block frequency map for receiving a frequency count for a data block from said data de-duplication engine; and an eviction controller in data communication with said cache memory and adapted to receive frequency counts from said data frequency map and further adapted to select a next data block to be deleted from said cache memory from among a group of data blocks having a same frequency count and arranged within said group in a least recently used order according to an average value of a cache residence term for each data block, wherein, said data block frequency map provides weights that are directly proportional to a corresponding frequency count of a block in a dataset, a data block having a nonzero frequency count is deletable, said weights are used to influence a caching algorithm controlling said page prefetching and eviction process, and, during operation, all data blocks that have a lesser frequency count in said dataset are evicted in said least recently used order according to said average value of said cache residence term before any others with higher frequencies, even though such may not have been a first block for page eviction decided by said caching algorithm. - View Dependent Claims (4, 5)
-
-
6. A cache memory system, comprising:
-
a data de-duplicator for eliminating duplicate data objects in a cache memory and for building a data object frequency map comprising a frequency of duplicate data objects; and a least recently used (LRU) cache manager for arranging data objects into groups in said cache memory, each of said groups comprising data objects having a same value of said frequency, and data objects in each of said groups ordered into a least recently used order according to an average value of a cache residence term for each data object, and for evicting data objects from said cache memory from a group of data objects having a lowest frequency greater than zero indicated by a corresponding value in said data object frequency map, and for evicting data objects in each of said groups in a least recently used order according to an average value of a cache residence term for each data object. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product, comprising:
-
a non-transitory computer-readable medium; means, provided on the computer-readable medium, for forming a table comprising a frequency of duplicate data objects in a cache memory; means, provided on the computer-readable medium, for ordering the data objects in the cache memory according to their corresponding frequencies from the table; means, provided on the computer-readable medium, for forming groups of data objects, each group comprising data objects with a same frequency, and within each group, ordering the data objects in a least recently used order according to an average value of a cache residence term for each data object; means, provided on the computer-readable medium, for evicting from the cache memory a data object selected from a group of data objects having a least value of frequency, and from among the group of data objects comprising a least value of frequency, for evicting the least recently used data object according to the average value of the cache residence term for each data object; and means, provided on the computer-readable medium, for evicting all data objects from a group of data objects having a least value of frequency before ejecting a data object from a group of data objects having a higher value of frequency.
-
Specification