A cyclic distributed garbage collector for network objects

  • Helena Rodrigues
  • Richard Jones
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1151)

Abstract

This paper presents an algorithm for distributed garbage collection and outlines its implementation within the Network Objects system. The algorithm is based on a reference listing scheme, which is augmented by partial tracing in order to collect distributed garbage cycles. Processes may be dynamically organised into groups, according to appropriate heuristics, to reclaim distributed garbage cycles. 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. The algorithm offers considerable flexibility, allowing expediency and fault-tolerance to be traded against completeness.

Keywords

distributed systems garbage collection algorithms termination detection fault tolerance 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Joel F. Bartlett. Compacting garbage collection with ambiguous roots. Technical Report 88/2, DEC Western Research Laboratory, Palo Alto, California, February 1988. Also in Lisp Pointers 1, 6 (April–June 1988), pp. 2–12.Google Scholar
  2. 2.
    David I. Bevan. Distributed garbage collection using reference counting. In PARLE Parallel Architectures and Languages Europe, pages 176–187. Springer Verlag, LNCS 259, June 1987.Google Scholar
  3. 3.
    Andrew Birrel, David Evers, Greg Nelson, Susan Owicki, and Edward Wobber. Distributed garbage collection for network objects. Technical report SRC 116, Digital — Systems Research Center, 1993.Google Scholar
  4. 4.
    Andrew Birrel, David Evers, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Technical report SRC 115, Digital — Systems Research Center, 1994.Google Scholar
  5. 5.
    Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157–164, 1991.Google Scholar
  6. 6.
    T.W. Christopher. Reference count garbage collection. Software Practice and Experience, 14(6):503–507, June 1984.Google Scholar
  7. 7.
    Margaret H. Derbyshire. Mark scan garbage collection on a distributed architecture. Lisp and Symbolic Computation, 3(2):135–170, April 1990.CrossRefGoogle Scholar
  8. 8.
    Edsgar W. Dijkstra, Leslie Lamport, A.J. Martin, C.S. Scholten, and E.F.M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965–975, November 1978.CrossRefGoogle Scholar
  9. 9.
    Paulo Ferreira and Marc Shapiro. Larchant: Persistence by reachability in distributed shared memory through garbage collection. In Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS), Hong Kong, May 27–30 1996.Google Scholar
  10. 10.
    Matthew Fuchs. Garbage collection on an open network. In International Workshop IWMM95, pages 251–265, Berlin, 1995. Springer Verlag, LNCS 986.Google Scholar
  11. 11.
    Benjamin Goldberg. Generational reference counting: A reduced-communication distributed storage reclamation scheme. In Proceedings of SIGPLAN'89 Conference on Programming Languages Design and Implementation, pages 313–321. ACM Press, June 1989.Google Scholar
  12. 12.
    Paul R. Hudak and R.M. Keller. Garbage collection and task deletion in distributed applicative processing systems. In Conference Record of the 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pa., pages 168–78, August 1982.Google Scholar
  13. 13.
    Richard E. Jones and Rafael D. Lins. Cyclic weighted reference counting without delay. In Arndt Bode, Mike Reeve, and Gottfried Wolf, editors, PARLE'93 Parallel Architectures and Languages Europe, Munich, Berlin, June 1993. Springer-Verlag. LNCS 694.Google Scholar
  14. 14.
    Neils-Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Proceedings of International Workshop on Memory Management, St. Malo, France, volume LNCS 637, DIKU, University of Copenhagen, Denmark, September 16–18 1992. Springer Verlag.Google Scholar
  15. 15.
    Rivka Ladin and Barbara Liskov. Garbage collection of a distributed heap. In International Conference on Distributed Computing Systems, Yokohama, June 1992.Google Scholar
  16. 16.
    Bernard Lang, Christian Quenniac, and José Piquer. Garbage collecting the world. In ACM Symposium on Principles of Programming, Albuquerque, pages 39–50, January 1992.Google Scholar
  17. 17.
    Munenori Maeda, Hiroki Konaka, Yutaka Ishikawa, Takashi TomoKiyo, Atsushi Hori, and Jorg Nolte. On-the-fly global garbage collection based on partly mark-sweep. In Proceedings of International Workshop on Memory Management, Kinross, UK, Tsukuba Research Center, Japan, September 27–29 1995. Springer Verlag. LNCS 986.Google Scholar
  18. 18.
    U. Maheshwari and B. Liskov. Fault-tolerant distributed garbage collection in a client-server objected-oriented database. In Proceedings of the third International Conference on Parallel and Distributed Information Systems, pages 239–248, September 1994.Google Scholar
  19. 19.
    U. Maheshwari and B. Liskov. Collecting cyclic distributed garbage by controlled migration. In Proceedings of the Principles of Distributed Computing, 1995.Google Scholar
  20. 20.
    J. Piquer. Indirect reference counting: A distributed garbage collection algorithm. In Aarts et al., editor, PARLE'91 Parallel Architectures and Languages Europe, Berlin, 1991. Springer Verlag, LNCS 505.Google Scholar
  21. 21.
    David Plainfossé and Marc Shapiro. Experience with fault-tolerant garbage collection in a distributed Lisp system. In Proceedings of International Workshop on Memory Management, St. Malo, France, INRIA, France, September 16–18 1992. Springer Verlag. LNCS 637.Google Scholar
  22. 22.
    David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Proceedings of International Workshop on Memory Management, Kinross, UK, INRIA, France, September 27–29 1995. Springer Verlag. LNCS 986.Google Scholar
  23. 23.
    M. Shapiro, P. Dickman, and D. Plainfossé. Robust, distributed references and acyclic garbage collection. In Proceedings of the Symposium on Principles od Distributed Computing, 1992.Google Scholar
  24. 24.
    Marc Shapiro, O. Gruber, and David Plainfossé. A garbage detection protocol for a realistic distributed object-support system. Rapports de Recherche 1320, INRIA-Rocquencourt, November 1990. Also in ECOOP/OOPSLA'90 Workshop on Garbage Collection.Google Scholar
  25. 25.
    N. G. Shivaratri, P. Krueger, and M. Singhal. Load Distributing for Locally Distributed Systems. Computer, 25(12):33–44, December 1992.CrossRefGoogle Scholar
  26. 26.
    Paul R. Wilson. Garbage collection and memory hierarchy. In Proceedings of International Workshop on Memory Management, St. Malo, France, volume LNCS 637, University of Texas, USA, September 16–18 1992. Springer Verlag.Google Scholar
  27. 27.
    Paul R. Wilson. Distr. gc general discussion for faq. gclist (gclist@iecc.com), March 1996.Google Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  • Helena Rodrigues
    • 1
  • Richard Jones
    • 1
  1. 1.Computing LaboratoryUniversity of KentCanterburyUK

Personalised recommendations