Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache
First Claim
1. A computer-implemented method, comprising:
- emulating item-wise caching for a block cache implemented in a secondary data storage of a caching system by;
selecting, as sample items, a subset of data items included in the block cache; and
maintaining the sample items in an ordered queue on a primary data storage of the caching system, wherein;
the sample items are ordered in the ordered queue based on a caching algorithm that computes a metric score for each of the sample items and determines an order for the sample items based on a comparison of the metric scores; and
each metric score is indicative of a retention priority;
identifying, from an item-wise cache implemented in the primary data storage, a pending data item for storage into the block cache;
determining a metric score, indicative of retention priority, of the pending data item;
comparing the metric score of the pending data item with the metric scores of the sample items in the ordered queue and identifying a comparable sample item from the sample items with a metric score that is closest to the metric score of the pending data item;
adding the pending data item into a block buffer that is stored in the primary data storage, wherein;
the block buffer corresponds to a memory section in the block cache implemented in the secondary data storage; and
the memory section in the block cache is associated with the comparable sample item; and
when adding the pending data item into the block buffer either results in the block buffer being full or a threshold percentage of being full, storing the block buffer, from the primary data storage, into the block cache, implemented in the secondary data storage, at the memory section that corresponds to the block buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
Several embodiments include a method of operating a cache appliance comprising a primary memory implementing an item-wise cache and a secondary memory implementing a block cache. The cache appliance can emulate item-wise storage and eviction in the block cache by maintaining, in the primary memory, sampling data items from the block cache. The sampled items can enable the cache appliance to represent a spectrum of retention priorities. When storing a pending data item into the block cache, a comparison of the pending data item with the sampled items can enable the cache appliance to identify where to insert a block containing the pending data item. When evicting a block from the block cache, a comparison of a data item in the block with at least one of the sampled items can enable the cache appliance to determine whether to recycle/retain the data item.
45 Citations
13 Claims
-
1. A computer-implemented method, comprising:
-
emulating item-wise caching for a block cache implemented in a secondary data storage of a caching system by; selecting, as sample items, a subset of data items included in the block cache; and maintaining the sample items in an ordered queue on a primary data storage of the caching system, wherein; the sample items are ordered in the ordered queue based on a caching algorithm that computes a metric score for each of the sample items and determines an order for the sample items based on a comparison of the metric scores; and each metric score is indicative of a retention priority; identifying, from an item-wise cache implemented in the primary data storage, a pending data item for storage into the block cache; determining a metric score, indicative of retention priority, of the pending data item; comparing the metric score of the pending data item with the metric scores of the sample items in the ordered queue and identifying a comparable sample item from the sample items with a metric score that is closest to the metric score of the pending data item; adding the pending data item into a block buffer that is stored in the primary data storage, wherein; the block buffer corresponds to a memory section in the block cache implemented in the secondary data storage; and the memory section in the block cache is associated with the comparable sample item; and when adding the pending data item into the block buffer either results in the block buffer being full or a threshold percentage of being full, storing the block buffer, from the primary data storage, into the block cache, implemented in the secondary data storage, at the memory section that corresponds to the block buffer. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A caching system, comprising:
-
a secondary data storage configured to implement a block cache that stores data in units of constant-sized block; a primary data storage configured to implement an item-wise cache; and a processor configured to; emulate item-wise caching for a block cache implemented in a secondary data storage of a caching system by; selecting, as sample items, a subset of data items included in the block cache; and maintaining the sample items in an ordered queue on the primary data storage, wherein; the sample items are ordered in the ordered queue based on a caching algorithm that computes a metric score for each of the sample items and determines an order for the sample items based on a comparison of the metric scores; and each metric score is indicative of a retention priority; identify, from the item-wise cache, a pending data item for storage into the block cache; determine a metric score, indicative of retention priority, of the pending data item; compare the metric score of the pending data item with the metric scores of the sample items to identify a comparable sample item from the sample items with a metric score that is closest to the metric score of the pending data item; add the pending data item into a block buffer that is stored in the primary data storage, wherein; the block buffer corresponds to a memory section in the block cache implemented in the secondary data storage; and the memory section in the block cache is associated with the comparable sample item; and when adding the pending data item into the block buffer either results in the block buffer being full or a threshold percentage of being full, store the block buffer, from the primary data storage, into the block cache, implemented in the secondary data storage, at the memory section that corresponds to the block buffer. - View Dependent Claims (7, 8)
-
-
9. A non-transitory computer-readable data storage medium storing computer-executable instructions that, when executed, cause a computer system to perform a computer-implemented method, the method comprising:
-
emulating item-wise caching for a block cache implemented in a secondary data storage of a caching system by; selecting, as sample items, a subset of data items included in the block cache; and maintaining the sample items in an ordered queue on a primary data storage of the caching system, wherein; the sample items are ordered in the ordered queue based on a caching algorithm that computes a metric score for each of the sample items and determines an order for the sample items based on a comparison of the metric scores; and each metric score is indicative of a retention priority; identifying, from an item-wise cache implemented in the primary data storage, a pending data item for storage into the block cache; determining a metric score, indicative of retention priority, of the pending data item; comparing the metric score of the pending data item with the metric scores of the sample items in the ordered queue and identifying a comparable sample item from the sample items with a metric score that is closest to the metric score of the pending data item; adding the pending data item into a block buffer that is stored in the primary data storage, wherein; the block buffer corresponds to a memory section in the block cache implemented in the secondary data storage; and the memory section in the block cache is associated with the comparable sample item; and when adding the pending data item into the block buffer either results in the block buffer being full or a threshold percentage of being full, storing the block buffer, from the primary data storage, into the block cache, implemented in the secondary data storage, at the memory section that corresponds to the block buffer. - View Dependent Claims (10, 11, 12, 13)
-
Specification