Variable Chunk Size File Transfer Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Quantity of substance
If file is divided into many small chunks, then memory buffer requirements are reduced, but chunking overhead increases significantly
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.
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.
3Productivity
If variable chunk size is implemented, then network performance and resource utilization improve, but system complexity increases
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.
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.
4Productivity
If large chunk size is used, then number of chunks and overhead are reduced, but memory buffer requirements increase
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.
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.
Data Source
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.


