Swift/RAID: A Distributed RAID System

Computing Systems 7(3)

1994View full paper

Abstract

The Swift I/O architecture is designed to provide high data rates in support of multimedia type applications in general purpose distributed environments through the use of distributed striping. Striping techniques place sections of a single logical data space onto multiple physical devices. The original Swift prototype was designed to validate the architecture, but did not provide fault tolerance. We have implemented a new prototype of the Swift architecture that provides fault tolerance in the distributed environment in the same manner as RAID levels 4 and 5. RAID (Redundant Arrays of Inexpensive Disks) techniques have recently been widely used to increase both performance and fault tolerance of disk storage systems. The new Swift/RAID implementation manages all communication using a distributed transfer plan executor which isolates all communication code from the rest of Swift. The transfer plan executor is implemented as a distributed finite state machine which decodes and executes a set of reliable data transfer operations. This approach enabled us to easily investigate alternative architectures and communications protocols. Providing fault tolerance comes at a cost, since computing and administering parity data impacts Swift/RAID data rates. For a five node system, in one typical performance benchmark, Swift/RAID level 5 obtained 87% of the original Swift read throughput and 53% of the write throughput. Swift/RAID level 4 obtained 92% of the original Swift read throughput and 34% of the write throughput.

BibTeX

@article{long-cs94,
  author       = {Darrell D. E. Long and Bruce R. Montague and Luis-Felipe Cabrera},
  title        = {Swift/RAID: A Distributed RAID System},
  journal      = {Computing Systems},
  volume       = {7},
  number       = {3},
  pages        = {333--359},
  year         = {1994}
}
View full paper