Abstract
This paper presents a new algorithm for distributed garbage collection and outlines its implementation within the Network Objects system. The algorithm is based on a reference listing scheme augmented by partial tracing in order to collect distributed garbage cycles. Our collector is designed to be flexible thereby allowing efficiency, expediency and fault-tolerance to be traded against completeness. Processes may be dynamically organised into groups, according to appropriate heuristics, in order to reclaim distributed garbage cycles. Unlike previous groupbased algorithms, multiple concurrent distributed garbage collections that span groups are supported: when two collections meet they may either merge, overlap or retreat. The algorithm places no overhead on local collectors and suspends local mutators only briefly. Partial tracing of the distributed graph involves only objects thought to be part of a garbage cycle: no collaboration with other processes is required.
Work supported by JNICT grant (CIENCIA/BD/2773/93-IA) through the PRAXIS XXI Program (Portugal).
Preview
Unable to display preview. Download preview PDF.
References
Andrew W. Appel, John R. Ellis, and Kai Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11–20, 1988.
Lex Augusteijn. Garbage collection in a distributed environment. In de Bakker et al. [12], pages 75–93.
Henry Baker, editor. International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, Kinross, Scotland, September 1995. Springer-Verlag.
Joel F. Bartlett. Compacting garbage collection with ambiguous roots. Lisp Pointers 1, 6 (April–June 1988), pp. 2–12.
Yves Bekkers and Jacques Cohen, editors. International Workshop on Memory Management, volume 637 of Lecture Notes in Computer Science, St Malo, France, 16–18 September 1992. Springer-Verlag.
David I. Bevan. Distributed garbage collection using reference counting. In PARLE Parallel Architectures and Languages Europe, volume 259 of Lecture Notes in Computer Science, pages 176–187. Springer-Verlag, June 1987.
Andrew Birrell, David Evers, Greg Nelson, Susan Owicki, and Edward Wobber. Distributed garbage collection for network objects. Technical Report 116, DEC Systems Research Center, December 1993.
Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Technical Report 115, DEC Systems Research Center, February 1994.
Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157–164, 1991.
Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow, and Greg Nelson. Modula-3 report (revised). Research Report PRC-131, DEC Systems Research Center and Olivetti Research Center, 1988.
T. W. Christopher. Reference count garbage collection. Software Practice and Experience, 14(6):503–507, June 1984.
Jacobus W. de Bakker, L. Nijman, and Philip C. Treleaven, editors. PARLE'87 Parallel Architectures and Languages Europe, volume 258/259 of Lecture Notes in Computer Science, Eindhoven, The Netherlands, June 1987. Springer-Verlag.
Margaret H. Derbyshire. Mark scan garbage collection on a distributed architecture. Lisp and Symbolic Computation, 3(2): 135–170, April 1990.
Paulo Ferreira and Marc Shapiro. Asynchronous distributed garbage collection in the Larchant cached shared store. Available from Marc Shapiro, May 1996.
Matthew Fuchs. Garbage collection on an open network. In Baker [3].
Benjamin Goldberg. Generational reference counting: A reduced-communication distributed storage reclamation scheme. In Conference on Programming Languages Design and Implementation, volume 24(7) of ACM SIGPLAN Notices, pages 313–320, Portland, June 1989.
Paul R. Hudak and R. M. Keller. Garbage collection and task deletion in distributed applicative processing systems. In Symposium on Lisp and Functional Programming, pages 168–178, Pittsburgh, August 1982. ACM Press.
Richard L. Hudson, Ron Morrison, J. Eliot B. Moss, and David S. Munro. Garbage collecting the world: One car at a time. In Conference on Object-Oriented Systems, Languages and Applications — Twelth Annual Conference, volume 32(10) of ACM SIGPLAN Notices, pages 162–175. ACM Press, October 1997.
Richard L. Hudson and J. Eliot, B. Moss. Incremental garbage collection for mature objects. In Bekkers and Cohen [5].
Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. With a chapter on Distributed Garbage Collection by R. Lins.
Richard E. Jones and Rafael D. Lins. Cyclic weighted reference counting without delay. Parallel Architectures and Languages Europe, volume 694 of Lecture Notes in Computer Science. Springer-Verlag, June 1993.
Neils-Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Bekkers and Cohen [5].
Rivka Ladin and Barbara Liskov. Garbage collection of a distributed heap. In International Conference on Distributed Computing Systems, Yokohama, June 1992.
Bernard Lang, Christian Quenniac, and José Piquer. Garbage collecting the world. In Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, pages 39–50. ACM Press, January 1992.
Munenori Maeda, Hiroki Konaka, Yutaka Ishikawa, Takashi Tomokiyo, Atsushi Hori, and Jorg Nolte. On-the-fly global garbage collection based on partly marksweep. In Baker [3].
Umesh Maheshwari. Fault-tolerant distributed garbage collection in a client-server object-oriented database. In Conference on Parallel and Distributed Information Systems, Austin, September 1994.
Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by controlled migration. In Principles of Distributed Computing, 1995.
Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by back tracing. In Principles of Distributed Computing, 1997.
José M. Piquer. Indirect reference counting: A distributed garbage collection algorithm. In Parallel Architectures and Languages Europe, volume 505 of Lecture Notes in Computer Science. Springer-Verlag, June 1991.
David Plainfossé and Marc Shapiro. Experience with fault-tolerant garbage collection in a distributed Lisp system. In Bekkers and Cohen [5].
David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Baker [3].
S. P. Rana. A distributed solution to the distributed termination problem. Information Processing Letters, 17:43–46, July 1983.
Helena C. C. D. Rodrigues and Richard E. Jones. A cyclic distributed garbage collector for Network Objects. In International Workshop on Distributed Algorithms WDAG'96, Bologna, October 1996.
Helena C.C.D. Rodrigues. Cyclic Distributed Garbage Collection. PhD thesis, Computing Laboratory, The University of Kent at Canterbury, 1998. In preparation.
Marc Shapiro. A fault-tolerant, scalable, low-overhead distributed garbage collection protocol. In Symposium on Reliable Distributed Systems, Pisa, September 1991.
Marc Shapiro, Peter Dickman, and David Plainfossé. SSP chains: Robust, distributed references supporting acyclic garbage collection. Rapports de Recherche 1799, Institut National de la Recherche en Informatique et Automatique, November 1992.
N.G. Shivaratri, P. Krueger, and M. Singhal. Load distributing for locally distributed systems. Computer, 25(12):33–44, December 1992.
Gerard Tel and Friedmann Mattern. The derivation of distributed termination detection algorithms from garbage collection schemes. ACM Transactions on Programming Languages and Systems, 15(1), January 1993.
Paul Watson and Ian Watson. An efficient garbage collection scheme for parallel computer architectures. In de Bakker et al. [12], pages 432–443.
Paul Wilson. Distr. gc general discussion for faq. gclist mailing list (gclist@iecc.com), March 1996.
Paul Wilson. Garbage collection and memory hierarchy. In Bekkers and Cohen [5].
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rodrigues, H., Jones, R. (1998). Cyclic distributed garbage collection with group merger. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054095
Download citation
DOI: https://doi.org/10.1007/BFb0054095
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64737-9
Online ISBN: 978-3-540-69064-1
eBook Packages: Springer Book Archive