The pauseless GC algorithm

  • Authors:
  • Cliff Click;Gil Tene;Michael Wolf

  • Affiliations:
  • Azul Systems, Inc., Mountain View, CA;Azul Systems, Inc., Mountain View, CA;Azul Systems, Inc., Mountain View, CA

  • Venue:
  • Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern transactional response-time sensitive applications have run into practical limits on the size of garbage collected heaps. The heap can only grow until GC pauses exceed the response-time limits. Sustainable, scalable concurrent collection has become a feature worth paying for.Azul Systems has built a custom system (CPU, chip, board, and OS) specifically to run garbage collected virtual machines. The custom CPU includes a read barrier instruction. The read barrier enables a highly concurrent (no stop-the-world phases), parallel and compacting GC algorithm. The Pauseless algorithm is designed for uninterrupted application execution and consistent mutator throughput in every GC phase.Beyond the basic requirement of collecting faster than the allocation rate, the Pauseless collector is never in a "rush" to complete any GC phase. No phase places an undue burden on the mutators nor do phases race to complete before the mutators produce more work. Portions of the Pauseless algorithm also feature a "self-healing" behavior which limits mutator overhead and reduces mutator sensitivity to the current GC state.We present the Pauseless GC algorithm, the supporting hardware features that enable it, and data on the overhead, efficiency, and pause times when running a sustained workload.