In-memory shared data reuse replacement and caching
First Claim
1. A cache management system for managing a plurality of intermediate data, the cache management system comprising:
- a processor; and
a memory having stored thereon the plurality of intermediate data and instructions that when executed by the processor, cause the processor to perform;
identifying a new intermediate data to be accessed;
loading the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data;
in response to not identifying the new intermediate data as one of the plurality of intermediate data;
selecting a set of victim intermediate data from the plurality of intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data, the plurality of scores being based on a score table stored in the memory;
evicting the set of victim intermediate data from the memory;
updating the score table based on the set of victim intermediate data; and
adding the new intermediate data to the plurality of intermediate data stored in the memory,wherein the score table comprises, for each intermediate data of the plurality of intermediate data, a number of children of the intermediate data, a size of the intermediate data, a re-compute time of the intermediate data.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache management system for managing a plurality of intermediate data includes a processor and a memory having stored thereon instructions that cause the processor to perform identifying a new intermediate data to be accessed, loading the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data, in response to not identifying the new intermediate data as one of the plurality of intermediate data, selecting a set of victim intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data, the scores being based on a score table, evicting the set of victim intermediate data from the memory, updating the score table based on the set of victim intermediate data, and adding the new intermediate data to the plurality of intermediate data stored in the memory.
-
Citations
20 Claims
-
1. A cache management system for managing a plurality of intermediate data, the cache management system comprising:
-
a processor; and a memory having stored thereon the plurality of intermediate data and instructions that when executed by the processor, cause the processor to perform; identifying a new intermediate data to be accessed; loading the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data; in response to not identifying the new intermediate data as one of the plurality of intermediate data; selecting a set of victim intermediate data from the plurality of intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data, the plurality of scores being based on a score table stored in the memory; evicting the set of victim intermediate data from the memory; updating the score table based on the set of victim intermediate data; and adding the new intermediate data to the plurality of intermediate data stored in the memory, wherein the score table comprises, for each intermediate data of the plurality of intermediate data, a number of children of the intermediate data, a size of the intermediate data, a re-compute time of the intermediate data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A cache management system for managing a plurality of intermediate data, the cache management system comprising:
-
a processor; and a memory having stored thereon a plurality of intermediate data and instructions that when executed by the processor, cause the processor to perform; identifying a new intermediate data to be accessed; loading the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data; in response to not identifying the new intermediate data as one of the plurality of intermediate data; generating a plurality of scores associated with respective ones of the plurality of intermediate data, each of the plurality of scores being based on a re-compute time of, a number of children of, and a size of an associated one of the plurality of intermediate data stored at a score table in the memory; selecting a set of victim intermediate data from the plurality of intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data; evicting the set of victim intermediate data from the memory; updating the score table based on the set of victim intermediate data; and adding the new intermediate data to the plurality of intermediate data stored in the memory.
-
-
12. A method of managing a plurality of intermediate data stored in a memory, the method comprising:
-
identifying, by a processor, a new intermediate data to be accessed; loading, by the processor, the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data; in response to not identifying the new intermediate data as one of the plurality of intermediate data; selecting, by the processor, a set of victim intermediate data from the plurality of intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data, the plurality of scores being based on a score table stored in the memory; evicting, by the processor, the set of victim intermediate data from the memory; updating, by the processor, the score table based on the set of victim intermediate data; and adding, by the processor, the new intermediate data to the plurality of intermediate data stored in the memory, wherein the score table comprises, for each intermediate data of the plurality of intermediate data, a number of children of the intermediate data, a size of the intermediate data, a re-compute time of the intermediate data. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A cache management system for managing a plurality of intermediate data, the cache management system comprising:
-
a processor; and a memory having stored thereon the plurality of intermediate data and instructions that when executed by the processor, cause the processor to perform; identifying a new intermediate data to be accessed; loading the intermediate data from the memory in response to identifying the new intermediate data as one of the plurality of intermediate data; in response to not identifying the new intermediate data as one of the plurality of intermediate data; selecting a set of victim intermediate data from the plurality of intermediate data to evict from the memory based on a plurality of scores associated with respective ones of the plurality of intermediate data, the plurality of scores being based on a score table stored in the memory; evicting the set of victim intermediate data from the memory; updating the score table based on the set of victim intermediate data; and adding the new intermediate data to the plurality of intermediate data stored in the memory, wherein the selecting of the set of victim intermediate data comprises; identifying a first set of intermediate data of the plurality of intermediate data, each one of the first set of intermediate data having a size less than that of the new intermediate data; and in response to the first set of intermediate data not being empty; sorting the first set of intermediate data in a sorted order based on first scores associated with respective ones of the first set of intermediate data; adding ones of the first set of intermediate data to the set of victim intermediate data to be evicted, based on the sorted order, while a cumulative size of the set of victim intermediate data is less than the new intermediate data; and generating each one of the first scores based on a re-compute time of, a number of children of, and a size of an associated one of the first set of intermediate data stored at the score table.
-
Specification