Pre-read Data Caching via Multi-level Queue Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage systems, pre-read data is often aged prematurely due to shared caching with written and read data, leading to slow data loading and increased reading delays, which affects system performance.
Innovation Solution
Implementing a multi-level cache system where pre-read data is moved from a pre-read queue to a secondary cache queue and then to a reset queue, with the pre-read queue having the lowest invalidation priority, ensuring its validity and improving read performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If pre-read data shares one cache queue with writing completed data and read data, then cache space utilization is improved, but pre-read data validity deteriorates due to premature aging
Solution Approach 1:
The patent divides the single shared cache queue into multiple separate queues: a pre-read queue for pre-read data, a write queue for writing completed data, and a read queue for read data. Each queue has its own aging policy and invalidation priority, preventing pre-read data from being prematurely aged due to shared cache space constraints. This segmentation resolves the contradiction by maintaining data validity while still utilizing cache space efficiently through dedicated queues.
Solution Approach 2:
The patent applies different aging policies and invalidation priorities to different types of data in different queues. Specifically, pre-read data in the pre-read queue is assigned the lowest invalidation priority and is aged last, while other queues have different priorities. This local differentiation of data treatment ensures that pre-read data validity is protected while maintaining overall cache efficiency.
2Device complexity
If pre-read data is always aged first in the shared cache queue, then cache management simplicity is improved, but system performance deteriorates due to slow data loading and long reading delay
Solution Approach 1:
By segmenting the cache into multiple queues with different aging policies, the system achieves better performance despite increased management complexity. The pre-read queue specifically protects pre-read data from premature aging, ensuring data availability when needed and improving system performance.
Solution Approach 2:
The patent changes the aging parameter (invalidation priority) based on data type and queue location. Pre-read data in the pre-read queue is assigned the lowest invalidation priority and is aged last, while other data types have different priorities. This parameter differentiation resolves the contradiction by improving system performance through targeted aging policies while maintaining manageable complexity through structured queue management.
3Reliability
If a multi-level cache system with separate queues is implemented, then pre-read data validity is improved, but device complexity increases
Solution Approach 1:
The patent implements a multi-level cache structure with separate queues for different data types (pre-read queue, write queue, read queue). Each queue has its own aging policy and invalidation priority, which improves pre-read data validity by protecting it from premature aging. The segmentation is organized in a systematic way that balances the improved reliability against the increased structural complexity.
Solution Approach 2:
The patent applies different aging policies and invalidation priorities locally to different queues and data types. The pre-read queue specifically implements lowest invalidation priority and last-in-first-out aging, while other queues have different policies. This localized differentiation improves pre-read data validity while keeping the overall system complexity manageable through targeted rather than universal policies.
Data Source
AI summary
A pre-read data caching method and apparatus, a device, and a storage medium, the method including: receiving a read command for a target file; if determining that there is target pre-read data of the target file in a pre-read queue, then moving the pre-read data from the pre-read queue into a secondary cache queue; reading the target pre-read data in the secondary cache queue; and, after reading is complete, moving the target pre-read data from the secondary cache queue into a reset queue, the invalidation priority level of the pre-read queue being the lowest.


