Concurrent Read Threads for Small File Backup Streaming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data streaming methods for backup and migration operations face inefficiencies, particularly when dealing with multiple small files, leading to bottlenecks and discontinuous data streams, which can slow down the backup process and stress tape drives.

Innovation Solution

Implementing multiple concurrent thread instances for reading data from files, allowing each thread to handle data from a file and stream it into buffers, ensuring continuous and efficient data streaming by managing ownership and linking buffers appropriately.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple small files are read sequentially using a single thread, then the system structure remains simple, but the data stream becomes discontinuous and backup performance deteriorates

Engineering Contradiction:
Improvebackup performanceVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the file reading operation into multiple concurrent threads, with each thread responsible for reading a specific file. This segmentation allows simultaneous reading of multiple small files, creating a continuous data stream that improves backup performance while managing complexity through structured thread organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary actions by opening and pre-loading file data into buffers before the actual backup write operation. Multiple threads perform file opening and data loading in advance, ensuring that data is ready for continuous streaming to tape without waiting for sequential file access.

Inventive Principle:
Principle #10Preliminary action

2Speed

If a single thread reads data from files, then the implementation is straightforward, but bottlenecks occur and data streaming continuity is lost

Engineering Contradiction:
Improvedata streaming speedVSAvoidconcurrent thread coordination
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent ensures continuity of useful action by having multiple threads read from multiple files simultaneously, preventing idle periods in the data stream. The buffering mechanism maintains continuous data flow to the tape drive, eliminating gaps that would occur with sequential single-threaded reading of small files.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent introduces buffers as an intermediary between the file reading threads and the tape writing operation. These buffers decouple the reading and writing processes, allowing multiple threads to feed data continuously while the tape write operation proceeds at its own pace, thus maintaining streaming speed without direct thread coordination overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If data is streamed directly from disk to tape without buffers, then memory usage is reduced, but the tape drive experiences unnecessary acceleration and deceleration

Engineering Contradiction:
Improvetape drive operation stabilityVSAvoidbuffer memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements beforehand cushioning by using buffer memory to store data before writing to tape. This cushioning layer absorbs variations in data arrival rates from multiple threads and provides a steady data supply to the tape drive, preventing acceleration and deceleration cycles that would occur with direct disk-to-tape streaming.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS8244903B2Data streaming and backup systems having multiple concurrent read threads for improved small file performance
Publication Date: 2012.08.14 EMC IP HLDG CO LLC
  • US8244903B2 patent drawing
  • US8244903B2 patent drawing
  • US8244903B2 patent drawing

AI summary

Permitting multiple concurrent read operations upon a file system enhances small file performance. A respective instance of a thread routine stores the data from each file into a series of buffers for the file. Each instance is identified by a Process Identifier (PID) used for streaming the data from the buffers in the order in which the files are opened instead of the order in which the file data are returned by the read operations. In order to conserve buffer memory, read operations upon a file are suspended once a certain amount of data have been read from the file unless data from the file are being streamed from the buffers.