ANU Computer Science Technical Reports

TR-CS-09-02


Daniel Frampton, Stephen M Blackburn, Luke N Quinane, and John N Zigman.
Efficient Concurrent Mark-Sweep Cycle Collection.
October 2009.

[POSTSCRIPT (251110 bytes)] [PDF (252020 bytes)]


Abstract: Since 1960, reference counting has been a popular means of garbage collection. Reference counters achieve low pause times by using local data to determine liveness, but the use of this local data leaves the collector unable to collect cyclic garbage. Recent advances such as the use of coalescing and generations have dramatically improved the throughput of reference counting collectors. However, the efficient collection of cyclic garbage remains a stumbling block. This paper responds to this shortcoming with MSCD, a concurrent tracing algorithm that takes advantage of information available within a reference counted environment. MSCD outperforms alternatives such as trial deletion and backup tracing by up to a factor of two. This advantage is the result of three insights: 1) objects subject to races during concurrent tracing are trivially identified using data already established by the reference counter, 2) the trace performed by the mark phase of the collector can safely omit objects statically identified as inherently acyclic, and 3) the sweep phase of the collector can be reduced to just those objects which are potentially cyclic garbage. We show that MSCD works with state of the art reference counting collectors - which allow large numbers of heap mutations to be ignored - without affecting the correctness or completeness of the algorithm. We provide detailed performance comparisons of concurrent and non-concurrent versions of our cycle collector, a simple mark-sweep cycle detector, and a high-performance implementation of trial deletion.
Technical Reports <Technical-DOT-Reports-AT-cs-DOT-anu.edu.au>
Last modified: Tue May 31 12:56:01 EST 2011