Intermediary Server Data Buffering for Connection Timeout Avoidance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data storage systems, connections between clients and backend servers can be disrupted due to idle timeouts, especially when the connection between the client and the client-facing server is slow or inconsistent, leading to potential disconnection and data loss.
Innovation Solution
An intermediary server manages data transfers by buffering data from clients and determining output rates based on input rates and timeout values to maintain connections with backend servers, ensuring data is sent at optimal rates to avoid timeouts and maintain connection stability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the connection between client and client-facing server is slow or inconsistent, then data transfer speed is reduced, but the connection to data storage server may be disconnected due to idle timeout
Solution Approach 1:
The system performs preliminary actions by establishing the connection to the data storage server before the client connection is fully ready, and by pre-buffering data to ensure the connection remains active during client-side transfer variations. The server connection is established in advance and maintained open with periodic data pushes even when client data arrival is slow.
Solution Approach 2:
The client-facing server acts as an intermediary between the client and the data storage server. It buffers incoming client data and manages the pacing of data transmission to the storage server, decoupling the two connections and allowing them to operate at different speeds without directly affecting each other.
2Reliability
If data is buffered to maintain connection to data storage server, then connection stability is improved, but buffer management complexity increases
Solution Approach 1:
The system implements self-service through automatic buffer management where the client-facing server autonomously monitors buffer status, determines when to push data to the storage server, and adjusts transmission pacing without requiring complex external control mechanisms or manual intervention.
Solution Approach 2:
The system changes parameters dynamically by adjusting the data transmission rate to the storage server based on buffer fill level, client data arrival rate, and connection timeout thresholds. These parameter adjustments are made automatically to maintain connection stability while optimizing data flow.
3Duration of action of moving object
If connection is kept open to data storage server, then data transfer continuity is improved, but bandwidth is consumed during idle periods
Solution Approach 1:
Instead of maintaining continuous high-rate data transmission, the system uses periodic action by pushing data to the storage server in controlled intervals based on buffer availability and timeout requirements. The connection remains open but data transmission occurs periodically rather than continuously, reducing idle bandwidth consumption.
Data Source
AI summary
A system for scheduling transmission times to avoid connection timeouts includes a memory configured to store data in a buffer for upload to a storage system. The system also includes one or more computing devices configured to implement a connection manager. The connection manager is configured to establish a connection to a storage system. The connection manager is configured to iteratively repeat, until the data transfer operation is completed, begin transmitting the data from the buffer via the connection to the storage system, stop transmitting the data from the buffer via the connection to the storage system, where at least a portion of the data is retained in the buffer, determine a time to resume transmitting the data from the buffer via the connection to the storage system to avoid a connection timeout for the connection to the storage system, and wait until the time to resume.


