Specifying Graceful Degradation

A description is given of the relaxation lattice method, a new approach to specifying graceful degradation for a large class of programs. A relaxation lattice is a lattice of specifications parameterized by a set of constraints, where the stronger the set of constraints, the more restrictive the specification. While a program is able to satisfy its strongest set of constraints, it satisfies its preferred specification, but if changes to the environment force it to satisfy a weaker set, then it will permit additional weakly consistent computations which are undesired but tolerated. The use of relaxation lattices is illustrated by specifications for programs that tolerate (1) faults, such as site crashes and network partitions, (2) timing anomalies, such as attempting to read a value too soon after it was written, (3) synchronization conflicts, such as choosing the oldest unlocked item from a queue, and (4) security breaches, such as acquiring unauthorized capabilities. >

[1]  Mostafa H. Ammar,et al.  Performance Characterization of Quorum-Consensus Algorithms for Replicated Data , 1989, IEEE Trans. Software Eng..

[2]  William E. Weihl,et al.  Specification and implementation of resilient, atomic data types , 1983, ACM SIGPLAN Notices.

[3]  William E. Weihl,et al.  SPECIFICATION AND IMPLEMENTATION OF ATOMIC DATA TYPES , 1984 .

[4]  Jo-Mei Chang,et al.  Reliable broadcast protocols , 1984, TOCS.

[5]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[6]  Michael J. Fischer,et al.  Sacrificing serializability to attain high availability of data in an unreliable network , 1982, PODS.

[7]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[8]  Hector Garcia-Molina,et al.  Using semantic knowledge for transaction processing in a distributed database , 1983, TODS.

[9]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[10]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[11]  T. S. E. Maibaum,et al.  Database Specification , 1985, DS-1.

[12]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[13]  Alfred Z. Spector,et al.  Synchronizing shared abstract types , 1984, TOCS.

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

[15]  Kenneth P. Birman Replication and fault-tolerance in the ISIS system , 1985, SOSP 1985.

[16]  Greg Thiel,et al.  LOCUS a network transparent, high reliability distributed system , 1981, SOSP.

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

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

[19]  T. S. E. Maibaum,et al.  Large Database Specification from Small Views , 1985, FSTTCS.

[20]  Maurice Herlihy,et al.  Specifying graceful degradation in distributed systems , 1987, PODC '87.

[21]  Leslie Lamport,et al.  Artificial Intelligence and Language Processing ]acques Cohen Editor a Simple Approach to Specifying Concurrent Systems , 2022 .

[22]  D. Elliott Bell,et al.  Secure Computer System: Unified Exposition and Multics Interpretation , 1976 .

[23]  Philip A. Bernstein,et al.  The failure and recovery problem for replicated databases , 1983, PODC '83.

[24]  Mary Shaw,et al.  Specifying reliability as a software attribute , 1982 .

[25]  Flaviu Cristian A Rigorous Approach to Fault-Tolerant System Development (Extended Abstract) , 1983, Logic of Programs.

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