Fault Tolerance

Fault Tolerance

Valentin Cristea (Politehnica University of Bucharest, Romania), Ciprian Dobre (Politehnica University of Bucharest, Romania), Corina Stratan (Politehnica University of Bucharest, Romania) and Florin Pop (Politehnica University of Bucharest, Romania)
DOI: 10.4018/978-1-61520-703-9.ch008


The domains of usage of large scale distributed systems have been extending during the past years from scientific to commercial applications. Together with the extension of the application domains, new requirements have emerged for large scale distributed systems. Among these requirements, fault tolerance is needed by more and more modern distributed applications, not only by the critical ones. In this chapter we analyze current existing work in enabling fault tolerance in case of large scale distributed systems, presenting specific problem, existing solution, as well as several future trends. The characteristics of these systems pose problems to ensuring fault tolerance especially because of their complexity, involving many resources and users geographically distributed, because of the volatility of resources that are available only for limited amounts of time, and because of the constraints imposed by the applications and resource owners. A general fault tolerant architecture should, at a minimum, be comprised of at least a mechanism to detect failures and a component capable to recover and handle the detected failures, usually using some form of a replication mechanism. In this chapter we analyzed existing fault tolerance implementations, as well as solutions adopted in real world large scale distributed systems. We analyzed the fault tolerance architectures being proposed for particular distributed architectures, such as Grid or P2P systems.
Chapter Preview


Large scale distributed systems are hardly ever “perfect”. Due to their complexity, it is extremely difficult to produce flawless designed distributed systems. Fault tolerance is the ability of a large scale distributed system to perform its function correctly even in the presence of faults occurring in various components. In this chapter we present fault tolerance solutions designed to cope with the inability to produce perfect distributed solutions.

Today, both in the academic and industrial environments there is an increasingly growing interest in large scale distributed systems, which currently represent the preferred instruments for developing a wide range of new applications. The Grid computing domain has especially progressed during the last years due to the technological opportunities that it offers. While until recently the research in the distributed systems domain has mainly targeted the development of functional infrastructures, today researchers understand that many applications, especially the commercial ones, have some complementary necessities that the „traditional” distributed systems do not satisfy. Today current application requirements include the need to tolerate well faults. Traditional approaches for high availability (high resilience to faults occurrences) are based on the combination of redundancy and 24/7 operations support. This involves the presence of human operators that can detect and repair failures and restore redundancy before or short after the service provided by the system is compromised. However, both redundancy and 24/7 operations support are expensive, and this cost may be prohibitive for many application domains. Therefore, automated recovery of failed hardware and software components (especially through restart) has been gaining attention since the mid 1990s. Activity in this area has recently increased thanks to the IBM autonomic computing initiative (Kephart & Chess, 2003), recent work on recursive restartability (Candea,et al, 2002), and recovery-oriented computing (Oppenheimer, et al, 2002).

Although the importance of fault tolerance is today widely recognized and many research projects have been initiated recently in this domain, the existing systems often offer only partial solutions that follow a particular underlying distributed architecture. The characteristics of large scale distributed systems make fault tolerance a difficult problem from several points of view. A first aspect is the geographical distribution of resources and users that implies frequent remote operations and data transfers. These lead to a decrease in the system's capability to detect faults and handle recovery mechanisms, even to manage correct simple mechanisms needed for consensus for example. Another problem is the volatility of the resources, which are usually available only for limited periods of time. The system must ensure the correct and complete execution of the applications even in situations when the resources are introduced and removed dynamically, or when they are damaged. Solving such issues still represents a research domain. In this we present problems and innovative solutions that aim to solving the many requirements involved in obtaining fault tolerant large scale distributed systems.

In the rest of this chapter we present an analysis of the challenges, directions and solutions to the problem of preserving the good functionality of a large scale distributed system in the presence of faults occurrences. The chapter is organized as follows. We first present an analysis of the existing work in designing appropriate models for fault tolerance solution design in case of large scale distributed systems. We continue describing issues concerning the detection of failures, analyzing current proposed solutions. We then describe the existing solutions to recovering from failures in large scale distributed systems. We continue analyzing several techniques designed to ensure fault tolerance. Next we present several future identified future trend about fault tolerance and, in the end, we give several conclusions.

Complete Chapter List

Search this Book: