This characteristic is weaker than fault tolerance, which typically seeks to provide 100% availability, albeit with significant price and performance penalties.
High availability software is measured by its performance when a subsystem fails, its ability to resume service in a state close to the state of the system at the time of the original failure, and its ability to perform other service-affecting tasks (such as software upgrade or configuration changes) in a manner that eliminates or minimizes down time.
According to Marc Brooker, to take advantage of redundancy, ensure that:[3] Typical high availability software provides features that: Enable hardware and software redundancy: These features include: A service is not available if it cannot service all the requests being placed on it.
The “scale-out” property of a system refers to the ability to create multiple copies of a subsystem to address increasing demand, and to efficiently distribute incoming work to these copies (Load balancing (computing)) preferably without shutting down the system.
High Availability Software can provide communications abstractions like redundant message and event queues to help active subsystems in this task.
Additionally, an important concept called “checkpointing” is exclusive to highly available software.
“Cold” standby systems are offline until the active fails and typically restart from a “baseline” state.
Finally, “warm” standby is an informal term encompassing all systems that are running yet must do some internal processing before becoming active.
However, the software can still greatly increase availability by automatically returning to an in-service state as soon as the catastrophic failure is remedied.
[8] This architecture seeks to avoid loss of service from physically-local events (fire, flood, earthquake) by separating redundant machines.
In the past 20 years telecommunication networks and other complex software systems have become essential parts of business and recreational activities.
Well one thing you have high-availability clusters or you have the more expensive and more complex fault-tolerance servers.”[9] Telecommunications: High Availability Software is an essential component of telecommunications equipment since a network outage can result in significant loss in revenue for telecom providers and telephone access to emergency services is an important public safety issue.
The cloud infrastructure may provide simple fault detection and restart at the virtual machine level.