An algorithm for parallel incremental compaction
Ori Ben-Yitzhak, Irit Goft, et al.
ISMM 2002
Garbage collectors of the mark-sweep family may suffer from memory fragmentation and require the use of compaction. Known compaction methods are expensive and work while program activity is stopped, so that compaction is often a major contributor to garbage collection pause times. We present a parallel incremental compaction algorithm that reduces pause times by working in parallel and evacuating a part of the heap when the program threads are stopped for garbage collection. Our algorithm works with collectors based on mark-sweep, including mostly concurrent collectors. We have implemented a prototype of our algorithm as part of the garbage collector in the IBM JVM. Measurements of our prototype show that even with the most simple-minded policies, e.g., for choosing the area to evacuate, parallel incremental compaction can successfully reduce maximum garbage collection pause times with a minimal performance penalty.
Ori Ben-Yitzhak, Irit Goft, et al.
ISMM 2002
Olga Brukman, Shlomi Dolev, et al.
Journal of Systems and Software
Anna Levin, Shelly Garion, et al.
BigData Congress 2019
Gil Vernik, Michael Factor, et al.
SoCC 2017