JITServer: Disaggregated Caching JIT Compiler for the JVM in the Cloud
summary
JIT compilation is moved to a remote service implemented in Eclipse OpenJ9 and augmented with a distributed cache that stores serialized compiled methods with relocation and validation records, class identity by fully qualified name plus a secure ROM-class hash, and a guard-on-inline scheme. Experiments on 10GbE with 1 CPU/1GB containers show up to 77% lower system CPU cost, up to 62% less memory, startup reduced 58% and warm-up 87%, cache hit rates roughly 70–95%, and tolerable latencies up to about 6 ms with caching.
AI-written summary · about
chapters (18)
- 0:00Intro
- 0:37JIT compilation performance issues
- 2:59Promising approach: JIT compiler disaggregation
- 5:30Remote JIT drawbacks
- 8:17Our approach to improve remote JIT
- 8:56Challenges in reusing JIT-compiled code
- 10:12Our solution: serialize JIT-compiled code
- 10:48Identifying runtime classes across JVMs
- 12:02Serialized JIT-compiled method example
- 14:16What methods to cache
- 15:01Performance evaluation
- 15:51Application performance: start time
- 17:21Application performance: warm-up time
- 18:25Overall system efficiency: CPU cost
- 19:52Overall system efficiency: memory usage
- 20:23JITServer scalability
- 21:11Effect of network latency
- 22:20Summary
related talks
40mNext Frontier in Open Source Compilers: Just-In-Time Compilation as a Service
29mThe Next Frontier in Open Source Java Compilers: Just-in-Time Compilation as a Service
55mJIT and AOT in the JVM
52mCloud Native JVM. Cloud Compiler
58mEnhancing Java Applications for the Cloud
01h 02mJourney to Cloud : Leave No Java Workload Behind
35mJava at Speed: Building a Better JVM
46mJIT Compiler From the Ground Up
