A survey of distributed garbage collection techniques

  • David Plainfossé
  • Marc Shapiro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 986)


We present the spectrum of distributed garbage collection techniques. We first describe those reference counting-based techniques and compare them, in particular with respect to resilience to message failures. Reference counting-based techniques are acyclic since they are unable to collect cyclic data structures. We then describe a number of hybrid schemes improving over distributed reference counting algorithms in order to collect cyclic garbage. We then describe tracing-based techniques derived from uniprocessor tracing-based techniques. Finally, we discuss the pros and cons of each technique.


Control Message Garbage Collection Partial Weight Race Condition Local Root 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Ali, 1984]
    K. A. Mohammed Ali. Object-Oriented Storage Management and Garbage Collection in Distributed Processing Systems. PhD thesis, Royal Institute of Technology, Dept. of Computer Systems, Stockholm, Sweden, 1984.Google Scholar
  2. [Bakker et al., 1987]
    W. Jacobus Bakker, L. Nijman, and Philip C. Treleaven, editors. Parallel Architectures and Languages Europe, number 258, 259 in Lecture Notes in Computer Science, Eindhoven, The Netherlands, June 1987. Springer-Verlag.Google Scholar
  3. [Bevan, 1987]
    David I. Bevan. Distributed Garbage Collection Using Reference Counting. In Bakker et al. [1987], pages 117–187.Google Scholar
  4. [Birrell et al., 1993]
    A. Birrell, D. Evers, G. Nelson, S. Owicki, and T. Wobber. Distributed garbage collection for network objects. Technical Report 116, Digital Equipment Corporation Systems Research Center, December 1993.Google Scholar
  5. [Birrell et al., 1994]
    A. Birrell, G. Nelson, S. Owicki, and T. Wobber. Network objects. Technical Report 115, Digital Equipment Corporation Systems Research Center, February 1994.Google Scholar
  6. [Bishop, 1977]
    Peter B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, Massachusetts Institute of Technology Laboratory for Computer Science, May 1977. Technical report MIT/LCS/TR-178.Google Scholar
  7. [Cardelli et al., 1988]
    L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report. Technical report, Digital Systems Research Center and Olivetti Research Center, Palo Alto, CA, 1988.Google Scholar
  8. [Corporaal et al., 1990]
    H. Corporaal, T. Veldman, and A. J. van de Goor. An Efficient, Reference Weightbased Garbage Collection Method for Distributed Systems. In Proceedings of the PARBASE-90 Conference, pages 463–465. IEEE, 1990.Google Scholar
  9. [Dickman, 1991]
    Peter Dickman. Distributed Object Management in a Non-Small Graph of Autonomous Networks With Few Failures. PhD thesis, University of Cambridge, United Kingdom, September 1991.Google Scholar
  10. [Dickman, 1992]
    Peter Dickman. Optimising Weighted Reference Counts for Scalable Fault-Tolerant Distributed Object-Support Systems. Submitted for HICSS 26, June 1992.Google Scholar
  11. [Ferreira and Shapiro, 1994]
    Paulo Ferreira and Marc Shapiro. Garbage collection and DSM consistency. In Proc. of the First Symposium on Operating Systems Design and Implementation (OSDI), pages 229–241. ACM, November 1994.Google Scholar
  12. [Fowler, 1986]
    Robert Joseph Fowler. The complexity of using forwarding addresses for decentralized object finding. In Proc. 5th Annual ACM Symp. on Principles of Distributed Computing, pages 108–120, Alberta, Canada, August 1986.Google Scholar
  13. [Goldberg, 1989]
    Benjamin Goldberg. Generational reference counting: A reduced-communication distributed storage reclamation scheme. In Proceedings of the 1989 SIGPLAN Conference on Programming Language Design and Implementation, pages 313–320, Portland, Oregon, June 1989. ACM Press. Published as SIGPLAN Notices 24(7), July 1989.Google Scholar
  14. [Hughes, 1985]
    John Hughes. A distributed garbage collection algorithm. In Jean-Pierre Jouannaud, editor, ACM Conference on Functional Programming Languages and Computer Architecture, number 201 in Lecture Notes in Computer Science, pages 256–272, Nancy, France, Software Practice and Experience 1985. Springer-Verlag.Google Scholar
  15. [Juul and Jul, 1992]
    Niels Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Yves Bekkers and Jacques Cohen, editors, International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, St. Malo, France, September 1992. Springer-Verlag.Google Scholar
  16. [Kernighan and Ritchie, 1978]
    Brian Kernighan and Dennis Ritchie. The C Programming Language. Prentice-Hall, Englewood-Cliffs, N.J., 1978.Google Scholar
  17. [Ladin and Liskov, 1992]
    Rivka Ladin and Barbara Liskov. Garbage collection of a distributed heap. In Principles of Distributed Computing, pages 708–715, 1992.Google Scholar
  18. [Lamport, 1978]
    Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, July 1978.CrossRefGoogle Scholar
  19. [Lang et al., 1992]
    Bernard Lang, Christian Queinnec, and José Piquer. Garbage collecting the world. In Conference Record of the Nineteenth Annual A CM Symposium on Principles of Programming Languages, pages 39–50, Albuquerque, New Mexico (USA), January 1992. ACM Press.Google Scholar
  20. [Lins and Jones, 1991]
    Rafael D. Lins and Richard E. Jones. Cyclic weighted reference counting. Technical Report 95, University of Kent, Canterbury, United Kingdom, December 1991.Google Scholar
  21. [Lins, 1990]
    Rafael D. Lins. Cyclic reference counting with lazy mark-scan. Technical Report 75, University of Kent, Canterbury, United Kingdom, June 1990. To appear in Information Processing Letters.Google Scholar
  22. [Liskov and Ladin, 1986]
    Barbara Liskov and Rivka Ladin. Highly-available distributed services and fault-tolerant distributed garbage collection. In Fifth ACM Symposium on the Principles of Distributed Computing, pages 29–39, 1986.Google Scholar
  23. [Piquer, 1991]
    José M. Piquer. Indirect reference-counting, a distributed garbage collection algorithm. In Eddy Odijik, M. Rem, and Jean-Claude Sayr, editors, Parallel Architectures and Languages Europe, number 365, 366 in Lecture Notes in Computer Science, pages 150–165, Eindhoven, the Netherlands, June 1991. Springer-Verlag.Google Scholar
  24. [Plainfossé, 1994]
    David Plainfossé. Distributed Garbage Collection and Reference Management in the Soul Object Support System. PhD thesis, Université Paris-6, Pierre-et-Marie-Curie, Paris (France), June 1994. Available from INRIA as TU-281, ISBN-2-7261-0849-0.Google Scholar
  25. [Rudalics, 1990]
    Martin Rudalics. Correctness of distributed garbage collection algorithms. Technical Report 90-40.0, Johannes Kepler Universitat, Linz Austria, 1990.Google Scholar
  26. [Shapiro et al., 1990]
    Marc Shapiro, Olivier Gruber, and David Plainfossé. A garbage detection protocol for a realistic distributed object-support system. Rapport de Recherche 1320, inria, rocquencourt, November 1990.Google Scholar
  27. [Shapiro et al., 1992]
    Marc Shapiro, Peter Dickman, and David Plainfossé. Robust, distributed references and acyclic garbage collection. In Symp. on Principles of Distributed Computing, Vancouver (Canada), August 1992. ACM.Google Scholar
  28. [Stroustrup, 1991]
    Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, second edition, 1991.Google Scholar
  29. [Vestal, 1987]
    S. C. Vestal. Garbage Collection: An Exercise in Distributed, Fault-Tolerant Programming. PhD thesis, University of Washington, Seattle, Washington, January 1987.Google Scholar
  30. [Watson and Watson, 1987]
    P. Watson and I. Watson. An Efficient Garbage Collection Scheme for Parallel Computer Architecture. In Bakker et al. [1987], pages 432–443.Google Scholar
  31. [Weis, 1990]
    P. Weis. The CAML Reference manual, Version 2.6.1. Technical Report 121, INRIA-Rocquencourt, 1990.Google Scholar

Copyright information

© Springer-Verlag 1995

Authors and Affiliations

  • David Plainfossé
    • 1
  • Marc Shapiro
    • 2
  1. 1.ILOGGentilly CedexFrance
  2. 2.Projet SORINRIALe Chesnay CedexFrance

Personalised recommendations