Variable Chunk Size File Transfer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transferring large files across computing devices often results in decreased network performance due to significant chunking overhead when using fixed chunk sizes, especially for files exceeding 1 GB, as it leads to a large number of chunks and increased resource utilization.

Innovation Solution

Determine a variable chunk size based on real-time factors such as available memory, memory usage ratio, and storage limitations in the receiving device, using a system comprising engines like available memory, raw chunk size, variable chunk size, and transfer engines to optimize chunk size for efficient file transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If fixed chunk size is used for file transfer, then simplicity of implementation is maintained, but network performance deteriorates due to significant chunking overhead for large files

Engineering Contradiction:
Improvechunking implementation complexityVSAvoidnetwork performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic chunk size adjustment by continuously monitoring available memory in the receiving device and adapting the chunk size accordingly. The chunk size is no longer fixed but varies over time based on real-time memory conditions, allowing the system to optimize network performance while maintaining manageable complexity through automated adaptation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of chunk size from a fixed value to a variable determined by available memory conditions. By calculating chunk size as a function of available memory (e.g., chunk size = available memory / number of parallel transfers), the system adapts to different file sizes and memory conditions, resolving the contradiction between implementation simplicity and network performance.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If file is divided into many small chunks, then memory buffer requirements are reduced, but chunking overhead increases significantly

Engineering Contradiction:
Improvememory buffer usageVSAvoidtransfer efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent dynamically adjusts the chunk size parameter based on available memory conditions. When memory is abundant, larger chunks are used to reduce overhead; when memory is constrained, smaller chunks are used to fit buffer limitations. This dynamic parameter adjustment optimizes the balance between memory usage and transfer efficiency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements feedback by monitoring available memory in the receiving device and using this information to adjust chunk size. The receiving device sends memory status information back to the sending device, which then adapts its chunking strategy accordingly, creating a closed-loop system that optimizes both memory usage and transfer efficiency.

Inventive Principle:
Principle #23Feedback

3Productivity

If variable chunk size is implemented, then network performance and resource utilization improve, but system complexity increases

Engineering Contradiction:
Improvenetwork performanceVSAvoidchunk size determination system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service by automatically determining optimal chunk sizes without manual intervention. The sending device autonomously monitors memory conditions, calculates appropriate chunk sizes, and adjusts the transfer strategy in real-time. This automation reduces the perceived complexity for users while maintaining high network performance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The feedback mechanism provides structured information exchange between sending and receiving devices about memory status. This standardized feedback protocol manages system complexity by providing clear, actionable data that drives automatic chunk size adjustment, making the variable chunk size implementation manageable despite increased functionality.

Inventive Principle:
Principle #23Feedback

4Productivity

If large chunk size is used, then number of chunks and overhead are reduced, but memory buffer requirements increase

Engineering Contradiction:
Improvechunking overheadVSAvoidmemory buffer size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent makes chunk size dynamic rather than static, allowing it to expand or contract based on real-time memory availability. When the receiving device has abundant memory, larger chunks are used to reduce overhead; when memory is limited, chunk size automatically decreases. This dynamic behavior resolves the contradiction between overhead reduction and memory buffer requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The chunk size parameter is changed from a fixed large value to a variable determined by available memory conditions. The system calculates optimal chunk size as a function of memory availability, allowing it to adapt between large and small chunks as needed, thereby balancing overhead reduction with memory buffer constraints.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9973564B2Determining variable chunk size for transfer of a file
Publication Date: 2018.05.15 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9973564B2 patent drawing
  • US9973564B2 patent drawing
  • US9973564B2 patent drawing

AI summary

Example implementations relate to determining variable chunk size for transfer of a file. For example, a system for determining variable chunk size for transfer of a file may include an available memory engine to determine an amount of available memory in a receiving server, where the receiving server is to receive a transferred file greater than a threshold size from a sending server, a raw chunk size engine to determine a raw chunk size for transfer of the file based on the available memory of the receiving server and a memory usage ratio for the receiving server, and a variable chunk size engine to determine a variable chunk size for transfer of the file based on the raw chunk size and a memory storage integer limitation of the receiving server. The system may further include a transfer engine to cause a transfer of the file from the sending server to the receiving server using the variable chunk size.