Microreboot
From Wikipedia, the free encyclopedia
Microrebooting is a technique used to recover from failures in software systems. Instead of rebooting the whole system, only subsets of fine-grain components are restarted. The granularity of components is typically finer than the process level (e.g., EJB-level in Java EE systems).
The goal of confining the reboot to fine-grain components is threefold: to reduce the amount of time it takes for the system to return to service, to minimize the failure's disruption to the system and its users, and to preserve as much in-memory application data as possible.
For a system to be microrebootable, it needs to adhere to the principles of crash-only software.
The concept was proposed by George Candea's research group at Stanford University in 2001. It was reduced to practice in systems such as a satellite ground station control system and a Java EE application server.