2005 · 141 citations · 26 references
ComputingComputer ScienceComputer SystemsFault ToleranceFault-tolerant ComputingSoftware EngineeringAvailability EngineeringFault Tolerance DesignHigh AvailabilityReliable System DesignSoftware Fault ToleranceSoftware MaintenanceFault Tolerance MechanismsHigh-availability SystemsRestartRestart MechanismsRestartabilitySoftware Reliability Engineering
Even after decades of software engineering research, complex computer systems still fail, primarily due to nondeterministic bugs that are typically resolved by rebooting. Conceding that Heisenbugs will remain a fact of life, we propose a systematic investigation of restarts as "high availability medicine." In this paper we show how recursive restartability (RR) - the ability of a system to gracefully tolerate restarts at multiple levels improves fault tolerance, reduces time-to-repair and enables system designers to build flexible, highly available software infrastructures. Using several examples of widely deployed software systems, we identify properties that are required of RR systems and outline an agenda for turning the recursive restartability philosophy into a practical software structuring tool. Finally, we describe infrastructural support for RR systems, along with initial ideas on how to analyze and benchmark such systems.
26
End-To-End Arguments In System Design
Jerome H. Saltzer, David P. Reed, David D. Clark · 1984 · 2.1K citations
RSVP: a new resource ReSerVation Protocol
Li Zhang, S. Deering, Deborah Estrin et al. · IEEE Network · 1993 · 1.5K citations
Efficient software-based fault isolation
Robert Wahbe, Steven Lucco, Thomas E. Anderson et al. · 1993 · 1.2K citations · Full text
Joseph M. Hellerstein, Peter J. Haas, Helen J. Wang · 1997 · 928 citations · Full text