REPLICATION AND RECONFIGURATION IN A DISTRIBUTED MAIL REPOSITORY

Conventional approaches to programming produce centralized programs that run on a single computer. However, an unconventional approach can take advantage of low-cost communication and small, inexpensive computers. A distributed program provides service through programs executing at several nodes of a distributed system. Distributed programs can offer two important advantages over centralized programs: high availability and scalability. In a highly-available system, it is very likely that a randomly-chosen transaction will complete successfully. A scalable system''s capacity can be increased or decreased to match changes in the demands placed on the system. When a node is unavailable because of maintenance or a crash, transactions may fail unless copies of the node''s information are stored at other nodes. Thus, high availability requires replication of data. Both the maintenance of a highly-available system and scalability require the ability to modify and extend a system while it is running, called dynamic reconfiguration or simply reconfiguration. This thesis considers the problem of building scalable and highly-available distributed programs without using special processors with redundant hardware and software. It describes a design and implementation of an example distributed program, an electronic mail repository. The thesis focuses on how to design and implement replication and reconfiguration for the distributed mail repository, considering these questions in the context of the programming language Argus, which was designed to support distributed programming. The thesis makes three distinct contributions. First, it presents the replication techniques chosen for the distributed repository and a discussion of their implementation in Argus. Second, it describes a new method for designing and implementing reconfigurable distributed systems. The new method allows replacement of software components while preserving their state, but requires no changes to the underlying system or language. This contrasts with previous work on guardian replacement in Argus. Third, the thesis evaluates the utility of Argus for applications involving replication and reconfiguration.

[1]  Toshimi Minoura,et al.  Resilient Extended True-Copy Token Scheme for a Distributed Database System , 1982, IEEE Transactions on Software Engineering.

[2]  Roger M. Needham,et al.  Experience with Grapevine: the growth of a distributed system , 1984, TOCS.

[3]  Derek L. Eager,et al.  Achieving robustness in distributed database systems , 1983, TODS.

[4]  Barbara Liskov,et al.  Guardians and Actions: Linguistic Support for Robust, Distributed Programs , 1983, TOPL.

[5]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[6]  Michael Stonebraker,et al.  Concurrency Control and Consistency of Multiple Copies of Data in Distributed Ingres , 1979, IEEE Transactions on Software Engineering.

[7]  David K. Gifford,et al.  The TWA reservation system , 1984, CACM.

[8]  Kenneth P. Birman,et al.  Low cost management of replicated data in fault-tolerant distributed systems , 1986, TOCS.

[9]  M. P. Herlihy REPLICATION METHODS FOR ABSTRACT DATA TYPES , 1984 .

[10]  Philip A. Bernstein,et al.  Categories and Subject Descriptors: H.2.4 [Database Management]: Systems. , 2022 .

[11]  Alfred Z. Spector,et al.  An algorithm, for replicated directories , 1983, PODC '83.

[12]  E. B. Moss,et al.  Nested Transactions: An Approach to Reliable Distributed Computing , 1985 .

[13]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[14]  Philip A. Bernstein,et al.  An algorithm for concurrency control and recovery in replicated distributed databases , 1984, TODS.

[15]  William E. Weihl,et al.  Implementation of resilient, atomic data types , 1985, TOPL.

[16]  M. Herlihy A quorum-consensus replication method for abstract data types , 1986, TOCS.

[17]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[18]  Jon Postel,et al.  Simple Mail Transfer Protocol , 1981, RFC.

[19]  Robert Thomas,et al.  Maintenance of duplicate databases , 1975, RFC.

[20]  D. H. Crocker,et al.  Standard for the format of arpa intemet text messages , 1982 .

[21]  Robert H. Thomas,et al.  A Majority consensus approach to concurrency control for multiple copy databases , 1979, ACM Trans. Database Syst..

[22]  Toby Bloom,et al.  Dynamic module replacement in a distributed programming system , 1983 .

[23]  Edward Balkovich,et al.  Computing in Higher Education: The Athena Experience , 1985, Computer.

[24]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[25]  Maurice Herlihy,et al.  A Value Transmission Method for Abstract Data Types , 1982, TOPL.

[26]  Sreekaanth S. Isloor,et al.  The Deadlock Problem: An Overview , 1980, Computer.