What is a rolling restart of applications?

A rolling restart or ripplestart of applications is typically an operation that may be performed on applications that are deployed across multiple JVMs or application servers (for example, in a cluster) to incrementally stop and start applications on each JVM. The purpose may be for an application to pick up configuration changes that require a restart, while ensuring high availability of the application.

For example, ApplicationA is deployed and running on Server1, Server2, and Server3. An admin makes a change to ApplicationA which requires the application to be restarted in order for the change to be picked up. Rather than simply stopping and starting the application on all servers (JVMs) at once, potentially causing a brief downtime for the application, the application may be ripple started such that ApplicationA is stopped and started on Server1, while the application is still running on Server2 and Server3. Once the application is restarted on Server1, the application will be restarted on Server2 while the app is running on Server1 and Server3. And so on.

The rolling restart concept may also be more generally applied to any group of processes running in a cluster that need to be restarted while maintaining high availability.

Leave a Comment