|
ABSTRACT
Multithreaded applications with multigigabyte heaps running on modern servers provide new challenges for garbage collection (GC). The challenges for “server-oriented” GC include: ensuring short pause times on a multigigabyte heap while minimizing throughput penalty, good scaling on multiprocessor hardware, and keeping the number of expensive multicycle fence instructions required by weak ordering to a minimum.We designed and implemented a collector facing these demands building on the mostly concurrent garbage collector proposed by Boehm et al. [1991]. Our collector incorporates new ideas into the original collector. We make it parallel and incremental; we employ concurrent low-priority background GC threads to take advantage of processor idle time; we propose novel algorithmic improvements to the basic mostly concurrent algorithm improving its efficiency and shortening its pause times; and finally, we use advanced techniques, such as a low-overhead work packet mechanism to enable full parallelism among the incremental and concurrent collecting threads and ensure load balancing.We compared the new collector to the mature, well-optimized, parallel, stop-the-world mark-sweep collector already in the IBM JVM. When allowed to run aggressively, using 72% of the CPU utilization during a short concurrent phase, our collector prototype reduces the maximum pause time from 161 ms to 46 ms while only losing 11.5% throughput when running the SPECjbb2000 benchmark on a 600-MB heap on an 8-way PowerPC 1.1-GHz processors. When the collector is limited to a nonintrusive operation using only 29% of the CPU utilization, the maximum pause time obtained is 79 ms and the loss in throughput is 15.4%.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Adve, S. V. and Gharachorloo, K. 1995. Shared memory consistency models: A tutorial. Res. Rep. 95/7. Western Research Laboratory, Palo Alto, CA, Sept.
|
| |
2
|
Azagury, A., Kolodner, E. K., and Petrank, E. 1999. A note on the implementation of replication-based garbage collection for multithreaded applications and multiprocessor environments. Paral. Proc. Lett.
|
 |
3
|
Hezi Azatchi , Yossi Levanoni , Harel Paz , Erez Petrank, An on-the-fly mark and sweep garbage collector based on sliding views, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
4
|
David F. Bacon , Clement R. Attanasio , Han B. Lee , V. T. Rajan , Stephen Smith, Java without the coffee breaks: a nonintrusive multiprocessor garbage collector, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.92-103, June 2001, Snowbird, Utah, United States
|
 |
5
|
David F. Bacon , Ravi Konuru , Chet Murthy , Mauricio Serrano, Thin locks: featherweight synchronization for Java, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.258-268, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
6
|
|
 |
7
|
Ori Ben-Yitzhak , Irit Goft , Elliot K. Kolodner , Kean Kuiper , Victor Leikehman, An algorithm for parallel incremental compaction, Proceedings of the 3rd international symposium on Memory management, June 20-21, 2002, Berlin, Germany
|
 |
8
|
|
| |
9
|
Borman, S. 2002. Sensible sanitation - understanding the ibm java garbage collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.
|
 |
10
|
|
| |
11
|
Corella, F., Stone, J., and Barton, C. 1993. Specification of the PowerPC shared memory architecture. Tech. Rep. 18638, IBM Thomas J. Watson Research Center. Jan.
|
| |
12
|
DeTreville, J. 1990. Experience with concurrent garbage collectors for Modula-2+. Tech. Rep. 64, DEC Systems Research Center, Palo Alto, CA. Aug.
|
| |
13
|
Dijkstra, E. W., Lamport, L., Martin, A. J., Scholten, C. S., and Steffens, E. F. M. 1976. On-the-fly garbage collection: An exercise in cooperation. In Lecture Notes in Computer Science, vol. 46. Springer-Verlag, New York.
|
 |
14
|
|
| |
15
|
|
 |
16
|
Damien Doligez , Georges Gonthier, Portable, unobtrusive garbage collection for multiprocessor systems, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.70-83, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.174673]
|
 |
17
|
|
 |
18
|
Tamar Domani , Elliot K. Kolodner , Erez Petrank, A generational on-the-fly garbage collector for Java, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.274-284, June 18-21, 2000, Vancouver, British Columbia, Canada
|
 |
