Hierarchical Storage Cache Management with Priority Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale storage systems, the increasing size of the cache in tier 1 storage leads to prohibitive memory requirements for the in-memory cache, impacting IO performance due to the need for proportional memory increases.
Innovation Solution
A cache management data structure employing high and low priority queues and a hash table is used to efficiently manage block attributes, allowing for effective caching and eviction strategies to optimize memory usage, with a hardware abstraction layer enabling resource isolation and allocation among virtual computing instances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the size of the cache in tier 1 storage is increased to improve IO performance, then the IO performance is improved, but the memory requirements of the in-memory cache become prohibitive
Solution Approach 1:
The patent segments the cache management into two distinct components: a file system cache for data blocks and a separate in-memory cache for block attributes. This segmentation allows the system to optimize memory usage by storing only essential metadata (attributes) in the expensive in-memory cache while keeping the actual data in the file system cache, thereby resolving the contradiction between improving IO performance and reducing prohibitive memory requirements.
Solution Approach 2:
The patent extracts the block attribute storage from the traditional unified cache structure and places it in a separate in-memory cache. By extracting only the essential metadata (checksums, keys, sizes) from the full data blocks, the system maintains the ability to verify cached data quickly while dramatically reducing the memory footprint compared to caching entire data blocks along with their attributes.
2Speed
If the size of the cache in tier 1 storage becomes increasingly large to improve performance, then the IO performance is improved, but the memory requirements become prohibitive
Solution Approach 1:
The patent segments the cache management into two distinct components: a file system cache for data blocks and a separate in-memory cache for block attributes. This segmentation allows the system to optimize memory usage by storing only essential metadata (attributes) in the expensive in-memory cache while keeping the actual data in the file system cache, thereby resolving the contradiction between improving IO performance and reducing prohibitive memory requirements.
Solution Approach 2:
The patent extracts the block attribute storage from the traditional unified cache structure and places it in a separate in-memory cache. By extracting only the essential metadata (checksums, keys, sizes) from the full data blocks, the system maintains the ability to verify cached data quickly while dramatically reducing the memory footprint compared to caching entire data blocks along with their attributes.
Data Source
AI summary
An in-memory cache for a computer system having a first storage and a second storage where the first storage is a cache for the second storage, tracks priority levels of block attributes stored therein. If a data item is cached in the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a high priority block attribute. If a data item evicted from the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a low priority block attribute. When the cache becomes full, the low priority block attributes are evicted before the high priority block attributes.


