File System Backup Prefetching for Small File Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file system backup processes are latency-bound when dealing with large numbers of small files, as they wait serially for each file to be read from storage devices, leading to reduced backup performance.

Innovation Solution

Implementing a method that traverses the file system to identify objects, determines their size, and uses prefetching to represent objects in a data structure based on size and cumulative size, with separate processing threads to parallelize prefetching and data transfer, reducing latency and improving backup performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the backup system reads files serially one by one, then the file system can be traversed completely, but the backup performance is reduced due to latency when dealing with large numbers of small files

Engineering Contradiction:
Improvebackup performanceVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements prefetching where the system reads file metadata and potentially file data ahead of time before it is actually needed for backup. By traversing the file system structure in advance and caching directory entries and file information in memory structures, the system eliminates the latency of sequential reads during the actual backup operation, thereby improving backup performance while maintaining complete file system traversal.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the backup system uses prefetching to read files in advance, then latency is reduced and backup performance is improved, but the complexity of the reading process increases

Engineering Contradiction:
Improvebackup performanceVSAvoidreading process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the file system reading process into distinct phases: a traversal phase that reads directory structures and metadata, a prefetching phase that reads file data in advance, and a backup phase that transfers files. It introduces separate data structures (directory cache, file cache) to manage different types of information. This segmentation reduces the complexity of the overall reading process by breaking it down into manageable, parallelizable operations while maintaining improved backup performance through prefetching.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the system represents all objects in the data structure, then complete file system information is maintained, but memory resources are consumed by cumulative size of all objects

Engineering Contradiction:
Improvefile system information completenessVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by differentiating how different types of file system objects are handled in the data structure. Directory entries and metadata are cached with higher priority and retained longer, while only essential file information is prefetched and stored. The system dynamically adjusts the level of detail stored for different object types based on their importance and access patterns, maintaining reliable file system information completeness for critical structures while reducing overall memory consumption by not representing every single object at full detail level.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7966289B2Systems and methods for reading objects in a file system
Publication Date: 2011.06.21 EMC IP HLDG CO LLC
  • US7966289B2 patent drawing
  • US7966289B2 patent drawing
  • US7966289B2 patent drawing

AI summary

Embodiments of the disclosure relate generally to file systems. Specifically, certain embodiments include systems and methods for reading objects in a file system. In some embodiments, a first processing thread traverses a portion of a file system and represents file system objects in a data structure. A portion of the data and/or metadata associated with the represented objects may be prefetched to a memory. In some embodiments, a second processing thread consumes the objects represented in the queue. For example, in a file system backup embodiment, the second processing thread may transfer data and/or metadata associated with the objects to an archive target.