19
|
Tamar Domani , Elliot K. Kolodner , Ethan Lewis , Eliot E. Salant , Katherine Barabash , Itai Lahan , Yossi Levanoni , Erez Petrank , Igor Yanorer, Implementing an on-the-fly garbage collector for Java, Proceedings of the 2nd international symposium on Memory management, p.155-166, October 15-16, 2000, Minneapolis, Minnesota, United States
|
 |
20
|
|
 |
21
|
|
| |
22
|
Flood, C., Detlefs, D., Shavit, N., and Zhang, C. 2001. Parallel garbage collection for shared memory multiprocessors. In Proceedings of the Usenix Java Virtual Machine Research and Technology Symposium (JVM '01) (Monterey, CA).
|
| |
23
|
Hosking, T., Ed. 2000. ISMM 2000 Proceedings of the Second International Symposium on Memory Management. ACM SIGPLAN Notices, vol. 36(1). ACM Press, Minneapolis, MN.
|
| |
24
|
|
 |
25
|
|
| |
26
|
IBM 2000. Z/Architecture Principles of Operation (SA22-7832-01). Appendix A. Available at www.ibm.com.
|
| |
27
|
Intel 1999. IA-64 Application Developer's Architecture Guide. Available at http://developer.intel.com/design/itanium.
|
| |
28
|
Intel Software Network, Software Products. 2005. Intel Vtune Performance Analyzers. http://www.intel.com/cd/software/products/asmona/eng/vtune/index.htm.
|
| |
29
|
|
 |
30
|
|
 |
31
|
Yossi Levanoni , Erez Petrank, An on-the-fly reference counting garbage collector for Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.367-380, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
32
|
|
 |
33
|
|
 |
34
|
|
| |
35
|
|
 |
36
|
|
| |
37
|
|
| |
38
|
SPECjbb2000 1998. SPECjbb2000 Java Business Benchmark. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA. Available at http://www.spec.org/osg/jbb2000/.
|
| |
39
|
SPECJVM98 1998. SPECjvm98 Benchmarks. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA. Available at http://www.spec.org/osg/jvm98/.
|
 |
40
|
|
 |
41
|
|
| |
42
|
T. Suganuma , T. Ogasawara , M. Takeuchi , T. Yasue , M. Kawahito , K. Ishizaki , H. Komatsu , T. Nakatani, Overview of the IBM Java just-in-time compiler, IBM Systems Journal, v.39 n.1, p.175-193, January 2000
|
 |
43
|
Toshio Suganuma , Toshiaki Yasue , Motohiro Kawahito , Hideaki Komatsu , Toshio Nakatani, A dynamic optimization framework for a Java just-in-time compiler, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.180-195, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
44
|
SUN 2003. JSRs: Java Specification Requests. JSR 133: Java Memory Model and Thread Specification Revision. Available at hhttp://jcp.org/jsr/detail/133.jsp.
|
| |
45
|
Thomas, S., Charnell, W., Darnell, S., Dias, B. A. A., Kramskoy, J. G. P., Sexton, J., Wynn, J., Rautenbach, K., and Plummer W. 1998. Lowconnection grey object sets for concurrent, marking garbage collection. United States Patent Application, 20020042807.
|
 |
46
|
|
| |
47
|
|
CITED BY 11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filip Pizlo , Daniel Frampton , Erez Petrank , Bjarne Steensgaard, Stopless: a real-time garbage collector for multiprocessors, Proceedings of the 6th international symposium on Memory management, October 21-22, 2007, Montreal, Quebec, Canada
|
|
|
Simon Marlow , Tim Harris , Roshan P. James , Simon Peyton Jones, Parallel generational-copying garbage collection with a block-structured heap, Proceedings of the 7th international symposium on Memory management, June 07-08, 2008, Tucson, AZ, USA
|
|
|
|
|
|
|
|
|
Gabriel Kliot , Erez Petrank , Bjarne Steensgaard, A lock-free, concurrent, and incremental stack scanning for garbage collectors, Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, March 11-13, 2009, Washington, DC, USA
|
|
|
|
|