ABSTRACT
On-the-fly Garbage Collectors (GCs) are the state-of-the-art concurrent GC algorithms today. Everything is done concurrently, but phases are separated by blocking handshakes. Hence, progress relies on the scheduler to let application threads (mutators) run into GC checkpoints to reply to the handshakes. For a non-blocking GC, these blocking handshakes need to be addressed. Therefore, we propose a new non-blocking handshake to replace previous blocking handshakes. It guarantees scheduling-independent operation level progress without blocking. It is scheduling independent but requires some other OS support. It allows bounded waiting for threads that are currently running on a processor, regardless of threads that are not running on a processor. We discuss this non-blocking handshake in two GC algorithms for stack scanning and copying objects. They pave way for a future completely non-blocking GC by solving hard open theory problems when OS support is permitted. The GC algorithms were integrated to the G1 GC of OpenJDK for Java. GC pause times were reduced to 12.5% compared to the original G1 on average in DaCapo. For a memory intense benchmark, latencies were reduced from 174 ms to 0.67 ms for the 99.99% percentile. The improved latency comes at a cost of 15% lower throughput.
- A. W. Appel, J. R. Ellis, and K. Li. Real-time Concurrent Collection on Stock Multiprocessors. In Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation, PLDI ’88, pages 11–20, New York, NY, USA, 1988. ACM. ISBN 0- 89791-269-1. doi: 10.1145/53990.53992. URL http://doi.acm. org/10.1145/53990.53992. D. F. Bacon, P. Cheng, and V. Rajan. The Metronome: A simpler approach to garbage collection in real-time systems. In On the Move to Meaningful Internet Systems 2003: OTM 2003 Workshops, pages 466–478. Springer, 2003. Google ScholarDigital Library
- H. G. Baker, Jr. List Processing in Real Time on a Serial Computer. Commun. ACM, 21(4):280–294, Apr. 1978. ISSN 0001-0782. Google ScholarDigital Library
- doi: 10.1145/359460.359470. URL http://doi.acm.org/10.1145/ 359460.359470. M. Ben-Ari. On-the-fly garbage collection: New algorithms inspired by program proofs. In Automata, Languages and Programming, pages 14– 22. Springer, 1982. Google ScholarDigital Library
- D. L. Detlefs, P. A. Martin, M. Moir, and G. L. Steele, Jr. Lock-free Reference Counting. pages 190–199, 2001. doi: 10.1145/383962.384016. URL http://doi.acm.org/10.1145/383962.384016. Google ScholarDigital Library
- A. Kogan and E. Petrank. Wait-free Queues with Multiple Enqueuers and Dequeuers. SIGPLAN Not., 46(8):223–234, Feb. 2011. ISSN 0362- 1340. Google ScholarDigital Library
- doi: 10.1145/301589.286873. URL http://doi.acm.org/10.1145/301589.286873. B. McCloskey, D. F. Bacon, P. Cheng, and D. Grove. Staccato: A parallel and concurrent real-time compacting garbage collector for multiprocessors. Technical report, Technical Report RC24505, IBM Research, 2008.Google Scholar
- M. M. Michael. Hazard pointers: safe memory reclamation for lock-free objects. Parallel and Distributed Systems, IEEE Transactions on, 15(6): 491–504, June 2004. ISSN 1045-9219. doi: 10.1109/TPDS.2004.8. M. M. Michael and M. L. Scott. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. Journal of Parallel and Distributed Computing, 51(1):1 – 26, 1998. ISSN 0743-7315. doi: http://dx.doi.org/10.1006/jpdc.1998. Google ScholarDigital Library
Index Terms
- Block-free concurrent GC: stack scanning and copying
Recommendations
Block-free concurrent GC: stack scanning and copying
ISMM '16On-the-fly Garbage Collectors (GCs) are the state-of-the-art concurrent GC algorithms today. Everything is done concurrently, but phases are separated by blocking handshakes. Hence, progress relies on the scheduler to let application threads (mutators) ...
A lock-free, concurrent, and incremental stack scanning for garbage collectors
VEE '09: Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environmentsTwo major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause lengths have decreased ...
A lock-free, concurrent, and incremental stack scanning mechanism for garbage collectors
Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause times have decreased significantly ...
Comments