The present invention relates to peer-to-peer networking and, in particular, to prefix caching for video-on-demand (VoD) services.
Traditionally, digital video has been provided using a streaming client-server model. When a client request for admission is received at a server the server ascertains whether it has enough resources to serve the client's request and whether there is enough bandwidth along the path between the server and the client to allow acceptable communication of the requested video. If so, the server streams video content to the client.
Due to the limited computation and storage resources at the server and limited bandwidth in the network connecting the server and clients, the scalability of client-server streaming service is limited. Peer-to-peer techniques have been used to improve performance in comparison to purely streaming service.
In a peer-to-peer service, peer devices are implemented with both client style and server style capabilities. This allows a receiving peer to receive content from a serving peer device, with the serving peer device acting as a server device. It is understood that, at any given time a peer device may act as a receiving peer and/or a serving peer depending on the current requirements of the system. This is possible under circumstances where the serving peer has the requisite video data and I/O capability, and where sufficient network bandwidth is available between the serving peer and the receiving peer. Thus Quality of Service aware peer-to-peer video-on-demand service improves system capacity by taking advantage of serving peer's uplink bandwidth while offering viewing quality comparable to that available from the traditional client-server service model. Meanwhile, the server remains available to service urgent data requirements.
As described in a related application, one urgent data requirement serviced by the server is the need to stream a leading sub clip of the video program data for immediate playback at the receiving peer. This reduces a delay to the beginning of presentation that the receiving peer would otherwise experience after admission. The streaming of leading sub clips can represent a significant load on the server, and may adversely affect system scalability. Indeed, the server may become saturated quickly as the rate of requests for admission increases. Consequently additional receiving peer devices cannot be accommodated.
In peer-to-peer live streaming, it is difficult to minimize start-up delay without sacrificing system scalability. In peer-to-peer video-on-demand service, allowing asynchronous users to share video data without undue startup delay remains a challenge.
A video receiving peer device, according to one embodiment of the invention, is adapted to receive a video signal from one or more of a video server and a serving peer device for concurrent or subsequent display. The video receiving peer device includes a memory portion adapted to store a leading sub clip (also known as a video prefix). The stored prefix allows rapid commencement of a video display and improved admissions performance.
Related applications are directed towards performance aware peer-to-peer video-on-demand service, and to admission control for such a service. These applications incorporate peer-to-peer downloading into the traditional client-server video-on-demand service model. In various embodiments, the peer-to-peer downloading carries the major data transfer load and significantly reduces the workload imposed on the server.
Video-on-demand service allows a user to select and watch video content over a network at a time selected by the user. The related application includes a segmented peer-to-peer video sharing model that enables content sharing in a video-on-demand setting. The performance issue is addressed by incorporating a performance aware peer-to-peer data downloading algorithm and server-assisted complementary streaming that collectively realize performance similar to the performance offered by the traditional client-server service model but supporting more users. In this system, the server devotes most of its resources to providing urgent data to meet the performance requirement and to streaming a video prefix to the receiving peer after the receiving peer is admitted to the system. The server's involvement in streaming the leading sub clips to the receiving peer consumes server bandwidth, however, and limits the number of receiving peers that can be admitted.
Surprising performance improvement is afforded by allowing each receiving peer to cache the video prefixes of one or more video programs. In various embodiments, a complete set of such prefixes are locally cached, making it possible to avoid leading sub clip streaming entirely. This significantly improves system scalability. More generally, the perceived performance at the receiving peer end is improved. The peer-to-peer downloading algorithm of the present invention is designed with the availability of cached video prefixes in mind.
The present invention is directed towards further improving the receiving peer's perceived video quality by timeshifting, reducing or eliminating leading sub clip streaming. According to various embodiments of the invention, the server has a number of tasks or services to perform including performing complementary streaming and uploading content to receiving peers in the peer-to-peer network. According to embodiments of the invention, video prefixes are transmitted from the server to receiving peer cache memories during periods of low network and/or server demand. Due to the limited bandwidth resources at the server and the server's responsibility to provide various services and perform various tasks, it is important to conduct admission control so that the receiving peers' perceived video quality meets user expectations. When cached prefixes are available, admission control parameters can be selected to allow additional video-on-demand receiving peers into the system.
In the present invention the method and apparatus for supporting admission control for a peer-to-peer video-on-demand service are designed to improve users' perceived video quality in a performance aware video-on-demand service environment were a cached video prefix is, or may be, available. The method and apparatus of the present invention monitor the current bandwidth usage and bandwidth usage history, and considers the availability of video prefixes, to determine if a request can be admitted into the video-on-demand system.
Accordingly, a method and apparatus for performing admission control in a peer-to-peer video-on-demand system are described, including determining if there is sufficient bandwidth to support a new request from a video playback device where a requisite video prefix is cached locally at the device, determining if there is sufficient bandwidth to admit the request without sacrificing quality of service for existing requests, accepting admission of the new request if both determining acts are positive and rejecting admission of the new request if either of the determining acts are negative. Also described is an apparatus for providing content to a video playback device in a peer-to-peer video-on-demand system including an admission control unit and a data engine component.
According to one embodiment of the invention, the availability of a pre-stored video prefix allows substantially immediate commencement of a requested video playback without allocating server bandwidth for streaming playback. By pre-storing a video prefix in the local cache memory, a delay between a user request and a corresponding commencement of playback is reduced or substantially eliminated without incurring the server and bandwidth costs associated with the streamed playback of the video prefix.
In one embodiment, the local cache memory includes a magnetic disk drive. In another embodiment, the local cache memory includes an optical disk drive. In still another embodiment of the invention, the local cache memory includes one or more of a dynamic RAM memory, a static RAM memory, a flash memory, a programmable read-only memory or another memory storage device.
It should be noted that a video playback device is any device capable of receiving and playing back video (stored or live) including but not limited to computers, laptops, personal digital assistants (PDAs) and mobile devices. A peer-to-peer network is not limited to a wired line network and may be a wireless or wired line network or a hybrid network employing both wired line and wireless connections.
Providing locally cached video prefixes significantly reduces video-on-demand server burden and allow allows improvements in scalability and quality of service. In addition, variations in network loading over time allow for the transfer of leading sub clips to local client caches from the server during intervals of relatively low network loading.
According to one embodiment of the invention, a peer-to-peer network server is responsible for three types of services: (i) uploading video prefixes for pre-caching into receiving peer memory devices (this pre-caching enables the receiving peers to start the playback immediately) (ii) uploading the video content of subsequent sub-clips to receiving peers through the peer-to-peer network by the server and (iii) serving complementary streaming of sub-clips to receiving peers when there is missing data in a sub-clip and the deadline of the sub-clip is reached.
The present invention is best understood from the following detailed description when read in conjunction with the accompanying drawings. The drawings include the following figures briefly described below where like-numbers on the figures represent similar elements:
The following description presents the invention in terms of peer-to-peer video-on-demand systems. One of ordinary skill in the art will appreciate, however, that the embodiments presented, including a preferred embodiment, are exemplary of the invention, and are not meant to be limiting. Accordingly, it is understood that the invention may be applied in a variety of embodiments including, for example, peer-to-peer audio on-demand systems and other multimedia systems.
The present invention overcomes the drawbacks discussed above. In part, the invention surprisingly improves system performance by storing leading multimedia sub clips (such as audio and/or video leading sub clips) in a receiving peer device of a peer-to-peer system (a peer-to-peer client device) prior to a request for service. Because of this advance, a request for video-on-demand service can be accommodated promptly and with little or no immediate incremental server loading. In addition, because the storage of leading sub clips can take place at any time prior to replay of the leading sub clip, timeshifting of leading data transfers can allow optimization of network loading schedules.
The demand for video content on the internet has the temporal pattern in which the request rate at peak time could be tens or even hundreds of orders of magnitude larger than the request rate when the traffic volume is lowest. This kind of traffic pattern allows the server to push video prefixes to the peer-to-peer receiving peers (such as, for example, set-top boxes) when network traffic is light. For example, the server could push the prefix of each video in the media library to the set-top boxes in the daytime of weekdays, when few clients request video content. Further, one of skill in the art will appreciate that it is now possible to hold short prefixes for hundreds of movies on a receiving peer such as a set-top box without significantly increasing the cost of the set-top box. Network bandwidth now tends to be the bottleneck.
The foregoing benefits, among others, are found in a video-on-demand system that includes a receiving peer storage device for storage of a video prefix at a receiving peer device. The storage device allows rapid access to the video prefix after admission of a receiving peer request. In this way, the receiving peer device is able to begin presenting a requested video program to a user without waiting for delivery of the video prefix by, for example, streaming from a dedicated server device or from a serving peer device. This video prefix caching is advantageous in a video-on-demand system such as, for example, a system having quality of service aware admission control capability.
The peer device 104 includes a peer device control portion 112 and a peer device storage portion 114. In the illustrated embodiment, the peer device control portion 112 includes a communications portion 116 and a playback portion 118. One of skill in the art will appreciate that various other arrangements are possible within the scope of the invention as disclosed herewith.
The communication portion 116 is adapted to receive video program data, and to store that data in the peer device storage portion 114. The playback portion 118 is adapted to retrieve at least a portion of the stored data from the peer device storage portion 114 and produce a video program display as requested, for example, by a user. As will be described in further detail below, the peer device storage portion is adapted to store one or more leading sub clips 120, 122 corresponding to respective video programs that the user might request.
In various embodiments, the server storage portion 108 and/or the peer device storage portion 114 is implemented as a magnetic hard disk drive. One of ordinary skill in the art will appreciate that the choice of a disk drive as a storage device represents one of many possible choices. Alternative embodiments of the invention include a peer storage device implemented as FLASH memory, Erasable Programmable Read-Only Memory (EEPROM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Magnetic RAM (MRAM), and Phase Change Random Access Memory (PRAM), among other alternatives.
The server device 102 includes a server network interface device 124 that is adapted to signalingly couple the server control portion 106 to a digital communication network 126 such as, for example, the Internet. The peer device 104 also includes a client network interface device 128 that is adapted to signalingly couple the client control portion 112 to the digital communication network 126. In this way, responsive for example to a user command, the peer device 104 can signal an admission request to the server device 102 and the server device 102 can convey an admission signal followed by video program data to the (now receiving) peer device 104.
In one embodiment of the invention, the video prefix data 120, 122 (as shown in
In one embodiment of the invention, the complement of video prefixes stored on the local storage device e.g., 114 includes one video prefix for each of the video programs e.g., 107, 109 stored on the storage device 108 of the server device 102. In another embodiment of the invention, the complement of video prefixes stored on the local storage device 114 includes a plurality of video prefixes corresponding to a subset of the video programs stored on the storage device 108 of the server device 102. This subset of video programs may be selected based on the active selection of a particular user, or the observed viewing habits of such a user, or upon observed viewing habits of a broader population of users such as, the population at large, among other selection modes.
When a new admission request is received at the server, it is routed to the admission controller. Based on the outcome from the admission controller process, the server sends an admission decision back to the requesting receiving peer device. If the receiving peer device is admitted, the admission control unit informs the data engine component of this decision.
Upon receipt of an affirmative admission decision, a receiving peer can immediately begin playing a cached video prefix out of local storage, is available. If no cached video prefix is available, the server streams the requisite prefix to the receiving peer, according to one embodiment. Concurrently the data engine component begins uploading data for following sub-clips through peer-to-peer network. If required to meet data priority demands, the server can also provide complementary streaming of following sub-clips.
In one embodiment of the invention, the receiving peer device seeks a first subsequent video segment immediately after commencing playing of the video prefix data from the local cache. In another embodiment of the invention, the client device delays seeking the first subsequent video segment until the quantity of data stored in a local playback cache (i.e., remaining playback time) falls below an established threshold.
During the playback of the first subsequent video segment, and of every later subsequent video segment, a deadline is set for complete receipt of the following video segment. In a further step of the illustrated method 416, if the following video segment has been completely received by expiration of the deadline 418, playback of the following video segment commences 420. Otherwise 422, additional data to complete the further video sub clip is received from the server on a complementary streaming basis 424. Thereafter, playback of the following video segment commences 420.
A further step of the illustrated method 426 includes evaluation of whether the current video sub clip is or is not the last video sub clip in the video program. If the current video subject is not the last video subject in the video program 430 then the receiving peer device rejoins the peer-to-peer network 414 to receive the next video sub clip. If the current video subject is the last sub clip of the current video program 428, then the illustrated portion of the method terminates 408.
According to various embodiments, the admission control device is integral with the server device. The admission control device ascertains whether the server and/or serving peer combination is capable of providing the requested program of video data with an acceptable quality of service. Such an arrangement is known as quality of service (QoS) aware admission control.
With the prefix caching, the server in performance aware peer-to-peer streaming service is responsible for three types of services: (i) uploading video prefixes for pre-caching into receiving peer memory devices (this pre-caching enables the receiving peer is to start the playback immediately) (ii) uploading the video content of subsequent sub-clips to receiving peers through the peer-to-peer network by the server and (iii) serving complementary streaming of sub-clips to receiving peers when there is missing data in a sub-clip and the deadline of the sub-clip is reached.
BW is used to denote the total server bandwidth. BWcomp-streaming denotes the bandwidth used for complementary streaming; and BWp2pdownloading denotes the bandwidth used for peer-to-peer downloading. The definitions of important symbols are included in Table 1.
comp-streaming
p2pdownloading
The complementary streaming bandwidth usage can be approximated by a Bernoulli random variable since complementary streaming rate is either r or zero. The admission controller keeps track of the amount of data that needs to be transmitted by complementary streaming for each sub-clip. This quantity is denoted by Scomp-streaming. The average complementary streaming data rate for this sub-clip is Scomp-streaming/T, where T is the sub-clip length. The admission controller maintains the average complimentary streaming rate information,
comp-streaming
=α·
comp-streaming+(1−α)·(Scomp-streaming/T) (1)
The weight, α, decides how quickly the average complementary streaming bandwidth usage catches up with the current value. Experiments show that a value around 0.95 offers good performance results.
Turning now to estimate the variance of
Var(
The server also keeps track of the amount of data that has been transmitted to the users through peer-to-peer network. The average server peer-to-peer uploading bandwidth,
p2pdownloading
=α·
p2pdowdoading+(1−α)·(Sp2pdownloading/T) (3)
With the statistics collected, the following formula is used to test if the request can be admitted:
N(
where N is the number of users, σ is the standard deviation of aggregate complementary streaming bandwidth, and β is the standard deviation weight.
The aggregated complementary streaming bandwidth usage is the sum of Ncomp-streaming Bernoulli random variables. According to the Central Limit Theorem, the sum of random variables can be approximated by a normal distribution and its standard deviation is governed by Equation (5).
In Equ (4), β is selected to be three to make sure that the required bandwidth is smaller than the available bandwidth with high probability. Thus the users' viewing quality will not degrade with the admission of new client.
The advantages of the present invention include an improved admission ratio. The admission ratio is defined as the fraction of client requests that are admitted to receive VoD service; average missing fraction as the fraction of video content that misses the playback time, which indicates the users viewing quality; and normalized workload as the product of video length and request rate (i.e. average number of requests per video length).
In the experiments, the average uplink bandwidth of clients is larger than the playback rate. One video is simulated with the length of 3600 seconds, and the prefix cache size is about 3% of the whole video length on average.
Along with the largely increased admission ratio (i.e. system scalability), prefix caching also brings better viewing quality similar to users than the no-prefix-caching peer-to-peer VoD. As shown in
In the experiments where
The fact that the increase of the storage space of 3% of the entire video library brings up system scalability by three folders clearly shows the effectiveness of prefix caching technique.
It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture.
In one embodiment, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.
In various embodiments of the invention, a video prefix is received at a receiving peer device in response to a multicast of video prefix data from a server device or from a serving peer device. The video prefix received may be selected as a function of the receiving peer device, the serving peer device, or the server device based on a selection profile. For example, the selection profile may represent a viewing preference of a user associated with the receiving peer device. Viewing preference may be entered by the user, or automatically developed based upon a viewing history at, for example, the receiving peer device. In another embodiment of the invention, the selection profile may be based upon, for example, a viewing history of a select population of users or a global population of users. In still another embodiment, a receiving peer device receives all available video prefixes provided by a particular server device or serving peer device. In another embodiment, the video prefix is not multicast, but directed to the particular receiving peer.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2007/001441 | 1/18/2007 | WO | 00 | 7/7/2009 |