Skip to Main Content
In this paper, we consider a hybrid P2P video on-demand architecture that utilizes both the server and the peer resources for efficient transmission of popular videos. In our system architecture, each peer dedicates some cache space to store a particular segment of a video file as well as some of its upload bandwidth to serve the cached segment to other peers. Peers join the system and issue a streaming request to a control server. Control server directs the peers to streaming servers or to other peers who have the desired video segments. Control server also decides which peer should cache which video segment. Our main contribution in this paper is to determine the proper caching strategies at peers such that we minimize the average load on the streaming servers. To minimize the server load, we pose the caching problem as a supply-demand-based utility optimization problem. By exploiting the inherent structure of a typical on-demand streaming application as well as the availability of a global view on the current supply-demand at the control server, we demonstrate how the system performance can be significantly improved over the brute-force caching decisions. In our analysis, we mainly consider three caching mechanisms. In the first mechanism (cache prefetching), a segment is prefetched to a given peer for caching purposes upon peer's arrival to the system regardless of whether that segment is currently demanded by that peer or not. In the second mechanism (opportunistic cache update), a peer has the option of replacing the segment that is currently in its cache with the last segment that it finished streaming. In the third mechanism, we combine both mechanisms as a hybrid caching strategy. In particular, we find that a dynamic-programming (DP)-based utility maximization solution using only the cache update method performs significantly better in reducing the server load. Furthermore, our findings suggest that even less sophisticated cache update solutions can perfo- - rm almost as good as prefetching strategies in interesting regions of operation.