IJRIT International Journal of Research in Information Technology, Volume 2, Issue 9, September 2014, Pg. 289-293

International Journal of Research in Information Technology (IJRIT) www.ijrit.com

ISSN 2001-5569

Fault Tolerance in Distributed System Neha Munsi1, Mahak Jain2and Nidhi Sehrawat3 1

Student, Computer Science and technology, Maharashi Dayanand University Gurgaon, Haryana, India [email protected]

2

Student, Computer Science and technology, Maharashi Dayanand University Rewari, Haryana, India [email protected]

3

Student, Computer Science and technology, Maharashi Dayanand University Gurgaon, Haryana, India [email protected]

Abstract Fault Tolerance is an important issue in Distributed Computing. Fault-tolerant describes a computer system or component designed so that, in the event that a component fails, a backup component or procedure can immediately take its place with no loss of service. A fault can occur for many reasons like communication failure, resource or hardware failure or it may be of sometime for process faults which occur due to shortage of storage of resource, software bugs etc. This eventually leads to a fault environment. In real time distributed system feasibility of task is very important because there is a deadline defined for each task and should be finished on or before its deadline even there is a fault in the system. Due to possibility of partial failure in the system, the system should routinely recover itself from it without disturbing the overall performance of the system. There exist a lots of researches how to make distributed system fault-tolerant. This paper aims to provide a better understanding of fault, fault tolerance and fault tolerance techniques used in the distributed real time environments.

1. Introduction Distributed system can be effectively defined as a collection of multiple autonomous computers that interact with each other over a communication channel in order to achieve their desired goal or result. Common characteristics of a Distributed System are Resource Sharing, Openness, Scalability, Transparency, and most importantly is Fault Tolerance. In distributed system the individual workstations communicate each other by passing messages. An important goal in distributed systems design is to construct the system in such a way that it can automatically recover from partial failures without seriously affecting the overall performance. The partial failure is the key problem of the distributed system, which is differentiate it from a single processor system. Distributed systems are designed to work from different locations or in other words from a different processors, and each processor may go off unexpectedly or be disconnected from the network. In this case designer of the distributed systems should build system that controls failures or even better tries to prevent them. As the size of distributed system is increasing day by day chances of faults are increasing. Mean time to failure is decreasing with increase in size and complexity of distributed system. In large and dynamic distributed system millions of computing devices are working altogether and these millions of computing device are prone to failures. Failures of processors, disks, memory, power, and link failure are some examples of failures. Faults are inevitable in larger and dynamic distributed system. Faults may stop or halt execution of distributed system. It disturbs normal execution and may turn system execution in wrong direction. A system failure occurs when the system behavior is not consistent with its specifications. A system consists of several components, more the number of components; the more are the things that could be faulty. Since failures are caused by faults, a direct approach to improve the reliability of a system is to try to prevent faults from occurring into a system. This approach is called fault prevention. The other approach is fault tolerance. The goal is to provide service Neha Munsi,

IJRIT

289

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 9, September 2014, Pg. 289-293

despite the presence of faults in the system. The fault prevention methods focus on methodologies for design, testing and validation; whereas fault tolerant methods focus on how to use components in a manner such that failures can be masked. Here onwards, we will be discussing techniques for building fault tolerant distributed systems. Distributed computing is a field of computer science that studies distributed systems. The term distributed system is used to describe a system with following characteristics: it consists of several computers that do not share a memory or clock; the computers communicate with each other by exchanging messages over a communication network; and each computer has its own memory and runs its own operating system. The resources owned and controlled by a computer are said to be local to it, while the resources owned and controlled by other computers and those that can only be accessed through the network are said to be remote or global.

Fig 1 Distributed System Fig 1 shows the working environment of a distributed system. A Real time system can be defines as a system that is highly dependable on deadlines. Deadlines in the sense that a time will be given to particular task and the task should be completed with that time period. So, in order to function a real time system should be reliable and a task running on real time system should be feasible, reliable, and scalable. Some examples of real time system are Nuclear Systems, Robotic Controls, medical equipment, defence systems etc. so, it is now clear to us that a real time system not only depends upon the logical outputs but also on the time of production of a output. Aircraft control is a good example of a real time distributed system. So, a distributed system can be effective for feature like that it can be present like a single system image; it can be easily expandable when load to a system occurs. And more importantly failure of one component can be covered by another one, so as to reduce fault can give a better output. This property called Fault Tolerance, which we will discuss later.

