Microreboot (original) (raw)

Microrebooting is a technique used to recover from failures in crash-only 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.