Peer-to-Peer Video-on-Demand Service with Segmented Pre-fetching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional client-server video-on-demand services face scalability issues due to limited server resources and bandwidth, and existing peer-to-peer solutions are best-effort and do not fully address system performance requirements, particularly in supporting asynchronous users and minimizing start-up delays.
Innovation Solution
A performance-aware peer-to-peer video-on-demand service model that incorporates segmented video sharing and a data-driven approach with real-time scheduling, where peers pre-fetch video sub-clips and the server provides complementary streaming to ensure timely delivery and improved user experience.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If peer-to-peer downloading is used to reduce server workload, then system scalability is improved, but system performance (timely video delivery) may deteriorate
Solution Approach 1:
The system pre-fetches video sub-clips before they are needed by asynchronous users. When a user joins the system, previously downloaded sub-clips are made available immediately, eliminating start-up delays. This preliminary action ensures that video content is ready before the user needs it, maintaining high system performance while scaling to many users.
Solution Approach 2:
The video stream is divided into discrete sub-clips that can be independently downloaded and cached by peers. This segmentation allows the system to manage large videos through smaller units, enabling efficient peer-to-peer distribution while ensuring timely delivery by serving only the portions needed at each moment.
2Reliability
If traditional client-server model is used, then system performance is maintained, but system scalability deteriorates due to limited server resources
Solution Approach 1:
Peers in the system download and cache video content for themselves and subsequently serve other peers by sharing their cached copies. This self-service mechanism distributes the workload across all users, transforming the system from a server-centric model to a peer-centric model that automatically scales with user count without requiring additional server resources.
Solution Approach 2:
Instead of the server streaming the entire video to each user sequentially, the system creates copies of video sub-clips that are distributed to multiple peers simultaneously. Each peer holds a copy that can be served to other peers, exponentially increasing the system's capacity to serve users without the server needing to process every request individually.
3Productivity
If best-effort peer-to-peer downloading is used, then server workload is reduced, but performance requirements are not fully met
Solution Approach 1:
The system incorporates feedback mechanisms where peers report their download progress and performance status to the server. Based on this feedback, the server dynamically adjusts the number of sub-clips to pre-fetch and the level of complementary streaming provided, ensuring that performance requirements are met while maximizing server workload reduction.
Solution Approach 2:
The system dynamically adapts its behavior based on real-time conditions. The server adjusts the pre-fetching strategy and complementary streaming based on current system state, user performance requirements, and network conditions. This dynamic adjustment ensures that performance requirements are met under varying conditions while maintaining high scalability.
Data Source
AI summary
A method is described including receiving a streamed leading content sub-clip, determining a set of needed content sub-clips, locating one of the set of needed content sub-clips and downloading the located content sub-clip. A system for providing content-on-demand is described having a peer, a server and a tracker. The tracker may be co-located with the server. The peer includes means for receiving a streamed leading content sub-clip, means for determining a set of needed content sub-clips, means for locating one of the set of needed content sub-clips and means for downloading the located content sub-clip.


