Software Rejuvenation: Analysis, Module and Applications

  • Authors:
  • Nick Kolettis;N. Dudley Fulton

  • Affiliations:
  • -;-

  • Venue:
  • FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
  • Year:
  • 1995

Quantified Score

Hi-index 0.01

Visualization

Abstract

Software rejuvenation is the concept of gracefully terminating an application and immediately restarting it at a clean internal state. In a client-server type of application where the server is intended to run perpetually for providing a service to its clients, rejuvenating the server process periodically during the most idle time of the server increases the availability of that service.In a long-running computation-intensive application, rejuvenating the application periodically and restarting it at a previous checkpoint increases the likelihood of successfully completing the application execution. We present a model for analyzing software rejuvenation in such continuously-running applications and express downtime and costs due to downtime during rejuvneation in terms of the parameters in that model. Threshold conditions for rejuvenation to be beneficial are also derived. We implemented a reusable module to perform software rejuvenation. That module can be embedded in any existing application on a UNIX platform with minimal effort. Experiences with software rejuvenation in a billing data collection subsystem of a telecommunications operations system and other continuously-running systems and scientific applications in AT&T are described.