Swift: Using Distributed Disk Striping to Provide High I/O Data Rates
Appeared in Computing Systems 4(4).
Abstract
We present an I/O architecture, called Swift, that addresses the problem of data rate mismatches between the requirements of an application, storage devices, and the interconnection medium. The goal of Swift is to support high data rates in general purpose distributed systems.
Swift uses a high-speed interconnection medium to provide high data rate transfers by using multiple slower storage devices in parallel. It scales well when using multiple storage devices and interconnections, and can use any appropriate storage technology, including high-performance devices such as disk arrays. To address the problem of partial failures, Swift stores data redundantly.
Using the Unix operating system, we have constructed a simplified prototype of the Swift architecture. The prototype provides data rates that are significantly faster than access to the local SCSI disk, limited by the capacity of a single Ethernet segment, or in the case of multiple Ethernet segments by the ability of the client to drive them.
We have constructed a simulation model to demonstrate how the Swift architecture can exploit advances in processor, communication and storage technology. We consider the effects of processor speed, interconnection capacity, and multiple storage agents on the utilization of the components and the data rate of the system. We show that the data rates scale well in the number of storage devices, and that by replacing the most highly stressed components by more powerful ones the datarates of the entire system increase significantly.
Publication date:
November 1991
Authors:
Luis-Felipe Cabrera
Darrell D. E. Long
Projects:
Available media
Full paper text: PDF
Bibtex entry
@article{cabrera-cs91, author = {Luis-Felipe Cabrera and Darrell D. E. Long}, title = {Swift: Using Distributed Disk Striping to Provide High I/O Data Rates}, journal = {Computing Systems}, pages = {405-436}, volume = {4}, number = {4}, month = nov, year = {1991}, }