Pattern-Aware Prefetching for Non-Sequential I/O Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High Performance Computing environments face challenges in reducing Input/Output (I/O) latency due to the inability to effectively prefetch data for non-sequential file access patterns, as existing techniques struggle to predict and prepare data for future requests efficiently.

Innovation Solution

A pattern-aware prefetching system using a parallel log-structured file system detects non-sequential access patterns and proactively fetches data into a prefetch cache, reducing I/O latency by predicting future requests based on identified patterns and storing them for immediate application access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional prefetching techniques are used for sequential file access, then I/O latency is reduced, but they fail to effectively prefetch data for non-sequential access patterns

Engineering Contradiction:
ImproveI/O latencyVSAvoidadaptability to non-sequential access patterns
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary pattern detection and prediction before actual data requests occur. By analyzing historical access patterns and predicting future access sequences, the system proactively prefetches data into the cache, enabling effective prefetching for both sequential and non-sequential access patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors and analyzes actual file access patterns, using this feedback to refine and update prediction models. This feedback mechanism enables the prefetching system to adapt to changing access patterns and improve prediction accuracy over time, resolving the contradiction between reducing I/O latency and adapting to non-sequential access.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If pattern detection and prediction mechanisms are added to enable prefetching for non-sequential access, then adaptability to various access patterns improves, but system complexity increases

Engineering Contradiction:
Improveability to handle non-sequential access patternsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces a pattern detector and prediction engine as intermediary components between the file system and application. These intermediaries handle the complexity of pattern analysis and prediction, allowing the rest of the system to remain relatively simple while gaining enhanced adaptability to various access patterns.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If prefetch cache is implemented to store predicted data, then I/O latency is reduced, but metadata management complexity increases

Engineering Contradiction:
ImproveI/O latencyVSAvoidmetadata management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system extracts and stores only the essential metadata information needed for pattern recognition and prediction, separating this from the actual data storage. By taking out only the necessary metadata elements, the system reduces metadata management complexity while still enabling effective prefetching and latency reduction.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11080196B2Pattern-aware prefetching using parallel log-structured file system
Publication Date: 2021.08.03 EMC IP HLDG CO LLC
  • US11080196B2 patent drawing
  • US11080196B2 patent drawing
  • US11080196B2 patent drawing

AI summary

Techniques are provided for pattern-aware prefetching using a parallel log-structured file system. At least a portion of one or more files is accessed by detecting at least one pattern in a non-sequential access of the one or more files; and obtaining at least a portion of the one or more files based on the detected at least one pattern. The obtaining step comprises, for example, a prefetching or pre-allocation of the at least the portion of the one or more files. A prefetch cache can store the portion of the one or more obtained files. The cached portion of the one or more files can be provided from the prefetch cache to an application requesting the at least a portion of the one or more files.