Video-on-demand (VOD) refers to video services in which users can request any video program from a server at any time. VOD has important applications in entertainment, education, information, and advertising, such as movie-on-demand, distance learning, home shopping, interactive news, etc.
In order to provide VOD services accommodating a large number of video titles and concurrent users, a VOD system has to be scalable --- scalable in storage and scalable in streaming capacity. Our goal is to design such a system with low cost, low complexity, and offering high level of service quality (in terms of, for example, user delay experienced or user loss rate).
Storage scalability is achieved by using a hierarchical storage system, in which video files are stored in tertiary libraries or jukeboxes and transferred to a secondary level (of magnetic or optical disks) for display. We address the design of such a system by specifying the required architectural parameters (the bandwidth and storage capacity in each level) and operational procedures (such as request scheduling and file replacement schemes) in order to meet certain performance goals.
Scalability in streaming capacity can be achieved by means of request batching, in which requests for a video arriving within a period of time are grouped together (i.e., ``batched'') and served with a single multicast stream. The goal here is to achieve the trade-off between the multicasting cost and user delay in the system. We study a number of batching schemes (in terms of user delay experienced, the number of users collected in each batch, etc.), and how system profit can be maximized given user's reneging behaviour.
Both storage and streaming scalabilities can be achieved with a distributed servers architecture, in which video files are accessed from servers distributed in a network. We examine a number of caching schemes in terms of their requirements in storage and streaming bandwidth. Given certain cost functions in storage and streaming, we address when and how much a video file should be cached in order to minimize the system cost. We show that a distributed servers architecture can achieve great cost savings while offering users low start-up delay.