Nowadays, developers have to be very efficient in their usage of computing resources when deploying web applications to the cloud. As a result, "scale to zero" has become the norm. This ensures that when demand is low there are fewer application servers, and as demand increases more application servers are spun up. There is an inherent conflict with resource efficiency and the latency that users will experience using this kind of deployment strategy. This has given rise to JVM-based static compilation technologies that can significantly improve startup time. Statically compiled images offer great improvements for startup time but lack many capabilities that some applications rely on. In some cases using this approach may require significant changes to the application, which may be a prohibitive cost to users. Checkpoint and restore is a technique where an application is paused and serialized (checkpoint) then loaded and resumed at a later time (restore). This approach offers great startup improvements while minimizing the number of changes that are required for the application. This presentation demonstrates how Java applications can make use of checkpoint/restore technology in the JVM to improve startup time for applications.
This presentation will describe an exploration into checkpoint/restore technology at the JVM level with real world applications. It will demonstrate the benefits, the challenges and the oppotunities that exist with this approach. This is talk is for anyone who is interested JVM performance, particularly in the cloud. Attendees should have basic knowledge of the JVM.