Jump to content

Software rejuvenation

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Hooperbloob (talk | contribs) at 20:02, 13 April 2016 (rm grandparent cat). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software engineering, software rejuvenation is an approach to help prevent performance degradation and other associated failures related to software aging. This proactive technique was identified as a cost-effective solution during research at the AT&T Bell Laboratories on fault-tolerant software in the 1990s.[1]

There are simple techniques and complex techniques to achieve rejuvenation. The method most individuals are familiar with is the hardware or software reboot. A more technical example would be the web server software Apache's rejuvenation method. Apache implements one form of rejuvenation by killing and recreating processes after serving a certain number of requests.[2] Another technique is to restart virtual machines running in a cloud computing environment.[3]

The IEEE International Symposium on Software Reliability Engineering (ISSRE) hosted the 5th annual International Workshop on Software Aging and Rejuvenation (woSAR) in 2013. Topics included:

  • Design, implementation, and evaluation of rejuvenation mechanisms
  • Modeling, analysis, and implementation of rejuvenation scheduling
  • Software rejuvenation benchmarking

References

  1. ^ Cotroneo, D., Natella, R., Pietrantuono, R., and Russo, S. 2014. A survey of software aging and rejuvenation studies. ACM J. Emerg. Technol. Comput. Syst. 10, 1, Article 8 (January 2014), 34 pages.
  2. ^ Trivedi, K. S. and Vaidyanathan, K. 2007. Software Aging and Rejuvenation. Wiley Encyclopedia of Computer Science and Engineering.
  3. ^ Dario Bruneo, Salvatore Distefano, Francesco Longo, Antonio Puliafito, Marco Scarpa: Workload-Based Software Rejuvenation in Cloud Systems. IEEE Trans. Computers 62(6): 1072-1085 (2013)[1].