Dynamic Prefetch Mechanism for Sequential File Restore

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current deduplication storage systems face inefficiencies in file restoration due to poor data locality, leading to excessive I/O amplification and performance degradation during prefetch operations.

Innovation Solution

Implementing a file locality-based prefetch process that tracks and adapts to the locality of data streams by slicing prefetch batches into smaller sub-batches for parallel processing, reducing serial index lookups and minimizing I/O amplification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of stationary object

If data is stored using deduplication with compression, then storage requirements are greatly reduced, but processing overhead is increased through deduplication processes

Engineering Contradiction:
Improvestorage requirementsVSAvoidprocessing overhead
Core Design Contradiction:
Volume of stationary objectVSUse of energy by stationary object

Solution Approach 1:

The system performs preliminary deduplication processing during the backup/write phase by computing fingerprints and storing only unique data chunks. This preliminary action reduces the volume of data stored while the processing overhead is amortized over time, allowing faster restore operations since deduplication metadata is already available.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If a single read request issues a single prefetch request at a fixed horizon, then the prefetch mechanism is simple to implement, but read performance degrades when data locality is poor

Engineering Contradiction:
Improveprefetch mechanism complexityVSAvoidread performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The prefetch mechanism dynamically adjusts the prefetch horizon based on observed data locality patterns. Instead of using a fixed prefetch distance, the system monitors actual data access patterns and adapts the prefetch horizon accordingly, allowing it to optimize for both sequential and random access patterns while maintaining simple overall architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The prefetch operation is segmented into multiple parallel prefetch requests rather than a single sequential request. By dividing the prefetch task into segments that can be processed in parallel, the system improves throughput and reduces latency while maintaining manageable complexity through modular request handling.

Inventive Principle:
Principle #1Segmentation

3Speed

If prefetch horizon is increased for slower storage layers, then read-ahead performance improves, but I/O amplification increases during restore operations

Engineering Contradiction:
Improveread-ahead performanceVSAvoidI/O amplification
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system uses feedback from actual data access patterns and locality measurements to dynamically adjust the prefetch horizon. By monitoring whether prefetched data is actually used and how far ahead data is needed, the system fine-tunes the prefetch distance to achieve optimal read-ahead performance while minimizing unnecessary I/O operations and amplification.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The prefetch horizon parameter is changed dynamically based on storage layer performance characteristics and observed data patterns. Rather than using a static prefetch distance, the system adjusts this parameter in response to measured performance metrics, allowing optimization for different storage speeds and access patterns while controlling I/O amplification.

Inventive Principle:
Principle #35Parameter changes

4Device complexity

If fingerprint and index data are processed in serial fashion, then the processing logic is simple, but file restore performance is reduced due to excessive I/O operations

Engineering Contradiction:
Improveprocessing logic complexityVSAvoidfile restore performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The fingerprint and index processing is segmented into parallel batches that can be processed simultaneously. Instead of processing all fingerprints sequentially, the system divides them into groups that can be handled in parallel, reducing the total processing time and I/O operations while maintaining manageable complexity through structured batch processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from single-threaded serial processing to multi-threaded parallel processing by adding a temporal dimension to the processing architecture. By utilizing multiple processing threads that can execute simultaneously, the system maintains simple processing logic within each thread while achieving improved overall performance through parallel execution.

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

Data Source

PatentUS11907077B2Sequential file restore performance using dynamic prefetch based on file locality
Publication Date: 2024.02.20 DELL PROD LP
  • US11907077B2 patent drawing
  • US11907077B2 patent drawing
  • US11907077B2 patent drawing

AI summary

Embodiments of a system and method to track the locality of a file being restored at the time of prefetching; and a mechanism to dynamically adjust the prefetching parallelism, per read batch, optimally based on the locality and other heuristics, such as system load. A process tracks locality of data elements in a batched data stream, as corresponds to a number of different container IDs accessed by the data elements. The prefetch nominally works serially on the data elements, however, if the locality exceeds a threshold separating acceptable versus non-acceptable distribution of data accesses, each batch is divided into a number of smaller sub-batches that are then pre-fetched in parallel with one another.