Skip to main content

Cyclic distributed garbage collection with group merger

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1445))

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).

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrew W. Appel, John R. Ellis, and Kai Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11–20, 1988.

    Article  Google Scholar 

  2. Lex Augusteijn. Garbage collection in a distributed environment. In de Bakker et al. [12], pages 75–93.

    Google Scholar 

  3. Henry Baker, editor. International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, Kinross, Scotland, September 1995. Springer-Verlag.

    Google Scholar 

  4. Joel F. Bartlett. Compacting garbage collection with ambiguous roots. Lisp Pointers 1, 6 (April–June 1988), pp. 2–12.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Technical Report 115, DEC Systems Research Center, February 1994.

    Google Scholar 

  9. Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157–164, 1991.

    Article  Google Scholar 

  10. 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.

    Google Scholar 

  11. T. W. Christopher. Reference count garbage collection. Software Practice and Experience, 14(6):503–507, June 1984.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Margaret H. Derbyshire. Mark scan garbage collection on a distributed architecture. Lisp and Symbolic Computation, 3(2): 135–170, April 1990.

    Article  Google Scholar 

  14. Paulo Ferreira and Marc Shapiro. Asynchronous distributed garbage collection in the Larchant cached shared store. Available from Marc Shapiro, May 1996.

    Google Scholar 

  15. Matthew Fuchs. Garbage collection on an open network. In Baker [3].

    Google Scholar 

  16. 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.

    Article  Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. Richard L. Hudson and J. Eliot, B. Moss. Incremental garbage collection for mature objects. In Bekkers and Cohen [5].

    Google Scholar 

  20. Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. With a chapter on Distributed Garbage Collection by R. Lins.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. Neils-Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Bekkers and Cohen [5].

    Google Scholar 

  23. Rivka Ladin and Barbara Liskov. Garbage collection of a distributed heap. In International Conference on Distributed Computing Systems, Yokohama, June 1992.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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].

    Google Scholar 

  26. 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.

    Google Scholar 

  27. Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by controlled migration. In Principles of Distributed Computing, 1995.

    Google Scholar 

  28. Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by back tracing. In Principles of Distributed Computing, 1997.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. David Plainfossé and Marc Shapiro. Experience with fault-tolerant garbage collection in a distributed Lisp system. In Bekkers and Cohen [5].

    Google Scholar 

  31. David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Baker [3].

    Google Scholar 

  32. S. P. Rana. A distributed solution to the distributed termination problem. Information Processing Letters, 17:43–46, July 1983.

    Article  MATH  MathSciNet  Google Scholar 

  33. 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.

    Google Scholar 

  34. Helena C.C.D. Rodrigues. Cyclic Distributed Garbage Collection. PhD thesis, Computing Laboratory, The University of Kent at Canterbury, 1998. In preparation.

    Google Scholar 

  35. Marc Shapiro. A fault-tolerant, scalable, low-overhead distributed garbage collection protocol. In Symposium on Reliable Distributed Systems, Pisa, September 1991.

    Google Scholar 

  36. 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.

    Google Scholar 

  37. N.G. Shivaratri, P. Krueger, and M. Singhal. Load distributing for locally distributed systems. Computer, 25(12):33–44, December 1992.

    Article  Google Scholar 

  38. 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.

    Google Scholar 

  39. Paul Watson and Ian Watson. An efficient garbage collection scheme for parallel computer architectures. In de Bakker et al. [12], pages 432–443.

    Google Scholar 

  40. Paul Wilson. Distr. gc general discussion for faq. gclist mailing list (gclist@iecc.com), March 1996.

    Google Scholar 

  41. Paul Wilson. Garbage collection and memory hierarchy. In Bekkers and Cohen [5].

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints 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

Publish with us

Policies and ethics