2. FAULT AND FAULT ENVIRONMENT In this section we will discuss about some basic about faults and fault environment and finally fault tolerance. Before moving up to fault tolerance, first let us review to some basic concepts of faults and fault environment. In order to give a better performance and to give a logical output, a system must detect the faults and perform even in case of faults. There are different types of faults which can occur in a real time distributed system. These faults can be broadly classified as: Network faults, Physical fault, media faults, process faults. Network faults occur in a network due to network partition, packet loss, communication failure etc. Physical faults can occur in hardware like fault in CPUs, memory fault etc. Media faults occur due to media head crashes. Process faults occur due to shortage of resources, software bugs etc. But, Fault occurs with respect to time are as follows: Permanent: These failures occur by accidently cutting a wire, power breakdown and so on which can cause major disruptions and some part of system may not be functioning as desired. Intermittent: These failures appear occasionally. Mostly they are ignored while testing the system and only appear when the system goes into operation. Transient: They are caused by some inherent fault in the system. However, these failures are corrected by retrying roll back the system to previous state such as restarting software or resending a message. These failures are common to in computer systems. But, in real time system, main focus is on hardware fault tolerance. Due to presence of faults, the system encounters many problems during execution or processing of any event. This ultimately leads to a Fault environment.

3. FAULT TOLERANCE Fault Tolerance can be defined as a property of a system which provides the facility to perform efficiently even in case of any faults. Fault tolerance can be achieved by detecting a faulty process, saving and restoring the computational tasks of the faulty processor, and then distributing the recovered task to the remaining processors so that the system can continue to operate, although with degradation of computing power. An appropriate fault detector can avoid loss due to any link failure, resource failure or in any other fault environment. Hardware Fault tolerance can be achieved by adding extra hardware like processors, resources like memory, I/O devices etc. Faults can be characterized as transient or permanent. Transient faults are fault of limited duration, caused by temporary malfunction of the system or due to some external Neha Munsi,

IJRIT

290

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 9, September 2014, Pg. 289-293

interference. They can cause a failure, or an error, only in the duration for which they exist. These errors caused may also exist only for a short duration, which makes detecting such faults very hard and expensive. Permanent faults are those in which once the component fails, it never works correctly again. Many techniques for fault tolerance assume that the components fail permanently.

Fig 2 Fault Handling Life Cycle

3.1 Fault Handling Life Cycle A typical fault handling state transition diagram is as shown in Figure 2. The assumption made here is that the system is running with copy-0 as active unit and copy-1 as standby when the copy-0 fails, copy-1 will detect the fault by any of the fault detection mechanisms that are implemented by the system. At this point, copy-1 takes over from copy-0 and becomes active. The state of copy-0 is marked suspect and for the time being diagnostics is pending. The system raises an alarm, notifying the operator that copy-0 is in stand-by mode and diagnostics are to be done. Diagnostics are now scheduled on copy-0. This includes power-on diagnostics (to check power failure) and hardware interface diagnostics (to check failure of hardware components). If the diagnostics on copy-0 pass, copy-0 is brought in-service as standby unit. If the diagnostics fail, copy-0 is marked failed and the operator is notified about the failed card. The operator replaces the failed card with a new one and the system diagnoses the new card to assure that it is healthy. Once the diagnostics pass, copy-0 is marked standby. The copy- 0 now monitors the health of copy-1 which is currently the active copy. The operator now restores the original configuration, i.e. copy-0 becomes active and copy-1 standby.

3.2 Phases in Fault Tolerance In general, the implementation of fault tolerance in any particular system is closely linked with the system, its architecture and design. Just like designing a system is depend on the properties/requirements of the system, designing a fault tolerant system is also dependent on the needs and functionality of the system .Thus, no general technique can be proposed for “adding” fault tolerance to a system. However, some general principles which are useful in designing fault tolerant systems have been identified. The four phases that are general when designing fault tolerance in a system are: (1) Error detection (2) Damage confinement (3) Error recovery (4) Fault treatment and continued system service

3.3 NEED OF FAULT TOLERANCE The needs of fault tolerance are mentioned below: Neha Munsi,

IJRIT

291

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 9, September 2014, Pg. 289-293

(1) Better outcome of results in case of any faults. (2) For reliable processing of transaction. (3) To avoid faulty systems. (4) Limit ourselves to types of failures and errors which are more likely to occur.

4. VARIOUS FAULT TOLERANCE TECHNIQUES 4.1 Replication Based Fault Tolerance Technique Replication based technique is one of the popular fault tolerance techniques. A replica means multiple copies. Replication is a process of maintaining different copies of a data item or object. In replication techniques, request from client is forwarded to one of replica among a set of replicas. This technique is used for request that do not modify state of service. Replication adds redundancy in system. In this way failure of some nodes will not result in failure in system and thus fault tolerance is achieved as shown in fig 3.

Fig 3 Replication Based Technique

