Abstract Long-running applications are often subject to failures.
Failures can result in significant loss of computation.
Therefore, it is necessary to use a failure recovery scheme to minimize performance overhead in the presence of failures. A two-level recovery scheme tolerates the more probable failures with low performance overhead, while the less probable failures may possibly incur a higher overhead. The paper describes two two-level recovery schemes. While the conclusions of this paper are intuitive, the work on design of appropriate recovery schemes is lacking. The objective of this paper is to motivate research into recovery schemes that can provide multiple levels of fault tolerance and achieve better performance than existing recovery schemes.