Twitter's quest for a wholly Graal runtime
summary
Twitter integrates Graal into a custom JDK 8 (via JVMCI) and replaces C2 on key services (Finagle/Scala-heavy tweet, user, timeline) to get concrete wins: fixes for a lock-related bailout, an agent-instrumentation SIGSEGV, and a reverseBytes intrinsic bug; ported compact-string intrinsics into Graal; ran the tweet service 100% in production for >1 year with zero crashes; measured 11% CPU reduction (≈2.5% fewer GC cycles), another ~2% from inlining tuning, and estimated large annual savings at fleet scale.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 5:58Twitter's infrastructure and JVM challenges
- 8:10Graal over C2 choice
- 13:09Graal bugs in production
- 25:37Graal stability and adoption
- 27:02Contributing to OpenJDK
- 29:51Graal vs C2 benchmarks
- 37:14Scaling Graal at Twitter
- 40:03Cost savings from Graal
- 42:55Fine-tuning Graal
- 44:44Future of Graal and JVM
- 45:31Graal in JDK 10+
- 46:12Graal learning resources
- 47:17Project Metropolis and JVM
- 49:32Summary and call to action
related talks
41mTwitter’s Quest for a Wholly Graal Runtime
53mTwitter's quest for a wholly Graal runtime
54mTwitter's quest for a wholly Graal runtime
56mPerformance tuning Twitter services with Graal and Machine Learning
54mPerformance tuning Twitter services with Graal and Machine Learning
40mScala ♥ Graal
41mGraal: How to use the new JVM JIT compiler in real life
34mPerformance Tuning Twitter Services With Machine Learning, Part 2 JIT and GC
