Connection Pooling for Video Streaming in CDNs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video streaming in content delivery networks experiences slow access and video fluency issues due to the frequent setup and teardown of TCP connections between proxy and origin servers, leading to inefficient use of network resources.
Innovation Solution
Implementing a bandwidth-aware connection pooling mechanism that maintains reusable TCP connections between proxy and origin servers, allowing for efficient reuse and management of these connections, and strategically utilizing caching servers to supplement bandwidth when needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If TCP connections are dedicated to each request between proxy and origin servers, then connection reliability is improved, but connection setup overhead increases and access speed deteriorates
Solution Approach 1:
The system pre-establishes multiple TCP connections between proxy servers and origin servers before actual video streaming requests arrive. These connections are maintained in a connection pool and reused for subsequent requests, eliminating the need for repeated connection setup and teardown operations.
Solution Approach 2:
A single TCP connection in the connection pool can serve multiple video streaming requests from different clients or the same client. The connection becomes a universal resource that can be allocated to different requests as needed, rather than being dedicated to a single request.
2Device complexity
If TCP connections are frequently setup and torn down for each video chunk request, then resource allocation is simplified, but network performance deteriorates and video fluency is impacted
Solution Approach 1:
The connection pool is pre-populated with established TCP connections before video streaming begins. This preliminary setup eliminates the need for frequent connection establishment during video playback, ensuring smooth and continuous video delivery without interruptions from connection overhead.
Solution Approach 2:
TCP connections in the connection pool are maintained open and ready for reuse throughout the video streaming session. Rather than being torn down after each use, the connections remain active and can be immediately reused for subsequent video chunk requests, ensuring continuous data flow without interruption.
3Loss of time
If connection pooling is implemented between proxy and origin servers, then connection setup overhead is reduced, but connection management complexity increases
Solution Approach 1:
The patent introduces a connection manager as an intermediary component that handles the complexity of connection pool management. This manager is responsible for establishing, maintaining, and allocating connections in the pool, shielding other system components from the complexity of direct connection management while enabling efficient connection reuse.
4Speed
If reusable connections are maintained in a connection pool, then access speed is improved, but network resource consumption increases
Solution Approach 1:
The system maintains a connection pool with a limited number of pre-established connections, which is sufficient to handle the expected video streaming load without over-provisioning. This partial action approach balances the need for fast access with reasonable resource consumption, avoiding the extreme of maintaining excessive connections that would waste network resources.
Data Source
AI summary
System and methods for connection pooling for video streaming in content delivery networks (CSNs) are provided. An embodiment method for connection pooling in a content delivery network (CDN) by a proxy server includes receiving, from a client, a request for media content, sending, to a control server, a query to locate an origin media server having the media content if the media content is cache-missing, receiving, from the control server, information regarding the origin media server having the media content requested by the client, and forwarding the request for the media content to the origin media server having the media content using a reusable connection from a pool of the reusable connections between the proxy server and the origin media server if the reusable connection is unoccupied.


