Skip to main content

AS-GC: An Efficient Generational Garbage Collector for Java Application Servers

  • Conference paper
ECOOP 2007 – Object-Oriented Programming (ECOOP 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4609))

Included in the following conference series:

Abstract

A generational collection strategy utilizing a single nursery cannot efficiently manage objects in application servers due to variance in their lifespans. In this paper, we introduce an optimization technique designed for application servers that exploits an observation that remotable objects are commonly used as gateways for client requests. Objects instantiated as part of these requests (remote objects) often live longer than objects not created to serve these remote requests (local objects). Thus, our scheme creates remote and local objects in two separate nurseries; each is properly sized to match the lifetime characteristic of the residing objects. We extended the generational collector in HotSpot to support the proposed optimization and found that given the same heap size, the proposed scheme can improve the maximum throughput of an application server by 14% over the default collector. It also allows the application server to handle 10% higher workload prior to memory exhaustion.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Blackburn, S.M., Jones, R.E., McKinley, K.S., Moss, J.E.B.: Beltway: Getting Around Garbage Collection Gridlock. In: Proceedings of the Programming Languages Design and Implementation, Berlin, Germany, pp. 153–164 (2002)

    Google Scholar 

  2. Jones, R., Lins, R.: Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, Chichester (1998)

    Google Scholar 

  3. Lieberman, H., Hewitt, C.: A Real-Time Garbage Collector Based on the Lifetimes of Objects. Communications of the ACM 26(6), 419–429 (1983)

    Article  Google Scholar 

  4. Ungar, D.: Generational Scavenging: A Non-Disruptive High Performance Storage Reclamation Algorithm. In: ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 157–167. ACM Press, New York (1984)

    Chapter  Google Scholar 

  5. Srisa-an, W., Oey, M., Elbaum, S.: Garbage Collection in the Presence of Remote Objects: An Empirical Study. In: Proceedings of the International Symposium on Distributed Objects and Applications, Agia Napa, Cyprus, pp. 1065–1082 (2005)

    Google Scholar 

  6. Xian, F., Srisa-an, W., Jiang, H.: Investigating the Throughput Degradation Behavior of Java Application Servers: A View from Inside the Virtual Machine. In: Proceedings of the 4th International Conference on Principles and Practices of Programming in Java, Mannheim, pp. 40–49 (2006)

    Google Scholar 

  7. Hertz, M., Berger, E.: Quantifying the Performance of Garbage Collection vs Explicit Memory Management. In: OOPSLA ’05. 20th annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, San Diego, CA, pp. 313–326. ACM Press, New York (2005)

    Chapter  Google Scholar 

  8. Yang, T., Berger, E.D., Kaplan, S.F., Moss, J.E.B.: CRAMM: Virtual Memory Support for Garbage-Collected Applications. In: OSDI’06: Proceedings of the USENIX Conference on Operating System Design and Implementation, Seattle, WA (2006)

    Google Scholar 

  9. Hayes, B.: Using Key Object Opportunism to Collect Old Objects. In: OOPSLA ’91: Conference proceedings on Object-oriented programming systems, languages, and applications, Phoenix, AR, pp. 33–46 (1991)

    Google Scholar 

  10. IDC: Web services to reach $21 billion by 2007. On-line Article (2003), http://thewhir.com/marketwatch/idc020503.cfm

  11. Blackburn, S.M., Singhai, S., Hertz, M., McKinely, K.S., Moss, J.E.B.: Pretenuring for Java. In: Proceedings of the OOPSLA ’01 conference on Object Oriented Programming Systems Languages and Applications, Tampa Bay, FL, pp. 342–352 (2001)

    Google Scholar 

  12. Harris, T.L.: Dynamic Adaptive Pretenuring. In: Proceedings of International Symposium on Memory Management, Minneapolis, Minnesota, United States, pp. 127–136 (2000)

    Google Scholar 

  13. Stefanović, D., McKinley, K.S., Moss, J.E.B.: Age-Based Garbage Collection. In: OOPSLA ’99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented Programming, Systems, Languages, and Applications, Denver, Colorado, United States, pp. 370–381 (1999)

    Google Scholar 

  14. Wilson, P.R., Johnstone, M.S., Neely, M., Boles, D.: Dynamic Storage Allocation: A Survey and Critical Review. In: Baker, H.G. (ed.) Memory Management. LNCS, vol. 986, pp. 1–116. Springer, Heidelberg (1995)

    Google Scholar 

  15. Welsh, M., Culler, D.E., Brewer, E.A.: SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In: Symposium on Operating Systems Principles, pp. 230–243 (2001)

    Google Scholar 

  16. Hibino, H., Kourai, K., Shiba, S.: Difference of Degradation Schemes among Operating Systems: Experimental Analysis for Web Application Servers. In: Workshop on Dependable Software, Tools and Methods, Yokohama, Japan (2005)

    Google Scholar 

  17. Netcraft: Video iPod Launch Slows Apple Store (2005), http://news.netcraft.com/archives/2005/10/12/video_ipod_launch_slows_apple_store.html

  18. Chosun Ilbo: Cyber Crime Behind College Application Server Crash. On-line article (2006), http://english.chosun.com/w21data/html/news/200602/200602100025.html

  19. Standard Performance Evaluation Corporation: Spec jvm98 benchmarks (Last Retrieved: June 2005), http://www.spec.org/osg/jvm98

  20. Standard Performance Evaluation Corporation: SPECjbb2000, WhitePaper (2000), http://www.spec.org/osg/jbb2000/docs/whitepaper.html

  21. Standard Performance Evaluation Corporation: SPECjAppServer2004 User’s Guide. On-Line User’s Guide (2004), http://www.spec.org/osg/jAppServer2004/docs/UserGuide.html

  22. Hirzel, M., Henkel, J., Diwan, A., Hind, M.: Understanding the Connectivity of Heap Objects. In: ISMM ’02. Proceedings of the 3rd International Symposium on Memory Management, Berlin, Germany, pp. 36–49 (2002)

    Google Scholar 

  23. Hirzel, M., Diwan, A., Hertz, M.: Connectivity-Based Garbage Collection. In: ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 359–373. ACM Press, New York (2003)

    Google Scholar 

  24. Guyer, S.Z., McKinley, K.S.: Finding your Cronies: Static Analysis for Dynamic Object Colocation. In: OOPSLA ’04. Proceedings of the 19th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Vancouver, BC, Canada, pp. 237–250. ACM Press, New York (2004)

    Chapter  Google Scholar 

  25. Sun: Performance Documentation for the Java HotSpot VM. On-Line Documentation (Last Retrieved: June 2005), http://java.sun.com/docs/hotspot/

  26. JBoss:Jboss Application Server. Product Literature (2005), http://www.jboss.org/products/jbossas

  27. Sachindran, N., Moss, J.E.B.: Mark-copy: Fast Copying GC with Less Space Overhead. SIGPLAN Notices 38(11), 326–343 (2003)

    Article  Google Scholar 

  28. Domani, T., Goldshtein, G., Kolodner, E.K., Lewis, E., Petrank, E., Sheinwald, D.: Thread-Local Heaps for Java. SIGPLAN Not. 38(suppl. 2), 76–87 (2003)

    Google Scholar 

  29. Steensgaard, B.: Thread-Specific Heaps for Multi-Threaded Programs. In: ISMM ’00. Proceedings of the 2nd International Symposium on Memory Management, Minneapolis, Minnesota, United States, pp. 18–24 (2000)

    Google Scholar 

  30. Larson, P., Krishnan, M.: Memory Allocation for Long-Running Server Applications. In: ISMM ’98. Proceedings of the 1st International Symposium on Memory Management, Vancouver, British Columbia, Canada, pp. 176–185 (1998)

    Google Scholar 

  31. Gay, D., Aiken, A.: Memory Management with Explicit Regions. In: PLDI ’98. Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, Montreal, Quebec, Canada, pp. 313–323. ACM Press, New York (1998)

    Chapter  Google Scholar 

  32. Grossman, D., Morrisett, G., Jim, T., Hicks, M., Wang, Y., Cheney, J.: Region-Based Memory Management in Cyclone. In: PLDI ’02. Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, Berlin, Germany, pp. 282–293. ACM Press, New York (2002)

    Chapter  Google Scholar 

  33. Stoutamire, D.P.: Portable, Modular Expression of Locality. PhD thesis, University of California-Berkeley, Chair-Jerome A. Feldman (1997)

    Google Scholar 

  34. Tofte, M., Talpin, J.P.: Region-Based Memory Management. Information and Computation 132(2), 109–176 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  35. Bollella, G., Gosling, J.: The Real-Time Specification for Java. Computer 33(6), 47–54 (2000)

    Article  Google Scholar 

  36. Elsman, M.: Garbage Collection Safety for Region-Based Memory Management. In: TLDI ’03. Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, New Orleans, Louisiana, pp. 123–134. ACM Press, New York (2003)

    Chapter  Google Scholar 

  37. Standard Performance Evaluation Corporation: SPECjAppServer2002 User’s Guide. On-Line User’s Guide (2002), http://www.spec.org/osg/jAppServer2002/docs/UserGuide.html

  38. Jump, M., Blackburn, S.M., McKinley, K.S.: Dynamic Object Sampling for Pretenuring. In: ISMM ’04. Proceedings of the 4th International Symposium on Memory Management, Vancouver, BC, Canada, pp. 152–162 (2004)

    Google Scholar 

  39. Huang, W., Srisa-an, W., Chang, J.: Dynamic Pretenuring for Java. In: International Symposium on Performance Analysis of Systems and Software ISPASS, March 10-13, 2004, Austin, TX, pp. 133–140 (2004)

    Google Scholar 

  40. Clinger, W.D., Hansen, L.T.: Generational Garbage Collection and the Radioactive Decay Model. In: PLDI ’97. Proceedings of the ACM SIGPLAN 1997 Conference on Programming Language Design and Implementation, Las Vegas, Nevada, United States, pp. 97–108. ACM Press, New York (1997)

    Chapter  Google Scholar 

  41. Reppy, J.H.: A High-Performance Garbage Collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ (1993)

    Google Scholar 

  42. Cohen, M., Kooi, S.B., Srisa-an, W.: Clustering the Heap in Multi-Threaded Applications for Improved Garbage Collection. In: GECCO ’06. Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, Seattle, Washington, USA, pp. 1901–1908 (2006)

    Google Scholar 

  43. Hertz, M., Feng, Y., Berger, E.D.: Garbage Collection Without Paging. In: PLDI ’05. Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, Chicago, IL, pp. 143–153. ACM Press, New York (2005)

    Chapter  Google Scholar 

  44. Yang, T., Hertz, M., Berger, E.D., Kaplan, S.F., Moss, J.E.B.: Automatic Heap Sizing: Taking Real Memory into Account. In: Proceedings of the International Symposium on Memory Management, Vancouver, BC, Canada, pp. 61–72 (2004)

    Google Scholar 

  45. Zhang, C., Kelsey, K., Shen, X., Ding, C., Hertz, M., Ogihara, M.: Program-Level Adaptive Memory Management. In: International Symposium on Memory Management, Ottawa, Canada, pp. 174–183 (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Erik Ernst

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Xian, F., Srisa-an, W., Jia, C., Jiang, H. (2007). AS-GC: An Efficient Generational Garbage Collector for Java Application Servers. In: Ernst, E. (eds) ECOOP 2007 – Object-Oriented Programming. ECOOP 2007. Lecture Notes in Computer Science, vol 4609. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73589-2_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73589-2_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73588-5

  • Online ISBN: 978-3-540-73589-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics