On managing continuous media data

To deliver a large volume of continuous media data (i.e., video and audio) from a media server to a large number of simultaneous clients poses at least three challenges. First, the resources at the server side must be carefully allocated and scheduled to maximize throughput. Second, the server must deliver the data to the client just-in-time so that the media data in the client's buffer neither overflows nor underflows. Third, the latency between the time when the data is requested and when the data is available for the client to decode and playback must be short to support interactive multimedia applications. To address these challenges, the conventional wisdom alms to minimize latency and maximize the utilization of the server's disk. My thesis addresses these challenges in three novel ways. First, contrary to the conventional wisdom, I show that spacing out IOs with delay may in fact lead to higher throughput, since memory, rather than disk, is the resource bottleneck of the media server. I show how to use memory judiciously and how to minimize the per-stream cost so that the throughput can be maximized. Second, I propose intelligent data placement and disk scheduling policies to minimize the initial latency of media data delivery. My analytical model shows that my schemes can bring the worst-case initial latency down to just a fraction of a second. I also apply these techniques to manage parallel disks efficiently. Finally, I design and implement a client side MEmory and Disk Integrated Cache (MEDIC), which buffers the variability of the data delivery (due to VBR and potential channel disturbances) and supports time-shift VCR operations at the client side using the local disk. Through quantitative analysis, simulation and implementation, my work demonstrates that a smart media client using MEDIC complements a good media server design and that together they provide a complete end-to-end solution for managing continuous media data.