Abstract
As multithreaded server applications and runtime systems prevail, garbage collection is becoming an essential feature to support high performance systems, especially those running data-intensive applications. The fundamental issue of garbage collector (GC) design is to maximize the recycled space with minimal time overhead. This paper proposes two innovative solutions: one to improve space efficiency, and the other to improve time efficiency. To achieve space efficiency, we propose the Space Tuner that utilizes the novel concept of allocation speed to reduce wasted space. Conventional static space partitioning techniques often lead to inefficient space utilization. The Space Tuner adjusts the heap partitioning dynamically such that when a collection is triggered, all space partitions are fully filled. To achieve time efficiency, we propose a novel parallelization method that reduces the compacting GC parallelization problem into a tree traversal parallelization problem. This method can be applied for both normal and large object compaction. Object compaction is hard to parallelize due to strong data dependencies such that the source object can not be moved to its target location until the object originally in the target location has been moved out. Our proposed algorithm overcomes the difficulties by dividing the heap into equal-sized blocks and parallelizing the movement of the independent blocks. It is noteworthy that these proposed algorithms are generic such that they can be utilized in different GC designs. The proposed techniques have been implemented in Apache Harmony JVM and we evaluated the proposed algorithms with SPECjbb and Dacapo benchmark suites. The experiment results demonstrate that our proposed algorithms greatly improve space utilization and the corresponding parallelization schemes are scalable, which brings time efficiency.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Abuaiadh, D., Ossia, Y., Petrank, E., Silbershtein, U.: An efficient parallel heap compaction algorithm. In the ACM Conference on Object-Oriented Systems, Languages and Applications, Vancouver, British Columbia, Canada (2004)
Apache Harmony: Open-Source Java SE. http://harmony.apache.org/
Azatchi, H., Levanoni, Y., Paz, H., Petrank, E.: An On-the-Fly Mark and Sweep Garbage Collector Based on Sliding Views. In: Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (2003)
Barrett, D., Zorn, B.G.: Garbage collection using a dynamic threatening boundary. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, La Jolla, California (1995)
Caudill, P.J., Wirfs-Brock, A.: A third generation smalltalk-80 implementation. Conference proceedings on Object-Oriented Programming Systems, Languages and Applications, Portland, Oregon, USA (1986)
Common Language Runtime Overview. http://msdn.microsoft.com/en-us/library/ddk909ch(vs.71).aspx
Dacapo Project: The Dacapo Benchmark Suite. http://www-ali.cs.umass.edu/Dacapo/index.html
Dijkstra E.W., Lamport L., Martin A.J., Scholten C.S., Steffens E.F.: On-the-fly garbage collection: an exercise in cooperation. Commun. ACM 21(11), 966–975 (1978)
Doligez, D., Gonthier, G.: Portable, unobtrusive garbage collection for multiprocessor systems. In: Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (1994)
Domani, T., Kolodner, E.K., Petrank, E.: A generational on-the-fly garbage collector for Java. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation
Endo, T., Taura, K., Yonezawa, A.: A scalable mark-sweep garbage collector on large-scale shared-memory machines. In: Proceedings of the 1997 ACM/IEEE Conference on Supercomputing
Flood, C., Detlefs, D., Shavit, N., Zhang, C.: Parallel garbage collection for shared memory multiprocessors. In: Proceedings of the USENIX Java Virtual Machine Research and Technology Symposium, Monterey, California (2001)
Hicks, M., Hornof, L., Moore, J.T., Nettles, S.M.: A study of large object spaces. In: Proceedings of International Symposium of Memory Management, Vancouver, British Columbia, Canada (1998)
Jones, R.E.: Garbage collection: algorithms for automatic dynamic memory management. Wiley, Chichester, July (1996). With a chapter on Distributed Garbage Collection by R. Lins
Kermany, H., Petrank, E.: The compressor: concurrent, incremental and parallel compaction. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Ottawa, Canada (2006)
Soman, S., Krintz, C., Bacon, D.F.: Dynamic selection of application-specific garbage collectors. In: Proceedings of International Symposium of Memory Management, Vancouver, British Columbia, Canada (2004)
Spec: The Standard Performance Evaluation Corporation. http://www.spec.org/
Steele G.L.: Multiprocessing compactifying garbage collection. Commun. ACM 18(9), 495–508 (1975)
Wegiel, M., Krintz, C.: The mapping collector: virtual memory support for generational, parallel, and concurrent compaction. In: Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems, Seattle, WA (2008)
Wu, M., Li, X.-F.: Task-pushing: a scalable parallel GC marking algorithm without synchronization operations. In: Proceedings of IEEE International Parallel and Distributed Processing Symposium, Long Beach, California (2007)
Acknowledgments
This paper is an extended version of an earlier, smaller version that appeared in the Proceedings of ACM International Conference on Computing Frontiers 2009. This work is partly supported by the National Science Foundation under Grant No. CCF-0541403. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Open Access
This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Liu, S., Wang, L., Li, XF. et al. Space-and-Time Efficient Parallel Garbage Collector for Data-Intensive Applications. Int J Parallel Prog 39, 451–472 (2011). https://doi.org/10.1007/s10766-010-0151-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-010-0151-4