Fast JVM Startup with Checkpoint & Restore
summary
Claim: using CRIU plus an OpenJ9 extension called OpenJ9 Series Support checkpoints a warmed JVM and restores it in tens of milliseconds. Demonstration: toy app restores in ~69 ms; Liberty app drops from ~3.39 s cold start to ~0.17–0.30 s (≈10–15x speedup). Implementation uses self-dump hooks to patch time, entropy and OS resources, a Java hook API and optional not-checkpoint-safe annotation. Works but requires minor app support, conservative JIT settings (or single-restore mode), and Linux kernel capability support (≈v5.9).
AI-written summary · about
chapters (20)
- 0:00Fast JVM startup with Checkpoint and Restore
- 0:42Overview
- 2:21Why does fast startup matter?
- 5:02Class metadata caching
- 7:15Static compilation
- 12:04Checkpoint Restore in Userspace (CRIU)
- 15:05CRIUSupport API
- 16:26Workflow
- 18:36How is checkpoint initiated?
- 24:54Demo...
- 25:58Restoring Application state
- 28:47Compensations
- 31:07CRIUSupport Hooking mechanism
- 32:50Singe thread mode
- 35:03Where to checkpoint?
- 36:26Portability
- 39:53Security
- 41:59Serviceability & Tuning
- 43:02Where does this work best?
- 43:47Future Work
related talks
53mJava on CRaC: Superfast JVM Application Startup
51mJava on CRaC Superfast JVM Application Startup
53mWhat the CRaC Superfast JVM startup
45mOptimizing Java Startup and Warmup: Exploring the Power of CRaC on Embedded
42mSimple tweaks to get the most out of your JVM
40mKotlin on CRaC – new JVM features to speed things up
01h 03mKeeping Your Java Hot.
53mFour Approaches to Reducing Java Startup Time
