Replicated Distributed Programs

Abstract

This dissertation presents a new software architecture for fault- tolerant distributed programs. This new architecture allows replication to be added transparently and flexibly to existing programs. Tuning the availability of a replicated program becomes a programming-in-the-large problem that a programmer need address only after the individual modules have been written and verified. The increasing reliance that people place on computer systems makes it essential that those systems remain available. The low cost of computer hardware and the high cost of computer software make replicated distributed programs an attractive solution to the problem of providing fault-tolerant operation. Several issues relating to programming languages and environments for reliable distributed applications are discussed. Integration of the replication mechanisms into current programming languages is accomplished by means of stub compilers. Four stub compilers are examined, and some lessons learned from them are presented. A language for specifying troupe configurations is described, and the design of a configuration manager, a programming-in-the-large tool for configuring replicated distributed programs, is presented. The goal is to construct programs that automatically tolerate crashes of the underlying hardware.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 01, 1985
Accession Number
ADA169226

Entities

People

  • Eric C. Cooper

Organizations

  • University of California, Berkeley

Tags

Communities of Interest

  • Engineered Resilient Systems
  • Ground and Sea Platforms
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • C Programming Language
  • Computer Networks
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Control Systems
  • Failure Mode And Effect Analysis
  • Graphical User Interface
  • Information Science
  • Lisp Programming Language
  • Local Area Networks
  • Network Protocols
  • Network Science
  • Operating Systems
  • Probabilistic Models
  • Programming Languages

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Educational Psychology