Skip to main content

Indirect Reference Counting: A Distributed Garbage Collection Algorithm

  • Conference paper
Parle ’91 Parallel Architectures and Languages Europe

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

Abstract

This paper exposes a Garbage Collection (GC) algorithm for loosely-coupled multi-processors. The algorithm is based on reference counting and is designed to reclaim distant-pointed objects. It behaves like weighted reference counting, using only decrement messages. The main advantages are that it never creates indirect cells (so accesses to distant pointed objects arc always done in constant time) and it does not need synchronization with the proprietary site of the object. Object migration is also supported with only one decrement message, involving only the source and destination sites. On the other hand, two extra fields are needed in every remote pointer and decrement messages can be generated in cascades of arbitrary size, making it less predictable.

A first version adapted to a distributed Lisp running on a group of Transputcr1 processors will be presented along with some measures. Each processor has its own local Garbage Collector (of the Mark-Scan type) and the indirect reference counting for remote pointers has been implemented without having to change the local GC.

In this paper the algorithm is presented, it is compared with the weighted reference counting garbage collector and some experimental results are shown along with some implementation issues.

This work was partially supported by the University of Chile, INRIA and the french government.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Lex Augusteijn, Garbage Collection in a Distributed Environment, LNCS 259, PARLE Proceedings Vol. I, Eindhoven, Springer Verlag, June 1987.

    MATH  Google Scholar 

  2. M. J. Beckerle, K. Ekanadham, Distributed Garbage Collection with no Global Synchronization, IBM Research Report, RC 11667 (#52377), January 1986.

    Google Scholar 

  3. D. I. Bevan, Distributed Garbage Collection Using Reference Counting, LNCS 259, PARLE Proceedings Vol. II, Eindhoven, Springer Verlag, June 1987.

    Google Scholar 

  4. D. G. Bobrow, Managing Reentrant Structures Using Reference Counts, ACM Trans. on Programming Languages and Systems, Vol. 2, No. 3, pp. 269–273, July 1980.

    Article  Google Scholar 

  5. D. R. Brownbridge, Cyclic Reference Counting for Combinator Machines, Functional Programming Languages and Computer Architecture, LNCS 201, pp. 273–288, Springer Verlag, September 1985.

    Google Scholar 

  6. J. Chailloux, M. Devin, J. M. IIullot, Le-Lisp: A Portable and Efficient Lisp System, Proc. 1984 ACM Symposium on Lisp and Functional Programming, August 1984.

    Google Scholar 

  7. K. M. Chandy, L. Lamport, Distributed snapshots: Determining global states of distributed systems, ACM Trans. on Computer Systems, Vol. 3, No. 1, February 1985.

    Google Scholar 

  8. G. E. Collins, A Method for Overlapping and Erasure of Lists, Comm. of the ACM, Vol. 3, No. 12, pp. 655–657, December 1960.

    Article  MathSciNet  Google Scholar 

  9. M. II. Derbyshire, Mark Scan Garbage Collection On A Distributed Architecture, Lisp and Symbolic Computation, Vol. 3, No. 2, pp. 135–170, April 1990.

    Article  Google Scholar 

  10. E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, E. F. M. Steffens, On-the-fly Garbage Collection: an exercise in cooperation, Comm. of the ACM Vol. 21, No. 11, November 1978.

    Google Scholar 

  11. E. W. Dijkstra, C. S. Scholten, Termination Detection for Diffusing Computations, Information Processing Letters, Vol. 11, No. 1, August 1980.

    Article  MathSciNet  Google Scholar 

  12. I. Foster, A Mullicomputer Garbage Collector for a Single-Assignment Language, Int. Journal of Parallel Programming, Vol. 18, No. 3, 1989.

    Article  Google Scholar 

  13. B. Goldberg, Generational Reference Counting: A Reduced-Communication Distributed Storage Reclamation Scheme, SIGPLAN Conference on Programming Languages Design and Implementation, Portland, Oregon, June 1989.

    Google Scholar 

  14. P. Hudak, R. M. Keller, Garbage Collection and Task Deletion in a Distributed Applicative Processing System, 1982 ACM Symposium on Lisp and Functional Programming, 1982.

    Google Scholar 

  15. L. Lamport, Time, Clocks, and the Ordering of Events in a Distributed System, Comm. ACM, Vol. 21, No. 7, pp. 558–565, July 1978.

    Article  Google Scholar 

  16. C. W. Lermen, D. Maurer, A Protocol for Distributed Reference Counting, Proc. 1986 ACM Conference on Lisp and Functional Programming, Cambridge, Massachussets, August 1986.

    Google Scholar 

  17. J. M. Piquer, Un GC parallèle pour un Lisp distribué,Journées francophones des langages applicatifs, La Rochelle, January 1990. BIGRE 69, July 1990 (french).

    Google Scholar 

  18. J. M. Piquer, Sharing Data Structures in a Distributed Lisp, Proc. High Performance and Parallel Computing in Lisp Workshop, Twickenham, London, UK, November 1990.

    Google Scholar 

  19. M. Rudalics, Distributed Copying Garbage Collection, Proceedings of the ACM Conference on LISP and functional prog., Cambridge, Massachussets, August 1986.

    Google Scholar 

  20. P. Watson, I. Watson, An Efficient Garbage Collection Scheme for Parallel Computer Architectures, LNCS 259, PARLE Proceedings Vol. II, Eindhoven, Springer Verlag, June 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Piquer, J.M. (1991). Indirect Reference Counting: A Distributed Garbage Collection Algorithm. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds) Parle ’91 Parallel Architectures and Languages Europe. Lecture Notes in Computer Science, vol 505. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-25209-3_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-25209-3_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-23206-4

  • Online ISBN: 978-3-662-25209-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics