Adaptive Prefetching for Small File Restore in Deduplication Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current deduplication storage systems face inefficiencies in restoring small files due to limited prefetching mechanisms, leading to slower restoration performance compared to large file workloads, as they lack the ability to effectively utilize read-ahead hints and queue-based mechanisms for small file restoration.
Innovation Solution
The implementation of an adaptive prefetching mechanism using extended Data Domain APIs, which introduces a queue-based system to prioritize and process small file read requests, allowing for intelligent prefetching and memory-efficient 'just-in-time' data retrieval by queuing small files and routing them through multiple threads for optimized performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a simple read-ahead prefetch mechanism is used, then the system structure remains simple, but small file restoration performance deteriorates significantly
Solution Approach 1:
The patent implements preliminary action by introducing a read-ahead prefetch mechanism that proactively loads data into the read-ahead cache before it is actually needed. The system calculates a prefetch offset based on the read offset and prefetch horizon, then issues prefetch requests to load data in advance. This allows small files to be restored faster by having data already cached when needed, directly addressing the performance deterioration issue while maintaining manageable system complexity through structured prefetch request processing.
2Productivity
If small files are bundled into containers, then restoration performance improves, but system flexibility and ease of operation deteriorate
Solution Approach 1:
The patent applies segmentation by treating individual small files as separate restore units rather than forcing them into containerized bundles. Each small file can be restored independently through the prefetch mechanism, maintaining file system flexibility and ease of operation while achieving improved restoration performance. The system segments the restore process into individual file operations that can be optimized through prefetching without requiring containerization.
3Device complexity
If traditional file opening and queuing semantics are used, then the API remains simple, but prefetch efficiency and restoration speed deteriorate
Solution Approach 1:
The patent extends the traditional file opening and queuing semantics to include preliminary prefetch actions. When a file is opened for restoration, the system automatically calculates prefetch offsets and issues prefetch requests before the actual read operations. This enhanced API maintains simplicity by automating the prefetch process while significantly improving restoration speed through proactive data loading and read-ahead cache utilization.
Data Source
AI summary
Embodiments of small file restore process in deduplication file system wherein restoration requires issuing a read request within an I/O request to the file system. A prefetch queue processor creates an intent to read the file, rather than opening the file upon receiving the request. During this step, the application passes the file handle of the file, and the destination handle where the data must be read into. As the queue is processed, the prefetch for the request (handle/offset/length) is passed to the file server. The filesystem processes the request to equivalently ‘open’ the file, and bring the data into memory. As the read request for the same file reaches the filesystem the file data is read from memory for writing to the destination handle.


