Multi-thread File I/O System for Parallel Large Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file transfer technologies over the Internet face inefficiencies when transferring large files, particularly due to delays and loss of data fragments during multi-part transfers, which can lead to processing inefficiencies and the need for retries.

Innovation Solution

A multi-thread file input/output system that divides files into multiple pieces and transfers them in parallel using separate threads for transmission and reception, ensuring efficient processing and reassembly even when data fragments are received out of order or lost, by using a multi-thread structure for file input/output operations between computers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a file is divided into multiple pieces and transferred separately, then the transfer can be performed in parallel improving throughput, but delays and data loss occur more frequently requiring retries

Engineering Contradiction:
Improvefile transfer throughputVSAvoiddata transfer reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The file is divided into multiple pieces (segments) that can be transferred in parallel through multiple threads, improving throughput while maintaining the ability to handle individual piece failures independently

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements acknowledgment mechanisms where the receiving end sends feedback to the transmitting end about successful receipt of data pieces, enabling automatic retry of lost pieces without affecting other pieces

Inventive Principle:
Principle #23Feedback

2Productivity

If multiple threads are used for parallel file transfer, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The file transfer process is segmented into independent threads, each handling specific data pieces, allowing parallel processing while maintaining manageable thread-level complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multi-thread file I/O module provides universal functionality for both reading and writing operations across multiple threads, consolidating complexity into a single reusable component

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If data fragments are received out of order, then parallel transfer efficiency is maintained, but correct reassembly becomes difficult

Engineering Contradiction:
Improveparallel transfer efficiencyVSAvoiddata reassembly accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

Sequence numbers are assigned to data pieces before transmission, enabling the receiving end to reorder pieces correctly upon arrival without affecting parallel transfer efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses acknowledgment feedback to track which pieces have been received and in what order, ensuring correct reassembly even when pieces arrive out of sequence

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8423688B2Multi-thread file input and output system and multi-thread file input and output program
Publication Date: 2013.04.16 HITACHI SYST LTD
  • US8423688B2 patent drawing
  • US8423688B2 patent drawing
  • US8423688B2 patent drawing

AI summary

A configuration performing processing of dividing a file into a plurality of pieces and transmitting the same even when a size of the file is large in transfer of files (input/output) between computers on a network is provided. A multi-thread file input/output system includes a first module performing processing of reading data from an input file, dividing the data into a plurality of pieces, and transmitting the plurality of pieces to a network by multi-thread processing in a transmitter computer; and a second module performing processing of receiving the plurality of pieces from the network and integrating and writing the same to an output file 5 in a receiver computer.