skip to main content
research-article

Concurrent compaction using a field pinning protocol

Published:14 June 2015Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. H. G. Baker Jr. List processing in real time on a serial computer. Communications of the ACM, 21(4):280–294, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems (TOPLAS), 6(3):333–344, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. E. Blelloch and P. Cheng. On bounding time and space for multiprocessor garbage collection. ACM SIGPLAN Notices, 34(5):104–117, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Cheng and G. E. Blelloch. A parallel, real-time garbage collector, volume 36. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. ACM SIGPLAN Notices, 33 (5):162–173, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. S. Nettles and J. O’Toole. Real-time replication garbage collection. In ACM SIGPLAN Notices, volume 28, pages 217– 226. ACM, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. J. O’Toole and S. Nettles. Concurrent replicating garbage collection. In ACM SIGPLAN Lisp Pointers, volume 7, pages 34–42. ACM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. F. Pizlo, E. Petrank, and B. Steensgaard. A study of concurrent real-time garbage collectors. ACM SIGPLAN Notices, 43(6): 33–44, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. M. Robson. Bounds for some functions concerning dynamic storage allocation. Journal of the ACM (JACM), 21(3):491– 499, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. G. L. Steele Jr. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495–508, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. G. Tene, B. Iyengar, and M. Wolf. C4: the continuously concurrent compacting collector. ACM SIGPLAN Notices, 46 (11):79–88, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. T. Yuasa. Real-time garbage collection on general-purpose machines. Journal of Systems and Software, 11(3):181–198, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Concurrent compaction using a field pinning protocol

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 50, Issue 11
          ISMM '15
          November 2015
          156 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2887746
          Issue’s Table of Contents
          • cover image ACM Conferences
            ISMM '15: Proceedings of the 2015 International Symposium on Memory Management
            June 2015
            156 pages
            ISBN:9781450335898
            DOI:10.1145/2754169

          Copyright © 2015 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 June 2015

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!