DVFS: A Serverless Distributed Video File System

We are building DVFS, a serverless distributed video file system. DVFS is similar in spirit to xFS, but exploits properties of video data for improved functionality.

Our video file system uses workstations connected by a generic local area network (e.g., an ethernet), a common environment in computing research laboratories. Each workstation can act simultaneously as both a client and a server of multimedia data. As a client, a workstation plays video stored on one or more servers. As a server, a workstation is a file server for video data. Each client can receive video stored at several servers, and each server can service several clients. In addition to utilizing desktop machines as the server, our approach contains two new ideas: layered file service for fault tolerance and migrating video data for better load balancing.

The first idea, layered file service, works as follows. Each server is capable of delivering a reduced quality video stream to clients. The servers coordinate so that the client can reconstruct a high fidelity video stream from the data received from several servers. For example, if two servers (A and B) are delivering the "Star Wars" video to a client, server A might deliver the odd numbered frames and server B might deliver the even numbered frames. The client would reconstruct a valid bitstream from the two servers. This approach leads to a highly fault tolerant video file system, since if one server fails, the client can continue playback (albeit at reduced quality) until a fail-over protocol connects to client to another server.

In addition to providing fault tolerance, our design also provides for automatic migration of video data. Our scheme work like this. When a client wants to view a movie, it finds the closest server that is willing to deliver the movie. For example, suppose a client (B) views video data being sent across the network from a remote server (A). As B receives the stream, it caches stores the video onto local disk. Since the video may be sent over a congested network, only part of the video stream (e.g., every other frame), might be received. Later, another client (C), near B, requests the same movie. C will find that part of the data is stored on B, get what data it can from B, and request the missing data from A. C will then cache the data it receives from A. In this manner, data migrates from its source (A), to where it's being viewed (B). Popoular data is replicated in many servers, and rarely sent over the long haul network, reducing load and improving quality.

We are currently prototyping this system using CMT, a continuous media toolkit jointly developed by UC Berkeley and our research group, and Horus, a toolkit for building fault tolerant applications.

Funding for the project is provided under contract N00014-95-1-0799 from the ARPA Computing Systems Technology Office

DVFS Links

People Working on DVFS

Faculty

PhD Students

Undergraduate Students