Adaptive Prefetching Mechanism for Storage Network Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetching schemes in storage networks are coarse-grained and do not adaptively manage the amount and timing of data to prefetch, leading to inefficiencies such as prefetch wastage and increased costs, particularly when dealing with inter-file block requests and multiple client data requests.

Innovation Solution

A dynamically adaptive prefetching mechanism that utilizes block access history information and prior prefetch effectiveness to determine the number of blocks to read-ahead, implemented through a two-step decision process of block selection and quantity, optimizing cache hit ratios while minimizing wastage and cost, using a graph data structure to track block range access probabilities and applying algorithms like Adaptive Multi-stream Prefetching to dynamically adjust prefetch depth and timing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If sequential prefetching with N-block look-ahead is used, then prefetch simplicity is maintained, but prefetch accuracy deteriorates due to inability to handle inter-file block requests and multiple client data requests

Engineering Contradiction:
Improveprefetch mechanism complexityVSAvoidprefetch accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent segments the prefetching mechanism into multiple independent streams, each tracking access patterns for different files or data sets. Instead of a single unified prefetch queue, the system maintains separate history buffers and prefetch queues for each stream, allowing accurate tracking of inter-file and multi-client access patterns while keeping each individual stream's management relatively simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of stream identification to the traditional prefetching model. By adding stream tags and history buffer associations, the system can distinguish between different client requests and file access patterns, enabling accurate prefetching for multiple interleaved clients without requiring complex inter-file block request handling in the traditional single-dimension prefetch queue.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If history-based prefetching is implemented, then prefetch accuracy for random data accesses is improved, but prefetch wastage increases due to coarse-grained file-based approach

Engineering Contradiction:
Improveprefetch accuracy for random accessesVSAvoidprefetch wastage
Core Design Contradiction:
Measurement precisionVSLoss of substance

Solution Approach 1:

The patent segments the file-based prefetching into block-level granularity within each stream. Instead of prefetching entire files or large portions based on file access history, the system tracks and prefetches individual blocks or small groups of blocks, reducing the amount of unnecessary data brought into cache while maintaining accurate prefetching for randomly accessed blocks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by prefetching only the specific blocks that are likely to be needed next, rather than prefetching entire files. The history buffer tracks actual block access patterns, and the prefetch mechanism brings in only those specific blocks, avoiding the excessive action of loading entire files that may never be accessed.

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If fixed threshold prefetching is used, then prefetch decision simplicity is maintained, but adaptability deteriorates due to inability to dynamically vary prefetch amount and timing

Engineering Contradiction:
Improveprefetch decision complexityVSAvoiddynamic prefetch adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic prefetching by maintaining history buffers that continuously update access patterns for each stream. The prefetch amount and timing are dynamically adjusted based on the observed access patterns in the history buffer, allowing the system to adapt to varying workloads, access patterns, and cache conditions without requiring complex manual tuning or fixed thresholds.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the history buffer continuously monitors actual block access patterns and feeds this information back to the prefetch decision logic. This feedback loop allows the system to learn from past access patterns and dynamically adjust prefetch behavior, improving adaptability while keeping the decision process relatively simple through pattern recognition rather than complex algorithms.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9304928B2Systems and methods for adaptive prefetching
Publication Date: 2016.04.05 NETAPP INC
  • US9304928B2 patent drawing
  • US9304928B2 patent drawing
  • US9304928B2 patent drawing

AI summary

Systems and methods which provide for improved prefetching schemes for caching data in a storage network are described. In one embodiment, a dynamically adaptive prefetching mechanism based on block access history information and prior effectiveness of prefetching is provided. Embodiments may take into account prefetch efficiency; a dynamic value indicating the usefulness of past prefetches, prefetch wastage, in conjunction with prefetch resources available at any point in time, to determine the number of blocks to read-ahead during a prefetch. Such embodiments provide improvements over file-based prefetching and previous block schemes, as they provide a finer grain of control over both prefetch block selection, and the number of blocks to prefetch based on block (or block range) access history.