Dynamic Pre-fetch Policy Selection for File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern distributed file systems face challenges in consistently improving read performance due to variability in client read patterns, making it difficult to implement an effective pre-fetch policy that predicts and adapts to changing data access demands.

Innovation Solution

A pre-fetch engine is implemented to dynamically select and evaluate pre-fetch policies using machine learning models, based on characteristics of read requests, such as block identifiers and user information, to optimize data placement across storage tiers, and adjust policies in real-time to maximize performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed pre-fetch policy is implemented, then read performance may be improved for certain access patterns, but performance deteriorates when client read patterns vary

Engineering Contradiction:
Improveread performanceVSAvoidadaptability to varying read patterns
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic pre-fetch policies that adapt to changing client read patterns. The system monitors actual read behavior and adjusts pre-fetch parameters (such as pre-fetch size, timing, and target blocks) in real-time, transforming a static pre-fetch mechanism into a dynamic one that responds to workload variations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback loops where pre-fetch performance is continuously evaluated based on actual read requests. Metrics such as pre-fetch hit rates, read latency, and storage I/O patterns are fed back into the policy selection mechanism, enabling the system to learn from past performance and optimize future pre-fetch decisions.

Inventive Principle:
Principle #23Feedback

2Speed

If pre-fetching is implemented to improve read performance, then data access speed increases, but unnecessary data transfer and storage usage increase

Engineering Contradiction:
Improvedata access speedVSAvoidunnecessary data transfer
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent applies partial pre-fetching by selecting only the necessary portion of data to pre-fetch based on predicted access patterns. Rather than pre-fetching entire files or fixed-size blocks, the system calculates optimal pre-fetch sizes that balance performance improvement against unnecessary data transfer, implementing a 'just enough' pre-fetch strategy.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system dynamically changes pre-fetch parameters (size, timing, frequency) based on workload characteristics and performance feedback. When read patterns indicate high sequential access, pre-fetch size increases; when access is random or cache-hit rates are high, pre-fetch parameters are reduced or suspended, optimizing the balance between speed improvement and energy consumption.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If multiple pre-fetch policies are maintained for different scenarios, then adaptability improves, but system complexity increases

Engineering Contradiction:
Improvepolicy adaptabilityVSAvoidpolicy management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal policy selection framework that can handle multiple pre-fetch strategies through a single integrated mechanism. Rather than maintaining separate complex policy management systems for different scenarios, the system uses a unified approach that selects and configures appropriate pre-fetch behaviors based on workload classification, reducing overall system complexity while maintaining adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system introduces an intermediary policy selection layer that sits between the storage system and client applications. This intermediary component analyzes read patterns, selects appropriate pre-fetch policies from a predefined set, and manages policy transitions, thereby simplifying the complexity of managing multiple policies by centralizing the decision-making process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10474635B1Dynamic evaluation and selection of file system pre-fetch policy
Publication Date: 2019.11.12 QUMULO INC
  • US10474635B1 patent drawing
  • US10474635B1 patent drawing
  • US10474635B1 patent drawing

AI summary

Embodiments are directed to managing data in a file system. An engine may receive read requests associated with a file system that includes pre-fetch storage and file storage. The engine may employ a pre-fetch policy selected from a plurality of pre-fetch policies to copy blocks to pre-fetch storage. The engine may evaluate the selected pre-fetch policy and also evaluate simulated performances for each unselected pre-fetch policy based on subsequent read requests. The engine may provide a performance score based on the evaluation of the selected pre-fetch policy and it may provide other performance scores based on the simulated evaluation of each unselected pre-fetch policy If one of the other performance scores for one of the unselected pre-fetch policies exceeds the performance score of the selected pre-fetch policy, the engine may select that unselected pre-fetch policies as a new selected pre-fetch policy.