Abstract
Compaction of memory in long running systems has always been important. The latency of compaction increases in today’s systems with high memory demands and large heaps. To deal with this problem, we present a lock-free protocol allowing for copying concurrent with the application running, which reduces the latencies of compaction radically. It provides theoretical progress guarantees for copying and application threads without making it practically infeasible, with performance overheads of 15% on average. The algorithm paves the way for a future lock-free Garbage Collector.
- A. W. Appel, J. R. Ellis, and K. Li. Real-time concurrent collection on stock multiprocessors. In ACM SIGPLAN Notices, volume 23, pages 11–20. ACM, 1988. Google Scholar
Digital Library
- 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 Scholar
- H. G. Baker Jr. List processing in real time on a serial computer. Communications of the ACM, 21(4):280–294, 1978. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems (TOPLAS), 6(3):333–344, 1984. Google Scholar
Digital Library
- A. Bendersky and E. Petrank. Space overhead bounds for dynamic memory management with partial compaction. ACM Transactions on Programming Languages and Systems (TOPLAS), 34(3):13, 2012. Google Scholar
Digital Library
- S. M. Blackburn and K. S. McKinley. Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In ACM SIGPLAN Notices, volume 43, pages 22–32. ACM, 2008. Google Scholar
Digital Library
- S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, et al. The DaCapo benchmarks: Java benchmarking development and analysis. In ACM Sigplan Notices, volume 41, pages 169–190. ACM, 2006. Google Scholar
Digital Library
- G. E. Blelloch and P. Cheng. On bounding time and space for multiprocessor garbage collection. ACM SIGPLAN Notices, 34(5):104–117, 1999. Google Scholar
Digital Library
- R. A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In Proceedings of the 1984 ACM Symposium on LISP and functional programming, pages 256–262. ACM, 1984. Google Scholar
Digital Library
- P. Cheng and G. E. Blelloch. A parallel, real-time garbage collector, volume 36. ACM, 2001. Google Scholar
Digital Library
- P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. ACM SIGPLAN Notices, 33 (5):162–173, 1998. Google Scholar
Digital Library
- C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. In Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 46–56. ACM, 2005. Google Scholar
Digital Library
- A. Demers, M. Weiser, B. Hayes, H. Boehm, D. Bobrow, and S. Shenker. Combining generational and conservative garbage collection: Framework and implementations. In Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 261–269. ACM, 1989. Google Scholar
Digital Library
- D. Detlefs, C. Flood, S. Heller, and T. Printezis. Garbagefirst garbage collection. In Proceedings of the 4th international symposium on Memory management, pages 37–48. ACM, 2004. Google Scholar
Digital Library
- D. Dice, H. Huang, and M. Yang. Asymmetric dekker synchronization. Technical report, Technical report, Sun Microsystems, 2001. http://home. comcast. net/pjbishop/Dave, 2001.Google Scholar
- E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, and E. F. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):966–975, 1978. Google Scholar
Digital Library
- D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 70–83. ACM, 1994. Google Scholar
Digital Library
- D. Doligez and X. Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ML. In Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 113–123. ACM, 1993. Google Scholar
Digital Library
- T. Domani, E. K. Kolodner, and E. Petrank. A generational onthe-fly garbage collector for Java. In ACM SIGPLAN Notices, volume 35, pages 274–284. ACM, 2000. Google Scholar
Digital Library
- M. P. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS), 12(3):463– 492, 1990. Google Scholar
Digital Library
- R. L. Hudson and J. E. B. Moss. Sapphire: Copying GC without stopping the world. In Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, pages 48– 57. ACM, 2001. Google Scholar
Digital Library
- B. Iyengar, G. Tene, M. Wolf, and E. Gehringer. The collie: a wait-free compacting collector. In ACM SIGPLAN Notices, volume 47, pages 85–96. ACM, 2012. Google Scholar
Digital Library
- G. Kliot, E. Petrank, and B. Steensgaard. A lock-free, concurrent, and incremental stack scanning for garbage collectors. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, pages 11–20. ACM, 2009. Google Scholar
Digital Library
- T. F. Lim, P. Pardyak, and B. N. Bershad. A memory-efficient real-time non-copying garbage collector. ACM SIGPLAN Notices, 34(3):118–129, 1999. Google Scholar
Digital Library
- M. M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. Parallel and Distributed Systems, IEEE Transactions on, 15(6):491–504, 2004. Google Scholar
Digital Library
- S. Nettles and J. O’Toole. Real-time replication garbage collection. In ACM SIGPLAN Notices, volume 28, pages 217– 226. ACM, 1993. Google Scholar
Digital Library
- S. Nettles and J. O’Toole. Replication-based real-time garbage collection. In Conference on Programming Language Design and Implementation. Association for Computing Machinery, 1993. Google Scholar
Digital Library
- J. O’Toole and S. Nettles. Concurrent replicating garbage collection. In ACM SIGPLAN Lisp Pointers, volume 7, pages 34–42. ACM, 1994. Google Scholar
Digital Library
- F. Pizlo, D. Frampton, E. Petrank, and B. Steensgaard. Stopless: a real-time garbage collector for multiprocessors. In Proceedings of the 6th international symposium on Memory management, pages 159–172. ACM, 2007. Google Scholar
Digital Library
- F. Pizlo, E. Petrank, and B. Steensgaard. A study of concurrent real-time garbage collectors. ACM SIGPLAN Notices, 43(6): 33–44, 2008. Google Scholar
Digital Library
- F. Pizlo, L. Ziarek, P. Maj, A. L. Hosking, E. Blanton, and J. Vitek. Schism: fragmentation-tolerant real-time garbage collection. In ACM Sigplan Notices, volume 45, pages 146– 159. ACM, 2010. Google Scholar
Digital Library
- C. G. Ritson, T. Ugawa, and R. E. Jones. Exploring garbage collection with haswell hardware transactional memory. In Proceedings of the 2014 international symposium on Memory management, pages 105–115. ACM, 2014. Google Scholar
Digital Library
- J. M. Robson. An estimate of the store size necessary for dynamic storage allocation. Journal of the ACM (JACM), 18 (3):416–423, 1971. Google Scholar
Digital Library
- J. M. Robson. Bounds for some functions concerning dynamic storage allocation. Journal of the ACM (JACM), 21(3):491– 499, 1974. Google Scholar
Digital Library
- F. Siebert. Realtime garbage collection in the JamaicaVM 3.0. In Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems, pages 94– 103. ACM, 2007. Google Scholar
Digital Library
- D. Spoonhower, J. Auerbach, D. F. Bacon, P. Cheng, and D. Grove. Eventrons: A Safe Programming Construct for High-frequency Hard Real-time Applications. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, pages 283–294, New York, NY, USA, 2006. ACM. ISBN 1-59593-320-4. Google Scholar
Digital Library
- G. L. Steele Jr. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495–508, 1975. Google Scholar
Digital Library
- G. Tene, B. Iyengar, and M. Wolf. C4: the continuously concurrent compacting collector. ACM SIGPLAN Notices, 46 (11):79–88, 2011. Google Scholar
Digital Library
- T. Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181–198, 1990. Google Scholar
Digital Library
Index Terms
Concurrent compaction using a field pinning protocol
Recommendations
Concurrent compaction using a field pinning protocol
ISMM '15: Proceedings of the 2015 International Symposium on Memory ManagementCompaction of memory in long running systems has always been important. The latency of compaction increases in today’s systems with high memory demands and large heaps. To deal with this problem, we present a lock-free protocol allowing for copying ...
Mostly concurrent compaction for mark-sweep GC
ISMM '04: Proceedings of the 4th international symposium on Memory managementA memory manager that does not move objects may suffer from memory <i>fragmentation</i>. <i>Compaction</i> is an efficient, and sometimes inevitable, mechanism for reducing fragmentation. A Mark-Sweep garbage collector must occasionally execute a ...
The Collie: a wait-free compacting collector
ISMM '12We describe the Collie collector, a fully concurrent compacting collector that uses transactional memory techniques to achieve wait-free compaction. The collector uses compaction as the primary means of reclaiming unused memory, and performs "individual ...






Comments