@TechReport{montague:swift, author = {Bruce R. Montague}, title = {The {Swift/RAID} Distributed Transaction Driver}, year = {1993}, month = {January}, number = {UCSC-CRL-93-99}, institution = {UC Santa Cruz}, keywords = {RAID, parallel I/O, distributed file system, transaction, pario-bib}, comment = {See other Swift papers, e.g., cabrera:pario and long:swift-raid. This paper describes the basic idea of a using a transaction driver to implement RAID over a distributed system. Then it spends most of the time describing the details of the implementation. The basic idea is that processors execute transaction drivers, which provide virtual CPUs to execute scripts of atomic 'instructions', where the instructions are high-level things like read block, write block, compute parity, etc. The transaction driver multiprocesses several scripts if necessary. (Although they describe it in the context of a RAID implementation it certainly could be used for other complex distributed services.) The instructions are often transaction pairs, which compile into a pair of instructions, one for this node and one for the remote node. This node sends the program to the remote node, and they execute them separately, keeping synchronized for transaction pairs when necessary. See also the newer paper in Computing Surveys, long:swift-raid.} }