Indirect reference counting: A distributed garbage collection algorithm
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 are 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 Transputer1 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.
KeywordsGarbage Collection Reference Counting Distributed Systems
Unable to display preview. Download preview PDF.
- [Augu 87]Lex Augusteijn, Garbage Collection in a Distributed Environment, LNCS 259, PARLE Proceedings Vol. I, Eindhoven, Springer Verlag, June 1987.Google Scholar
- [Beck 86]M. J. Beckerle, K. Ekanadham, Distributed Garbage Collection with no Global Synchronization, IBM Research Report, RC 11667 (#52377), January 1986.Google Scholar
- [Beva 87]D. I. Bevan, Distributed Garbage Collection Using Reference Counting, LNCS 259, PARLE Proceedings Vol. II, Eindhoven, Springer Verlag, June 1987.Google Scholar
- [Bobr 80]
- [Brow 85]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
- [Chai 84]J. Chailloux, M. Devin, J. M. Hullot, Le-Lisp: A Portable and Efficient Lisp System, Proc. 1984 ACM Symposium on Lisp and Functional Programming, August 1984.Google Scholar
- [Chan 85]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
- [Coll 60]
- [Derb 90]
- [Dijk 78]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
- [Dijk 80]E. W. Dijkstra, C. S. Scholten, Termination Detection for Diffusing Computations, Information Processing Letters, Vol. 11, No. 1, August 1980.Google Scholar
- [Fost 89]I. Foster, A Multicomputer Garbage Collector for a Single-Assignment Language, Int. Journal of Parallel Programming, Vol. 18, No. 3, 1989.Google Scholar
- [Gold 89]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
- [Huda 82]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
- [Lamp 78]
- [Lerm 86]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
- [Piqu 90a]J. M. Piquer, Un GC parallèle pour un Lisp distribué, Journées francophones des languages applicatifs, La Rochelle, January 1990. BIGRE 69, July 1990 (french).Google Scholar
- [Piqu 90b]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
- [Ruda 86]M. Rudalics, Distributed Copying Garbage Collection, Proceedings of the ACM Conference on LISP and functional prog., Cambridge, Massachussets, August 1986.Google Scholar
- [Wats 87]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