Cyclic Distributed Garbage Collection with Group Merger

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.

[1]  Yves Bekkers,et al.  Proceedings of the International Workshop on Memory Management , 1992 .

[2]  Barbara Liskov,et al.  Garbage collection of a distributed heap , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[3]  A. J. Nijman,et al.  PARLE Parallel Architectures and Languages Europe , 1987, Lecture Notes in Computer Science.

[4]  Benjamin Goldberg Generational reference counting: a reduced-communication distributed storage reclamation scheme , 1989, PLDI '89.

[5]  Helena C. C. D. Rodrigues,et al.  Cyclic distributed garbage collection , 1998 .

[6]  David S. Munro,et al.  Garbage collecting the world: one car at a time , 1997, OOPSLA '97.

[7]  Niels Christian Juul,et al.  Comprehensive and Robust Garbage Collection in a Distributed System , 1992, IWMM.

[8]  Marc Shapiro,et al.  A Survey of Distributed Garbage Collection Techniques , 1995, IWMM.

[9]  Barbara Liskov,et al.  Collecting cyclic distributed garbage by controlled migration , 1995, PODC '95.

[10]  Paul Watson,et al.  An Efficient Garbage Collection Scheme for Parallel Computer Architectures , 1987, PARLE.

[11]  Ted Wobber,et al.  Distributed Garbage Collection for Network Objects , 1993 .

[12]  Matthew Fuchs,et al.  Garbage Collection on an Open Network , 1995, IWMM.

[13]  Olivier Gruber,et al.  A garbage detection protocol for a realistic distributed object-support system , 1990 .

[14]  Barbara Liskov,et al.  Fault-tolerant distributed garbage collection in a client-server object-oriented database , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[15]  Barbara Liskov,et al.  Collecting distributed garbage cycles by back tracing , 1997, PODC '97.

[16]  Richard E. Jones,et al.  A Cyclic Distributed Garbage Collector for Network Objects , 1996, WDAG.

[17]  Thomas W. Christopher,et al.  Reference count garbage collection , 1984, Softw. Pract. Exp..

[18]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[19]  Gerard Tel,et al.  The derivation of distributed termination detection algorithms from garbage collection schemes , 1991, TOPL.

[20]  Rafael Dueire Lins,et al.  Cyclic Weighted Reference Counting without Delay , 1993, PARLE.

[21]  Yutaka Ishikawa,et al.  On-the-fly Global Garbage Collection Based on Partly Mark-Sweep , 1995, IWMM.

[22]  Marc Shapiro,et al.  SSP Chains: Robust, Distributed References Supporting Acyclic Garbage Collection , 1993 .

[23]  S. P. Rana,et al.  A Distributed Solution of the Distributed Termination Problem , 1983, Inf. Process. Lett..

[24]  Lex Augusteijn Garbage Collection in a Distributed Environment , 1987, PARLE.

[25]  Christian Queinnec,et al.  Garbage collecting the world , 1992, POPL '92.

[26]  Marc Shapiro A fault-tolerant, scalable, low-overhead distributed garbage detection protocol , 1991, [1991] Proceedings Tenth Symposium on Reliable Distributed Systems.

[27]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[28]  Mukesh Singhal,et al.  Load distributing for locally distributed systems , 1992, Computer.

[29]  Margaret H. Derbyshire Mark scan garbage collection on a distributed architecture , 1990, LISP Symb. Comput..

[30]  José M. Piquer Indirect Reference Counting: A Distributed Garbage Collection Algorithm , 1991, PARLE.

[31]  Martin Rem,et al.  PARLE '89 Parallel Architectures and Languages Europe , 1989, Lecture Notes in Computer Science.

[32]  Luca Cardelli,et al.  Modula-3 Report (revised) , 1992 .

[33]  Marc Shapiro,et al.  Robust, distributed references and acyclic garbage collection , 1992, PODC '92.

[34]  Paul Hudak,et al.  Garbage collection and task deletion in distributed applicative processing systems , 1982, LFP '82.

[35]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[36]  Joel F. Bartlett,et al.  Compacting garbage collection with ambiguous roots , 1988, LIPO.

[37]  Scott Shenker,et al.  Mostly parallel garbage collection , 1991, PLDI '91.

[38]  Marc Shapiro,et al.  Larchant: persistence by reachability in distributed shared memory through garbage collection , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[39]  D. I. Bevan,et al.  Distributed Garbage Collection Using Reference Counting , 1987, PARLE.

[40]  Marc Shapiro,et al.  Experience with a Fault-Tolerant Garbage Collector in a Distributed List System , 1992, IWMM.