CoMarkSplit: A Concurrent Mark-Split Garbage Collector
Report, 2012

Garbage collectors are important components of many modern programming languages and runtime systems. Mark-split is a garbage collection algorithm that combines advantages of both mark-sweep and copying collection algorithms. With the switch to multi-core and many-core microprocessors, parallelism becomes a core issue in the design of any algorithm or software system. In this paper, we present a concurrent design of the mark-split garbage collector. Our concurrent design algorithmically introduces and makes use of an efficient concurrency control mechanism for handling the list of free intervals. This mechanism is based on a lock-free skip-list design and supports an extended set of operations that allows, atomically and in a lock-free manner, to search and remove and also to insert two intervals at the same time. We have implemented the concurrent mark-split garbage collector in OpenJDK HotSpot as a garbage collector for the tenured generation. We present experimental evaluation of our concurrent collector and compare it with the default concurrent marks-sweep garbage collector present in OpenJDK HotSpot, using the Dacapo benchmarks. The evaluation shows that our concurrent mark-split performs better than the concurrent mark-sweep garbage collector in some applications.

skip-list

lock-free

mark-sweep

garbage collector

mark-split

Java

Author

Dang Nhan Nguyen

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Håkan Sundell

Philippas Tsigas

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Areas of Advance

Information and Communication Technology

Subject Categories

Computer Science

Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University: 1652-926X

More information

Created

10/6/2017