A mong the many different types of media available for retrieval, retrieving full-motion, high-quality video in real time-video-on-demand (VoD)-poses the greatest challenges. Digital video not only requires significantly more storage space and transmission bandwidth than traditional data services, it must be delivered in time for continuous playback. Many studies conducted in the last decade have addressed these issues. One common architecture shared by most VoD systems is a single-server model. The video servers can range from a standard PC for small-scale systems to massively parallel supercomputers with thousands of processors for large-scale systems. However, this single-server approach has its limitations. The first of these limitations is capacity. When demand exceeds the server's capacity, one may need to replicate data to a new server. This doubles the system's storage requirements. To reduce storage overhead in replication and to balance the load among replicated servers, a number of studies have proposed replication algorithms based on video popularity as well as server heterogeneity, for example different storage and bandwidth. 1,2 A second approach partitions the video titles into disjointed subsets and stores each subset on a separate video server. Although this approach does not incur extra storage, it suffers from another problem-load balancing. Studies have shown that video retrieval is highly skewed in many applications because some videos are more popular than others. 3 Furthermore, the skewness changes with time, particularly when most users have seen a popular video and it becomes less popular. This implies that some video servers might become overloaded because of a popular title, while other servers might be underused. A third approach takes advantage of the scale economy in large VoD systems by batching multiple users to share a single multicast video stream. 4 Multicasting popular video titles into multiple channels in a staggered manner means a user requesting a popular video title can be batched into one of these multicast channels and share it with other users. However, this approach does not support full VCR-like controls because the client can only select preset multicast channels. In a more recent study, Li and Liao proposed a way to merge users into a multicast stream that supports full VCR-like controls. The effectiveness of the batching approach depends on the video access pattern as well as the scale of the system. Loosely speaking, batching is most effective when a large portion of the users view only a small portion of video titles. A second limitation of single-server VoD systems is that they cannot survive server failure. While replication can improve reliability, the storage requirement will multiply. Partitioning can confine a server failure to avoid bringing down all servers in the system, but it still suffers from the load-balancing problem discussed earlier. Finally, the batching approach is not intended to provide server fault tolerance and is also susceptible to server failure. The scalability and fault tolerance problems are due to the fundamental limitations of the singleserver architecture. Researchers have begun to investigate video server designs and implementations based on parallel video server architectures where video data are striped (rather than replicated or partitioned) across multiple servers. Designing video servers with parallel architectures not only breaks through the capacity limit of a single server, but also opens the way for serverlevel fault tolerance. Unlike replication and partition, server-level striping in parallel video servers achieves scalability without extra storage overhead. Moreover, the servers are load-balanced regardless of the skew in video popularities. This of course assumes each video stream is striped across all servers, which is likely because the stripe
In REF it is shown that distributed multimedia servers have benefits over single server architectures regarding scalability and server-level fault tolerance.
Parallel video servers: a tutorial
IEEE Multim.
IEEE Multim.
Computer Science