4.2 Process Level Redundancy This technique is mainly used as a fault tolerance for transient faults. A transient fault will eventually disappear without any apparent intervention. Transient faults are less severe but hard to diagnose and handle. It is caused by temporary malfunction of some system component. Some environmental interference also causes transient fault or faults. Transient faults are emerging as a critical concern in the reliability of distributed system. Hardware based fault tolerance is very costly hence software based fault tolerance is used to handle transient faults. Process-level redundancy (PLR) is a software based technique for transient fault tolerance, which leverages multiple cores for low overhead. PLR creates a set of redundant processes per application process as shown in fig 3.

Fig 4 N-Process redundancy

Neha Munsi,

IJRIT

292

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 9, September 2014, Pg. 289-293

4.3 Check pointing and Roll Back Checkpoint with rollback-recovery is a well-known technique. Checkpoint is an operation which stores the current state of computation in stable storage. Checkpoints are established during the normal execution of a program periodically. This information is saved on a stable storage so that it can be used in case of node failures. The information includes the process state, its environment, the value of registers, etc. When an error is detected, the process is roll backed to the last saved state . Fig 5 shown below gives an idea about this technique. The main function of a recovery is to recover the system again in consistent and operation state as it continues to work in normal condition. Two most important types of Rollback recoveries are checkpoint based rollback recovery and log based rollback recovery. Checkpoint-based rollback recovery relies only on checkpoints .Log-based rollback-recovery combines' check pointing with logging of nondeterministic events.

Fig 5 Check pointing technique

4.4 Fusion Based Technique Although replication method is widely used as a fault tolerance technique but number of backups is a main drawback. Number of backups increases drastically as coverage against number of faults increases. As the number of backup increases management of these backups is very costly. Fusion based techniques overcome this problem. It is emerging as a popular technique to handle multiple faults. Basically it is an alternate idea for fault tolerance that requires fewer backup machines than replication based approaches. In fusion based fault tolerance a technique, back up machines is used which is cross product of original computing machines. These backup machines are called as fusions corresponding to the given set of machines. Overhead in fusion based techniques is very high during recovery from faults. Hence this technique is acceptable if probability of fault is low.

5. Conclusions Fault tolerance assesses the ability of a system to respond gracefully to an unexpected hardware or software failure. It is very difficult to detect fault in distributed system as compared with uniprocessors. Fault Tolerance techniques are also depending upon its occurrence. Fault tolerance consists of two major components; failure detection and recovery. In this we have identified important issues such as fast, adaptive, accuracy, completeness, confidence and able to detect multiple faults. A reliable detector must not suspect a working process or processor and at the same time, it must detect all faults as early as possible. Recovery time must be very less and it must be efficient. Recovery time can be reduced by high availability of log information as well as starting the recovery from last checkpoint instead of complete restart.

References [1] Sourabh Dave, Abhishek Raghuvanshi ," Fault Tolerance Techniques in Distributed System” , International Journal of Engineering Innovation & Research, Volume 1, Issue 2, ISSN : 2277 – 5668 [2 Lakshmi Prasad, Saikia Kundal Kr. Medhi, “Distributed Fault Tolerance System in Real Time Environments”, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 3, Issue 11, November 2013, ISSN: 2277 128X [3] Yevgeniy Gershteyn ,“ Fault Tolerance in Distributed Systems”, Department of Computer Science, Rochester Institute of Technology, Rochester, NY, USA, [email protected], February 5, 2003 [4] Sanjay Bansal,Sanjeev Sharma, Ishita Trivedi, “A Detailed Review of Fault-Tolerance Techniques in Distributed System” , (IJIDCS) International Journal on Internet and Distributed Computing Systems. Vol: 1 No: 1

Neha Munsi,

IJRIT

293

Fault Tolerance in Distributed System - IJRIT

Fault-tolerant describes a computer system or component designed so that, in the event that a component fails, a backup component or procedure can immediately ... millions of computing devices are working altogether and these millions of ...

122KB Sizes 1 Downloads 316 Views

Recommend Documents

Fault Tolerance in Distributed System - IJRIT
Fault Tolerance is an important issue in Distributed Computing. ... The partial failure is the key problem of the distributed system, .... architecture and design.

Fault Tolerance in Operating System - IJRIT
Dronacharya College of Engineering, Gurgaon, HR ... Software Fault-Tolerance -- Efforts to attain software that can tolerate software design faults (programming errors) have made use of static and .... a way that when a process is loaded, the operati

Fault Tolerance in Operating System - IJRIT
kind of operating systems that their main goal is to operate correctly and provide ... Keywords: Fault Tolerance, Real time operating system, Fault Environment, ...

