Advertisement

Cyclic distributed garbage collection with group merger

  • Helena Rodrigues
  • Richard Jones
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

distributed systems garbage collection termination detection 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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.CrossRefGoogle Scholar
  2. [2]
    Lex Augusteijn. Garbage collection in a distributed environment. In de Bakker et al. [12], pages 75–93.Google Scholar
  3. [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. [4]
    Joel F. Bartlett. Compacting garbage collection with ambiguous roots. Lisp Pointers 1, 6 (April–June 1988), pp. 2–12.Google Scholar
  5. [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. [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. [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. [8]
    Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Technical Report 115, DEC Systems Research Center, February 1994.Google Scholar
  9. [9]
    Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157–164, 1991.CrossRefGoogle Scholar
  10. [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. [11]
    T. W. Christopher. Reference count garbage collection. Software Practice and Experience, 14(6):503–507, June 1984.Google Scholar
  12. [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. [13]
    Margaret H. Derbyshire. Mark scan garbage collection on a distributed architecture. Lisp and Symbolic Computation, 3(2): 135–170, April 1990.CrossRefGoogle Scholar
  14. [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. [15]
    Matthew Fuchs. Garbage collection on an open network. In Baker [3].Google Scholar
  16. [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.CrossRefGoogle Scholar
  17. [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. [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. [19]
    Richard L. Hudson and J. Eliot, B. Moss. Incremental garbage collection for mature objects. In Bekkers and Cohen [5].Google Scholar
  20. [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. [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. [22]
    Neils-Christian Juul and Eric Jul. Comprehensive and robust garbage collection in a distributed system. In Bekkers and Cohen [5].Google Scholar
  23. [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. [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. [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. [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. [27]
    Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by controlled migration. In Principles of Distributed Computing, 1995.Google Scholar
  28. [28]
    Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by back tracing. In Principles of Distributed Computing, 1997.Google Scholar
  29. [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. [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. [31]
    David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Baker [3].Google Scholar
  32. [32]
    S. P. Rana. A distributed solution to the distributed termination problem. Information Processing Letters, 17:43–46, July 1983.MATHMathSciNetCrossRefGoogle Scholar
  33. [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. [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. [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. [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. [37]
    N.G. Shivaratri, P. Krueger, and M. Singhal. Load distributing for locally distributed systems. Computer, 25(12):33–44, December 1992.CrossRefGoogle Scholar
  38. [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. [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. [40]
    Paul Wilson. Distr. gc general discussion for faq. gclist mailing list (gclist@iecc.com), March 1996.Google Scholar
  41. [41]
    Paul Wilson. Garbage collection and memory hierarchy. In Bekkers and Cohen [5].Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

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

Personalised recommendations