Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2394758.2394768acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
Article

AS-GC: an efficient generational garbage collector for java application servers

Published: 30 July 2007 Publication History

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.

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)
[2]
Jones, R., Lins, R.: Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, Chichester (1998)
[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)
[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)
[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)
[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)
[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, USA, pp. 313-326 (2005)
[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)
[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)
[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)
[12]
Harris, T.L.: Dynamic Adaptive Pretenuring. In: Proceedings of International Symposium on Memory Management, Minneapolis, Minnesota, United States, pp. 127-136 (2000)
[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, Colorado, United States pp. 370-381(1999)
[14]
Wilson, P.R., Johnstone, M.S., Neely, M., Boles, D.: Dynamic Storage Allocation: A Survey and Critical Review. In: IWMM '95: Proceedings of the International Workshop on Memory Management, London, UK, pp. 1-116. Springer, Heidelberg (1995)
[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)
[16]
Hibino, H., Kourai, K., Shiba, S.: Difference of Degradation Schemes among Operating Systems: Experimental Analysis forWeb Application Servers. In:Workshop on Dependable Software, Tools and Methods, Yokohama, Japan (2005)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[32]
Grossman, D., Morrisett, G., Jim, T., Hicks, M.,Wang, Y., Cheney, J.: Region-BasedMemory 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)
[33]
Stoutamire, D.P.: Portable, Modular Expression of Locality. PhD thesis, University of California-Berkeley, Chair-Jerome A. Feldman (1997)
[34]
Tofte, M., Talpin, J.P.: Region-Based Memory Management. Information and Computation 132(2), 109-176 (1997)
[35]
Bollella, G., Gosling, J.: The Real-Time Specification for Java. Computer 33(6), 47-54 (2000)
[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, USA, pp. 123-134. ACM Press, New York (2003)
[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)
[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)
[40]
Clinger, W.D., Hansen, L.T.: Generational Garbage Collection and the Radioactive Decay Model. In: PLDI '97: Proceedings of the ACMSIGPLAN 1997 Conference on Programming Language Design and Implementation, Las Vegas, Nevada, United States, pp. 97-108. ACM Press, New York (1997)
[41]
Reppy, J.H.: A High-Performance Garbage Collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ (1993)
[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)
[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, USA, pp. 143-153. ACM Press, New York (2005)
[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)
[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)

Cited By

View all
  • (2018)Towards an Efficient Benchmark Generation Engine for Garbage CollectionCompanion of the 2018 ACM/SPEC International Conference on Performance Engineering10.1145/3185768.3186303(9-12)Online publication date: 2-Apr-2018
  • (2015)SmartStealingProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807441(170-181)Online publication date: 8-Sep-2015
  • (2007)MicrophaseACM SIGPLAN Notices10.1145/1297105.129703442:10(77-96)Online publication date: 21-Oct-2007
  • Show More Cited By
  1. AS-GC: an efficient generational garbage collector for java application servers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ECOOP'07: Proceedings of the 21st European conference on Object-Oriented Programming
    July 2007
    624 pages
    ISBN:3540735887
    • Editor:
    • Erik Ernst

    Sponsors

    • SAP
    • Technical University of Berlin: Technical University of Berlin
    • Deutsche Telekom Laboratories: Deutsche Telekom Laboratories
    • AITO: Assoc Internationale por les Technologies Objects
    • IBM: IBM

    In-Cooperation

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 30 July 2007

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 30 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Towards an Efficient Benchmark Generation Engine for Garbage CollectionCompanion of the 2018 ACM/SPEC International Conference on Performance Engineering10.1145/3185768.3186303(9-12)Online publication date: 2-Apr-2018
    • (2015)SmartStealingProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807441(170-181)Online publication date: 8-Sep-2015
    • (2007)MicrophaseACM SIGPLAN Notices10.1145/1297105.129703442:10(77-96)Online publication date: 21-Oct-2007
    • (2007)MicrophaseProceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications10.1145/1297027.1297034(77-96)Online publication date: 21-Oct-2007
    • (2007)Allocation-phase aware thread scheduling policies to improve garbage collection performanceProceedings of the 6th international symposium on Memory management10.1145/1296907.1296919(79-90)Online publication date: 21-Oct-2007

    View Options

    Get Access

    Login options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media