Adaptive Pre-fetching for Disk Read Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current disk storage systems experience latency due to out-of-order reads within a track, leading to unavoidable read misses, as existing prefetching techniques do not account for the possibility of reads occurring at different portions of a track, resulting in inefficient data retrieval.
Innovation Solution
Adaptive prefetching techniques are employed, which collect statistics on avoidable read misses before and after data is read, allowing for dynamic selection of prefetch methods based on generated random numbers and predefined values, enabling prefetching of data before, after, or throughout a track to minimize read misses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If data is fetched only when specifically requested, then cache memory usage is minimized, but read latency increases due to mechanical disk access
Solution Approach 1:
The system performs preliminary actions by fetching additional data from the disk into the cache before it is actually requested. When a read miss occurs, the system proactively fetches not only the requested data but also subsequent data from the same track, anticipating that this data may be needed soon. This preliminary action reduces future read latency while the fetched data remains in the cache.
2Productivity
If entire tracks are pre-fetched into cache, then future read misses are reduced, but cache memory is wasted on data that may not be needed
Solution Approach 1:
Instead of uniformly pre-fetching entire tracks regardless of context, the system applies local quality by making pre-fetch decisions based on the specific characteristics of each read request and the current cache state. The system determines whether to pre-fetch based on factors such as whether the track is already partially in cache, the position within the track, and cache availability, thereby optimizing cache usage for each local situation rather than applying a blanket pre-fetch strategy.
Solution Approach 2:
The system employs partial action by fetching only a portion of the track (from the current position to the end of the track) rather than always fetching the entire track. This partial pre-fetch approach provides enough additional data to reduce future read misses while avoiding the cache waste that would result from fetching complete tracks when only a portion is likely to be needed.
3Adaptability or versatility
If read operations are performed in out-of-order fashion within a track, then random access flexibility is improved, but read misses increase because pre-fetched data may be overwritten or not yet available
Solution Approach 1:
The system inverts the conventional approach by pre-fetching data in forward order (from current position to end of track) even when requests may come in out-of-order. By ensuring that subsequent data is already in the cache before it is requested, the system makes read operations robust to out-of-order arrival patterns. The inversion lies in fetching data before it is needed, rather than waiting for requests to arrive.
Data Source
AI summary
Adaptively pre-fetching data includes collecting a first set of statistics based on a number of avoidable read-misses in which data exists that is prior to data being read, collecting a second set of statistics based on a number of avoidable read-misses in which data exists that follows data being read, and collecting a third set of statistics based on said first and second sets of statistics. On the basis of the second set of statistics, a pre-fetch technique is selected from a first technique that pre-fetches data following data being read and a second technique that pre-fetches data before and following the data being read. The first and third set of statistics may be used to determine when to pre-fetch data.


