@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.}
}