A system architecture for fault tolerance in concurrent ...
mechanisms for concurrent systems are ... Our proposed system architecture ful- ...... Communication and Computer Networks, VLSl and Design Automation,.

A system architecture for fault tolerance in concurrent ...
al acceptance test status and t ensure. 1x2 - yt < tolerable processes via cm. 24. COMPUTER. 1 ... Figure 1. Control flow between the application program and the Recovery ..... degree in Computer Engineering or related areas. ... each year with two m

Improving Workflow Fault Tolerance through ...
out two tasks automated by the WATERS workflow described in [1]. ..... Sending an email is, strictly speaking, not idempotent, since if done multiple times ...

Fault Tolerance in Finite State Machines using Fusion
Dept. of Electrical and Computer Engineering. The University of ... ups. Given n different DFSMs, we tolerate k faults by having k backup DFSMs. ⋆ supported in part by the NSF Grants CNS-0509024, Texas Education Board Grant 781, and ... However, fo

Improving Workflow Fault Tolerance through ...
invocations. The execution and data management semantics are defined by the ..... The SDF example in Figure 3 demonstrates our checkpoint strategy. Below ...

Improving Workflow Fault Tolerance through ...
mation that scientific workflow systems often already record for data lineage reasons, allowing our approach to be deployed with minimal additional runtime overhead. Workflows are typically modeled as dataflow networks. Computational en- tities (acto

Modeling and Predicting Fault Tolerance in Vehicular ... - IEEE Xplore
Millersville, PA 17551. Email: [email protected]. Ravi Mukkamala. Department of Computer Science. Old Dominion University. Norfolk, VA 23529.

Fault Tolerant Triangulation in Distributed Aircraft ...
models to achieve robust position estimation [7]. They propose a probabilistic approximation to the least median of squares. (LMS) approach [8] in order to circumvent computational complexity. Liu et al. presented a greedy algorithm to filter out the

Evolving messy gates for fault tolerance: some ...
1 This work was carried out while in the School of Computer Science, University of Birmingham. Abstract ... living systems possess a remarkable degree of fault.

Restaurant Management system - IJRIT
“Restaurant Table Management System (RMS)" is android application to .... 9. http://androidcommunity.com/toshiba-10-1-inch-android-tablet-gets-fully-detailed- ...

Hardware Fault Tolerance through Artificial Immune ...
selfVectors=[[1,0,1,1], [1,1,1,0]] detectors=[[1,0,0,0], [0,0,1,0]] for vector in selfVectors: if vector in detectors: nonselfDetected(). Page 9. Systems of state machines. ○ Hardware design. ○ Finite state machines in hardware s1 s2 s3 t1 t2 t3

Restaurant Management system - IJRIT
Abstract- This Android application provides you the whole menu of restaurant.So whenever you cpmes for. Buying or ordering the food,you don't need to worry ...

Evolving Fault Tolerance on an Unreliable ... - Semantic Scholar
School of Computer Science. The Norwegian University of Science and Technology. University of .... fitness amongst the best individuals, one not from the for-.

A Novel Parallel Architecture with Fault-Tolerance for ...
paper we provide a novel parallel architecture named Dual-. Assembly-Pipeline(DAP) with fault-tolerance, in which we join bi-directional data streams by considering the processing nodes' failures. Especially, virtual machines in a ... distributed in

Deadlock in Distributed Operating System
Examples are given to illustrate these methods for avoiding file .... of files, such communications are never required to handle processes using only local files.

Improved Mining of Outliers in Distributed Large Data Sets ... - IJRIT
achieve a large time savings and it meets two basic requirements: the reduction of the ... of real data sets and in the prevalence of distributed data sources [11].

Improved Mining of Outliers in Distributed Large Data Sets ... - IJRIT
Abstract- In Data Mining, a distributed approach for detecting distance-based ... of all the data sets is widely adopted solution requires to a single storage and .... This implementation is portable on a large number of parallel architectures and it

Evolving Fault Tolerance on an Unreliable Technology Platform
Dept. of Computer and Information Science. 2. School of Computer Science. The Norwegian ... have developed a fault tolerant hardware platform for the automated design of .... fitness amongst the best individuals, one not from the for-.

A Global Exception Fault Tolerance Model for MPI
Driven both by the anticipated hardware reliability con- straints for exascale systems, and the desire to use MPI in a broader application space, there is an ongoing effort to incorporate fault tolerance constructs into MPI. Several fault- tolerant m

Hamster: An AOP solution for Fault Tolerance in grid ...
that attempts to maximize resource usage by monitoring grid middleware ..... executed against several OurGrid builds, from version 4.1.5 to its earliest version ...