skip to main content
research-article

The mapping collector: virtual memory support for generational, parallel, and concurrent compaction

Authors Info & Claims
Published:01 March 2008Publication History
Skip Abstract Section

Abstract

Parallel and concurrent garbage collectors are increasingly employed by managed runtime environments (MREs) to maintain scalability, as multi-core architectures and multi-threaded applications become pervasive. Moreover, state-of-the-art MREs commonly implement compaction to eliminate heap fragmentation and enable fast linear object allocation.

Our empirical analysis of object demographics reveals that unreachable objects in the heap tend to form clusters large enough to be effectively managed at the granularity of virtual memory pages. Even though processes can manipulate the mapping of the virtual address space through the standard operating system (OS) interface on most platforms, extant parallel/concurrent compactors do not do so to exploit this clustering behavior and instead achieve compaction by performing, relatively expensive, object moving and pointer adjustment.

We introduce the Mapping Collector (MC), which leverages virtual memory operations to reclaim and consolidate free space without moving objects and updating pointers. MC is a nearly-single-phase compactor that is simpler and more efficient than previously reported compactors that comprise two to four phases. Through effective MRE-OS coordination, MC maintains the simplicity of a non-moving collector while providing efficient parallel and concurrent compaction.

We implement both stop-the-world and concurrent MC in a generational garbage collection framework within the open-source HotSpot Java Virtual Machine. Our experimental evaluation using a multiprocessor indicates that MC significantly increases throughput and scalability as well as reduces pause times, relative to state-of-the-art, parallel and concurrent compactors.

Skip Supplemental Material Section

Supplemental Material

Video

References

  1. D. Abuaiadh, Y. Ossia, E. Petrank, and U. Silbershtein. An efficient parallel heap compaction algorithm. In the ACM Conference on Object-Oriented Systems, Languages and Applications, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A.W. Appel, J.R. Ellis, and K. Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11--20, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Barabash, O. Ben-Yitzhak, I. Goft, E.K. Kolodner, V. Leikehman, Y. Ossia, A. Owshanko, and E. Petrank. A parallel, incremental, mostly concurrent garbage collector for servers. ACM Transactions on Programming Languages and Systems, 27(6):1097--1146, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. Barabash, Y. Ossia, and E. Petrank. Mostly concurrent garbage collection revisited. In the ACM Conference on Object-Oriented Systems, Languages and Applications, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S.M. Blackburn and K.S. McKinley. Ulterior reference counting: Fast garbage collection without a long wait. In the ACM Conference on Object-Oriented Systems, Languages and Applications, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. H.-J. Boehm. Reducing garbage collector cache misses. In Second International Symposium on Memory Management, ACM SIGPLAN Notices. ACM Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. H.-J. Boehm, A.J. Demers, and S. Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6), 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807--820, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C.J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677--8, Nov. 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Cheng and G. Blelloch. A parallel, real-time garbage collector. In the ACM Conference on Programming Languages Design and Implementation, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Cohen and A. Nicolau. Comparison of compacting algorithms for garbage collection. ACM Transactions on Programming Languages and Systems, 5(4):532--553, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. The DaCapo Benchmark Suite. http://dacapobench.org.Google ScholarGoogle Scholar
  13. D. Detlefs, C. Flood, S. Heller, and T. Printezis. Garbage-first garbage collection. In the ACM International Symposium on Memory Management, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Flood, D. Detlefs, N. Shavit, and C. Zhang. Parallel garbage collection for shared memory multiprocessors. In the USENIX Java Virtual Machine Symposium, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Grzegorczyk, S. Soman, C. Krintz, and R. Wolski. Isla Vista heap sizing: Using feedback to avoid paging. In the ACM Conference on Code Generation and Optimization, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Hertz, Y. Feng, and E.D. Berger. Garbage collection without paging. In the ACM Conference on Programming Languages Design and Implementation, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A.L. Hosking. Portable, mostly-concurrent and mostly-copying garbage collection for multi-processors. In the ACM International Symposium on Memory Management, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. HotSpot Virtual Machine Garbage Collection. http://java.sun.com/javase/technologies/hotspot/gc/index.jsp.Google ScholarGoogle Scholar
  19. R.E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. H. Kermany and E. Petrank. The Compressor: Concurrent, incremental and parallel compaction. In the ACM Conference on Programming Languages Design and Implementation, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Lea. A memory allocator, 1997. http://gee.cs.oswego.edu/dl/html/malloc.html.Google ScholarGoogle Scholar
  22. Open Source J2SE Implementation. http://openjdk.java.net.Google ScholarGoogle Scholar
  23. Y. Ossia, O. Ben-Yitzhak, I. Goft, E.K. Kolodner, V. Leikehman, and A. Owshanko. A parallel, incremental and concurrent GC for servers. In the ACM Conference on Programming Languages Design and Implementation, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Y. Ossia, O. Ben-Yitzhak, and M. Segal. Mostly concurrent compaction for mark-sweep GC. In the ACM International Symposium on Memory Management, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. T. Printezis and D. Detlefs. A generational mostly-concurrent garbage collector. In the ACM International Symposium on Memory Management, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Rashid, A. Tevanian, M. Young, et al. Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures. In the ACM Conference on Architectural Support for Programming Languages and Operating Systems, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. N. Sachindran and E. Moss. MarkCopy: Fast copying GC with less space overhead. In the ACM Conference on Object-Oriented Systems, Languages and Applications, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. K. Sagonas and J. Wilhelmsson. Mark and split. In the ACM International Symposium on Memory Management, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. P. Sobalvarro. A lifetime-based garbage collector for Lisp systems on general-purpose computers. Technical Report AITR-1417, MIT AI Lab, Feb. 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. The SPEC Benchmarks. http://www.spec.org.Google ScholarGoogle Scholar
  31. D.M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5):157--167, Apr. 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. The VolanoMark Benchmark. http://www.volano.com/benchmarks.html.Google ScholarGoogle Scholar
  33. P.R. Wilson, M.S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In the International Workshop on Memory Management, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. T. Yang, E.D. Berger, M. Hertz, S.F. Kaplan, and J.E.B. Moss. Autonomic heap sizing: Taking real memory into account. In the ACM International Symposium on Memory Management, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. T. Yang, E.D. Berger, S.F. Kaplan, and J.E.B. Moss. CRAMM: Virtual memory support for garbage-collected applications. In the ACM Conference on Operating Systems Design and Implementation, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. C. Zhang, K. Kelsey, X. Shen, C. Ding, M. Hertz, and M. Ogihara. Program-level adaptive memory management. In the ACM International Symposium on Memory Management, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The mapping collector: virtual memory support for generational, parallel, and concurrent compaction

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 SIGOPS Operating Systems Review
    ACM SIGOPS Operating Systems Review  Volume 42, Issue 2
    ASPLOS '08
    March 2008
    339 pages
    ISSN:0163-5980
    DOI:10.1145/1353535
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
      March 2008
      352 pages
      ISBN:9781595939586
      DOI:10.1145/1346281

    Copyright © 2008 ACM

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 March 2008

    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!