Designing for Garbage Collection


Details
Gregg Donovan, Senior Software Engineer, Etsy
Understanding the impact of garbage collection, both at a single node and a cluster level, is key to developing high-performance, high-availability applications when using a garbage collected language. We will explore the basics of common garbage collection algorithms, how to monitor your runtime, and how to measure success when tuning GC.
At a cluster-level, we will review how to design for partial availability -- how to avoid sending requests to a GCing node and how to be resilient to mid-request GC pauses. We will review the code Etsy uses to implement its custom 'Banner' protocol used to detect GCing JVM nodes at request-time. For application development, we will review common memory leak scenarios and how to detect them.
Special thanks to 10Gen for generously offering a space to host Tuesday's meetup!


Designing for Garbage Collection