Concurrent compacting garbage collection of a persistent heap

James O'Toole, Scott Nettles, David Gifford
1993 Proceedings of the fourteenth ACM symposium on Operating systems principles - SOSP '93  
We describe a replicating garbage collector for a persistent heap. The garbage collector cooperates with a transaction manager to provide safe and efficient transactional storage management. Clients read and write the heap in primary memory and can commit or abort their write operations. When write operations are committed they are preserved in stable storage and survive system failures. Clients can freely access the heap during garbage collection because the collector concurrently builds a
more » ... act replica of the heap. A log captures client write operations and is used to support both the transaction manager and the replicating garbage collector. Our implementation is the first to provide concurrent and compacting garbage collection of a persistent heap. Measurements show that concurrent replicating collection produces significantly shorter pause times than stop-and-copy collection. For small transactions, throughput is limited by the logging bandwidth of the underlying log manager. The results suggest that replicating garbage collection offers a flexible and efficient way to provide automatic storage management in transaction systems, object-oriented databases and persistent programming environments.
doi:10.1145/168619.168632 dblp:conf/sosp/OTooleNG93 fatcat:v5usd3unqvesde7eaexq76ojr4