Advertisement

Comprehensive and robust garbage collection in a distributed system

  • Niels Christian Juul
  • Eric Jul
Distributed Systems I
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Garbage collection [mark-and-sweep, faulting, comprehensiveDistributed systems [distributed control, termination detection, fault-toleranceConcurrency Object-oriented systems Robustness Emerald Algorithm 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Appel 88]
    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. [Appel 91]
    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. [Augusteijn 87]
    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. [Bartlett 88]
    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. [Beemster 90]
    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. [Black 86]
    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. [Black 87]
    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. [Boehm 88]
    Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software — Practice & Experience, 18(9):807–820, September 1988.Google Scholar
  9. [Hutchinson 87a]
    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. [Hutchinson 87b]
    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. [Jul 87]
    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. [Jul 88a]
    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. [Jul 88b]
    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.CrossRefGoogle Scholar
  14. [Juul 92]
    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. [Lang 92]
    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. [Lieberman 83]
    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. [Liskov 86]
    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. [Mancini 91]
    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. [Queinnec 89]
    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. [Raj 91]
    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. [Rudalics 86]
    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. [Schelvis 88]
    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. [Shapiro 90]
    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. [Shapiro 91]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Niels Christian Juul
    • 1
  • Eric Jul
    • 1
  1. 1.DIKU, Department of Computer ScienceUniversity of CopenhagenCopenhagen ØDenmark

Personalised recommendations