Skip to main content

Comprehensive and robust garbage collection in a distributed system

  • Distributed Systems I
  • Conference paper
  • First Online:

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

Abstract

The overall goal of the Emerald garbage collection scheme is to provide an efficient “on-the-fly” garbage collection in a distributed object-based system that collects all garbage. and that is robust to partial failures.

The first goal is to collect all garbage in the entire distributed system; we say that the collection is comprehensive in contrast to conservative collectors that only collect most garbage. Comprehensiveness is achieved by employing a systemwide mark-and-sweep collection based on concurrently running collectors, one on each node.

The second goal of our collector is to be robust to partial failures. When facing node failures the collector will progress in the available parts of the system and, when necessary, wait for temporarily unavailable nodes to become available again. The scheme is being implemented on a network of VAXstations at DIKU. The full scheme employs two concurrent mark-and-sweep collectors on each node in the distributed system, one for comprehensiveness, one for expediency. Concurrency is achieved by using an object protection and faulting mechanism.

This article was processed using the LATEX macro package with LLNCS style

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. In ACM SIGPLAN'88 Conference on Programming Language Design and Implementation, Proceedings in: SIGPLAN Notices 23(7), pages 11–20, ACM, SIGPLAN, Association for Computing Machinery, Georgia, USA, July 1988.

    Google Scholar 

  2. Andrew W. Appel and Kai Li. Virtual memory primitives for user programs. In Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS-IV Proceedings in: SIGPLAN Notices 26(4), pages 96–107, ACM SIGARCH/SIGOPS/SIGPLAN and IEEE Computer Society, TC MM/TC VLSI/TC OS, ACM Press, Santa Clara, California, USA, April 1991. Simultaneous published as SIGARCH Computer Architecture News 19(2) and SIGOPS Operating Systems Review 25, special issue.

    Google Scholar 

  3. Lex Augusteijn. Garbage collection in a distributed environment. In J. W. de Bakker, A. J. Nijman, and P. C. Treleaven, editors, PARLE'87, Parallel Architectures and Languages Europe, Volume II: Parallel Languages, Proceedings published in: Lecture Notes in Computer Science 259, pages 75–93, ESPRIT, Eindhoven, The Netherlands, Springer-Verlag, June 1987.

    Google Scholar 

  4. Joel F. Bartlett. Compacting Garbage Collection with Ambiguous Roots. WRL Research Report 88/2, Digital, Western Research Laboratory, Palo Alto, CA, USA, February 1988.

    Google Scholar 

  5. Marcel Beemster. Back-end aspects of a portable POOL-X implementation. In Pierre America, editor, Parallel Database Systems (PRISMA Workshop) Proceedings published in: Lecture Notes in Computer Science 503, pages 193–228, PRISMA project, supported by the Dutch Stimuleringsprojectteam Informaticaonderzoek (SPIN), Springer-Verlag, Noordwijk, The Netherlands, September 1990.

    Google Scholar 

  6. Andrew Black, Norman Hutchinson, Eric Jul, and Henry Levy. Object structure in the Emerald system. In OOPSLA'86, ACM Conference on ObjectOriented Programming, Systems, Languages and Applications, Proceedings published in: SIGPLAN Notices 21(11), pages 78–86, October 1986.

    Google Scholar 

  7. Andrew Black, Norman Hutchinson, Eric Jul, Henry Levy, and Larry Carter. Distribution and abstract types in Emerald. IEEE Transactions on Software Engineering, 13(1):65–76, January 1987.

    Google Scholar 

  8. Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software — Practice & Experience, 18(9):807–820, September 1988.

    Google Scholar 

  9. Norman C. Hutchinson. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, Department of Computer Science, University of Washington, Seattle, Washington, January 1987. Technical Report 87-01-01.

    Google Scholar 

  10. Norman C. Hutchinson, Rajendra K. Raj, Andrew P. Black, Henry M. Levy, and Eric Jul. The Emerald Programming Language Report. Technical Report 87-10-07, Department of Computer Science, University of Washington, Seattle, Washington, October 1987. Also available as DIKU Report (Blue series) no. 87/22, Department of Computer Science, University of Copenhagen, Copenhagen, Denmark and as TR no. 87-29, Department of Computer Science, University of Arizona, Tucson, Arizona.

    Google Scholar 

  11. Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Fine-grained mobility in the Emerald system. In Proceedings of the Eleventh A CM Symposium on Operating Systems Principles, pages 105–106, Association for Computing Machinery, December 1987. Extended abstract only; full paper published as [Jul 88b].

    Google Scholar 

  12. Eric Jul. Object Mobility in a Distributed Object-Oriented System. PhD thesis, Department of Computer Science, University of Washington, Seattle, Washington, December 1988. Technical Report no. 88-12-6. Also available as DIKU Report (Blue series) no. 89/1 from Department of Computer Science, University of Copenhagen, Denmark.

    Google Scholar 

  13. Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Fine-grained mobilty in the Emerald system. ACM Transactions on Computer Systems, 6(1):109–133, February 1988.

    Article  Google Scholar 

  14. Niels Christian Juul. Comprehensive, Concurrent, and Robust Garbage Collection in the Distributed, Object-Based System, Emerald. PhD thesis, DIKU, Department of Computer Science, University of Copenhagen, Denmark, 1992. In preparation.

    Google Scholar 

  15. Bernard Lang, Christian Queinnec, and José Piquer. Garbage collecting the world. In Proceedings of the 19th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '92), ACM SIGPLAN and ACM SIGACT, Association for Computing Machinery, Albuquerque, New Mexico, USA, January 1992.

    Google Scholar 

  16. Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419–429, June 1983.

    Google Scholar 

  17. Barbara Liskov and Rivka Ladin. Highly-available distributed services and fault-tolerant distributed garbage collection. In Proceedings of the 5th annual ACM Symposium on Principles of Distributed Computing (PODC'5), pages 29–39, Association for Computing Machinery, Vancouver (Canada), August 1986.

    Google Scholar 

  18. Luigi V. Mancini, Vittoria Rotella, and Simonetta Venosa. Copying garbage collection for distributed object stores. In Proceedings of the Tenth Symposium on Reliable Distributed Systems, IEEE Computer Society, TC Distributed Processing, Pisa, Italy, September 1991.

    Google Scholar 

  19. Christian Queinnec, Barbara Beaudoing, and Jean-Pierre Queille. Mark DURING sweep rather than mark THEN sweep. In E. Odijk, M. Rem, and J.-C. Syre, editors, PARLE'89, Parallel Architectures and Languages Europe, Volume I: Parallel Architectures, Proceedings published in: Lecture Notes in Computer Science 365, pages 224–237, ESPRIT, Springer-Verlag, Eindhoven, The Netherlands, June 1989.

    Google Scholar 

  20. Rajendra K. Raj, Ewan D. Tempero, Henry M. Levy, Andrew P. Black, Norman C. Hutchinson, and Eric Jul. Emerald: A general-purpose programming language. Software — Practice & Experience, 21(1):91–118, January 1991.

    Google Scholar 

  21. Martin Rudalics. Distributed copying garbage collection. In William L. Schelis and John H. Williams, editors, 1986 ACM Symposium on LISP and Functional Programming, Proceedings of, pages 364–372, ACM SIGPLAN/SIGACT/SIGART, Association for Computing Machinery, Cambridge, Massachusetts, USA, August 1986.

    Google Scholar 

  22. Marcel Schelvis and Eddy Bledoeg. The implementation of Distributed Smalltalk. In S. Gjessing and K. Nygaard, editors, ECOOP'88, European Conference on Object-Oriented Programming, Proceedings published in: Lecture Notes in Computer Science 322, pages 212–232, Springer-Verlag, Oslo, Norway, August 1988.

    Google Scholar 

  23. Marc Shapiro, David Plainfossé, and Olivier Gruber. A garbage detection protocol for a realistic distributed object-support system. Rapport de Recherche INRIA 1320, INRIA-Rocquencourt, Paris, France, November 1990.

    Google Scholar 

  24. Marc Shapiro. A fault-tolerant, scalable, low-overhead distributed garbage detection protocol. In Proceedings of the Tenth Symposium on Reliable Distributed Systems, IEEE Computer Society, TC Distributed Processing, Pisa, Italy, September 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Yves Bekkers Jacques Cohen

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Juul, N.C., Jul, E. (1992). Comprehensive and robust garbage collection in a distributed system. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017185

Download citation

  • DOI: https://doi.org/10.1007/BFb0017185

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55940-5

  • Online ISBN: 978-3-540-47315-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics