This is a property of a system in as much as one or more of its components have failed or has encountered an error. This is an important concept when it comes to the development of systems that have to be always on and which are reliable and dependable, for instance, server farms, cloud computing, telecommunication systems and others that can be classified as mission critical such as aerospace and medical equipment.
Redundancy therefore is the act of creating an extra set of components, systems or procedures to be used in case of failure. It can include such things as having two of the same hardware components, having backup systems in place, or having parallel processes that the system can run even if one of them is faulty.
Failover is the process by which a system handover the control to another system or component of the system when it finds that the previous one has failed. For example in a server cluster, the work of one server may be handled by another server in the same cluster in the event of failure of the first server but this does not affect the service delivery.
Graceful degradation is the approach in which the system is designed in a manner that it can still function to a certain extent even if some of its parts are faulty. This is not as acute as a total system breakdown and the system is still in a state to carry on with the important activities.
Systems which have the ability of fault tolerance usually have some provisions for detection and correction of faults. This may include check sums, parity bits or other more sophisticated error control codes which enable the system to detect and or correct data and/or processing errors.
Fault-tolerant systems are those which are created with a view to ensuring that faults do not propagate to other parts of the system and cause damage. This way, while one part of the system is faulty, the rest of the system will be able to work in a correct manner.
It is for the purpose of system redundancy in the event of a failure so that information and services can be easily accessed for use when the system has failed. This can be having regular backups of data, real time replication, or adopting the use of the snapshot technology to bring the system back to a previous state when it was working well.
It has become important to data centre and cloud computing applications as it is critical for the servers, storage and network to be on all the time. Redundancy, load sharing, fail over for example in case of a hardware failure or network fault the system can still function.
In telecommunications this is defined as the capability of the networks and communication services to function normally even when there is a fault in the system, signal loss or any other form of interference. This is done through the use of multiple channels of communication, error control methods and techniques as well as reliable switching architectures.
In aerospace and automotive industries fault tolerance is very crucial since it deals with a life and death matter. Automatic controls of the flight control computers, the autopilot, and the braking system are programmed to contain failure of a component while maintaining the overall stability of the vehicle.
Systems are used in financial institutions in order to guarantee the availability of the transactions, trading floors and customer services round the clock. Redundancy, duplication of data, and failover options make the systems immune to service outage that would cost a business financially.
The reliability of the medical devices including the life-support systems and the diagnostic apparatus is very vital due to the susceptibility of the patients. Such systems are developed with features that ensure that failure points which may have catastrophic effects are addressed to the maximum extent possible.
These systems are more reliable as they are developed in a way that if one single part of the system malfunctions the rest of the system is not affected with it. This is important so that there is a constant functionality in critical environments.
This is so because fault tolerance inherently jumps to the backup components or systems bypassing the defective ones hence little or no downtime and therefore no much inconvenience to the users.
In applications which require low latency for instance in aviation or finance, fault tolerance can assist in the prevention of occurrence of mistakes that may lead to calamities.
Some of the features that are found in fault-tolerant systems are the error detection and correction features that make sure that data is not corrupted and lost.
Unfortunately the establishment of fault-tolerant systems is usually costly at an initial level but the likeliness of downtime, data loss, and service disruptions is greatly minimized thus lowering costs in the long run.
Making and sustaining fault-tolerant systems increases the level of intricacy in the overall structure. The requirements such as redundancy, failover, and error correction can complicate the system and its management and troubleshooting.
As known, fault tolerance has its price which can be measured in terms of additional hardware, software, and time, and thus high initial expenses. It can be a huge expense and especially for a small company.
Anti-aliasing for instance can be used to increase the reliability of the system but at the same time it slow down the system. The trade off between the level of fault tolerance and the performance is a critical consideration in the design of a particular system.
This can make organisations over reliant on fault tolerance and become complacent, they may believe that failures do not happen or are easily fixed. Some of the consequences are that there can be less emphasis on testing, or even on maintenance.
Redundant systems however take more power, more cooling, and more real estate space. This can enhance the costs of operations and the strain on the environment, especially in many-client circumstances.
Fault Tolerance is the characteristic of a system that enables it to operate effectively and deliver the expected results even when some part of it has developed a fault or has failed. It is done by techniques like redundancy, failover, error correction, and graceful degradation and hence enhances the reliability and robustness of systems. Reliability is important in applications that require maximum availability, redundancy and data security in some of the most demanding environments, for example, data centers, telecommunications, aerospace, and healthcare. As useful as fault-tolerant systems are, they present several problems; more complicated configurations, higher expenses, and performance issues. The effective utilization and administration of fault tolerance is of a great significance for modern computing systems’ dependability.