Current garbage collectors for OpenJDK all need to stop the application periodically to perform garbage collection tasks. This is a scalability bottleneck because those pause times are dependend on heap size. Shenandoah is a new garbage collector for OpenJDK, currently developed by Red Hat, that aims to reduce GC pause times to a minimum by implementing marking and object evacuation to run concurrently with application threads, and utilizing parallel garbage collection threads.
Current garbage collectors for OpenJDK all need to stop the application periodically to perform garbage collection tasks. This is a scalability bottleneck because those pause times are dependend on heap size. This is a problem for large-scale applications that require 100GB+ of heap. Shenandoah is a new garbage collector for OpenJDK, currently developed by Red Hat, that aims to reduce GC pause times to a minimum. Specifically, pause time are no longer dependend on heap size. It implements marking and object evacuation to run concurrently with application threads, and utilizing parallel garbage collection threads.
In this talk I want to introduce the Shenandoah GC, talk about our motivations, present the technical innvoations that enable Shenandoah to achieve concurrent marking and evacuation, compare Shenandoah with other garbage collectors, and finally give an overview of what we plan to do in the future.
Speakers: Roman Kennke