Preface
The Internet has grown from a military network (designed primarily forcommunication among major research and government institutions) to a phenomenonthat has captured the world's attention and imagination over thepast few years. This explosive interest in the Internet was due to the developmentof the browser for the World Wide Web by Marc Anderson whilea graduate student at the University of Illinois. This new piece of softwareopened the door to new and novel ways of experiencing the Internet. Atits core, the main technology that the browser offered was a user interface,which allowed the viewing of different media types, such as text, images, andanimations. This glimpse at the possibility of delivering multimedia content,i.e., text, images, audio, video, animations, time series, etc., to users aroundthe world made the browser an overnight success, and hence the Internetbecame a household name.
However, soon after the beginning of the Internet revolution (in the mid1990s), it became apparent that the delivery of multimedia content requiresmore than just fancy user interfaces. Multimedia content can impose tremendousloads and constraints on the Internet's storage and retrieval infrastructure,and on networking infrastructure.
One of the main components of the storage and retrieval infrastructurefor the delivery of multimedia data on the Internet is the Streaming Media(SM) server. These servers are designed to store and deliver SM content,such as video and audio streams, to hundreds (or thousands) of simultaneoususers. For example, the Media nCUBE 3000 servers from nCUBE cansupport 20,000 MPEG-1 streams simultaneously. To support SM display, itis necessary to retrieve and display data at a prespecified rate; otherwise,the display will suffer from frequent disruptions and delays, termed hiccups.Moreover, SM much exceeds the resource demands of traditional data typesand requires massive amounts of space and bandwidth for its storage and display.For example, an MPEG-2 stream requires between 3-15 megabits persecond (Mb/s) bandwidth, which translates into 1.35-6.75 gigabytes (GB)of storage for a one-hour video clip. Storing thousands of such video clipscan easily consume terabytes and even petabytes of storage. To supportthousands of simultaneous users requires server bandwidths in excess of tensof thousands of megabits per second. To achieve these high bandwidth andmassive storage requirements for multi-user SM servers, disk drives are commonlycombined into disk clusters. Magnetic disks are usually the storagemedia of choice for such systems because of their high performance andmoderate cost. With current technology and prices, other storage technologiesare either slow (magneto-optical disks), provide limited random access(tapes), or have limited write capabilities (CD-ROM, DVD). However, otherstorage technologies can play an important role in special cases as discussedin this textbook.
This textbook is based on our research in the field of SM servers since theearly 1990s. Its objective is to present an in-depth introduction to SM serverdesign, with an emphasis on architectural and implementation aspects of thedesign. This textbook is designed for senior level undergraduate courses orfirst year graduate level courses, with a primary focus on the design and implementationof SM servers. Students need a strong background in operatingsystems and database systems.
The material in this textbook can be divided into two parts: 1) basicsof SM server design, and 2) advanced topics in SM server design. PartI, Chapter 1 discusses the fundamentals of SM systems. Subsequently, inChapter 2, we discuss the design of SM servers in the context of a singledisk platform. Finally, in Chapter 3, we extend the design of the SM serverto a multi-disk platform. In Part II, we start off by discussing low latencysystem design for a special class of applications, namely digital authoringtools, in Chapter 4. In Chapter 5, we extend the SM server design to adapt toheterogeneous disk platforms. In Chapter 6, we discuss fault tolerance issuesin SM server design. In Chapter 7, we introduce the design of a hierarchicalstorage system for SM servers. In Chapter 8, we consider a distributed SMserver design. In Chapter 9, we present a Super Streaming paradigm, wherethe delivery rate of the SM objects is higher than their consumption rate. InChapter 10, we present the design and implementation of a second generationSM server, namely Yima. To stress the implementation aspects of SM serverdesign, a scaled-down version of Yima SM server software, Yima-PersonalEdition SM server, is included as a companion CD with this textbook. Thisserver software is licensed through the University of Southern California'sIntegrated Media System Center (IMSC). We provide the complete sourcecode of the personal edition server software with this textbook. This SMserver can run on a single disk platform, using the Linux operating system,as described in Appendix A. Students can use the given source code to extendthe SM server design, e.g., extend the server design to run on a multi-diskplatform. We provide a set of exercises, however, students and instructorsare free to experiment as they see necessary.