Very concurrent mark-&-sweep garbage collection without fine-grain synchronization

  • Authors:
  • Lorenz Huelsbergen;Phil Winterbottom

  • Affiliations:
  • Bell Labs, Lucent Technologies, Murray Hill, NJ;Bell Labs, Lucent Technologies, Murray Hill, NJ

  • Venue:
  • Proceedings of the 1st international symposium on Memory management
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a new incremental algorithm for the concurrent reclamation of a program's allocated, yet unreachable, data. Our algorithm is a variant of mark-&-sweep collection that---unlike prior designs---runs mutator, marker, and sweeper threads concurrently without explicit fine-grain synchronization on shared-memory multiprocessors. A global, but infrequent, synchronization coordinates the per-object coloring marks used by the three threads; fine-grain synchronization is achieved without locking via the basic memory consistency guarantees commonly provided by multiprocessor hardware. We have implemented two versions of this algorithm (called VCGC): in the Inferno operating system and in the SML/NJ ML compiler. Measurements, compared to a sequential generational collector, indicate that VCGC can substantially reduce worst-case pause latencies as well as reduce overall memory usage. We remark that the degrees of freedom on the rates of marking and sweeping enable exploration of a range of resource tradeoffs, but makes "optimal" tuning for even a small set of applications difficult.