Adaptive Pre-fetching for Disk Read Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveread latencyVSAvoidcache memory usage
Core Design Contradiction:
Loss of timeVSQuantity of substance

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata retrieval efficiencyVSAvoidcache memory waste
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improveaccess flexibilityVSAvoidread miss rate
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS7899996B1Full track read for adaptive pre-fetching of data
Publication Date: 2011.03.01 EMC IP HLDG CO LLC
  • US7899996B1 patent drawing
  • US7899996B1 patent drawing
  • US7899996B1 patent drawing

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.