Understanding Low Latency JVM GCs
summary
Covers how modern low‑latency JVM GCs actually work: tri-color concurrent marking for correctness, Shenandoah’s original Brooks pointers then replaced by a load‑reference barrier to remove forwarding words, Azul C4’s Load‑Value Barrier plus kernel or multi‑mapping tricks, and ZGC’s multi‑mapping approach. Shows tradeoffs: barriers add per‑access checks and a few percent overhead, C4 handles a 580 GB NameNode heap in production since Oct 2017 with no GC incidents, and some rescue modes still cause brief stop‑the‑world fallbacks.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:27Agenda
- 2:55Concurrent Marking
- 4:27Issues with Concurrent Marking
- 5:20Concurrent Marking Example
- 6:11Snapshot Algorithm
- 8:18Shenandoah
- 13:31Brooks Pointer
- 14:45Evacuation
- 17:01Pseudocode
- 18:29Phases
- 19:52Notable Changes
- 21:46C4 Explanation
- 23:43LBB Explanation
- 29:55Virtual Memory vs Physical Memory
- 31:30Pages Faces
- 32:39Mark Phase
- 34:40Relocation Phase
- 37:42Fixing References
- 38:11Why C4
- 43:06CDC
- 44:48Masking
- 48:36Which algorithm to use
- 49:18Twitter
related talks
39mZGC: The Next Generation Low-Latency Garbage Collector
47mConcurrent Garbage Collectors: ZGC & Shenandoah
46mZGC: A Scalable Low-Latency Garbage Collector
49mConcurrent Garbage Collectors: ZGC & Shenandoah
50mTrash Talk - Exploring the JVM memory management
34mGenerational ZGC and Beyond
33mNo GC coding techniques for low latency Java
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
