Garbage collecting the world

Distributed symbolic computations involve the existence of remote references allowing an object, local to a processor, to designate another object located on another processor. To reclaim inaccessible objects is the non trivial task of a distributed Garbage Collector (GC). We present in this paper a new distributed GC algorithm which (i) is fault-tolerant, (ii) is largely independent of how a processor garbage collects its own data space, (iii) does not need centralized control nor global stop-the-world synchronization, (iv) allows for multiple concurrent active GCs, (v) does not require to migrate objects from processor to processor and (vi) eventually reclaims all inaccessible objects including distributed cycles. These results are mainly obtained through the concept of a group of processors (or processes). Processors of a same group cooperate together to a GC inside this group; this GC is conservative with respect to the outside of the group. A processor contributes to the global GC of all groups to which it belongs. Garbage collection on small groups reclaims quickly locally distributed garbage clusters, while garbage collection on large groups ultimately reclaims widely distributed garbage clusters, albeit more slowly. Groups can be reorganized dynamically, in particular to tolerate failures of some member processors. These properties make the algorithm usable on very large and evolving networks of processors. Other than distributed symbolic computations, possible applications include for example distributed file or database systems.

[1]  Daniel G. Bobrow,et al.  An efficient, incremental, automatic garbage collector , 1976, CACM.

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

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

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

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

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

[7]  Jan L. A. van de Snepscheut "Algorithms for On-the-Fly Garbage Collection" Revisited , 1987, Inf. Process. Lett..

[8]  Christian Queinnec,et al.  Mark DURING Sweep rather than Mark THEN Sweep , 1989, PARLE.

[9]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[10]  M. Schelvis Incremental distribution of timestamp packets: a new approach to distributed garbage collection , 1989, OOPSLA 1989.

[11]  Martin Rudalics Distributed copying garbage collection , 1986, LFP '86.

[12]  S. C. Vestal,et al.  Garbage collection: an exercise in distributed, fault-tolerant programming , 1987 .

[13]  Daniel P. Friedman,et al.  The one-bit reference count , 1977 .

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

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

[16]  Barbara Liskov,et al.  Highly available distributed services and fault-tolerant distributed garbage collection , 1986, PODC '86.

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

[18]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .

[19]  Marcel Schelvis Incremental Distribution of Timestamp Packets: A New Approach to Distributed Garbage Collection , 1989, OOPSLA.

[20]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[21]  F. Dupont,et al.  Incremental incrementally compacting garbage collection , 1987, PLDI 1987.

[22]  Butler W. Lampson,et al.  Crash Recovery in a Distributed Data Storage System , 1981 .

[23]  Richard J. LeBlanc,et al.  Distributed garbage collection , 1987, PLDI.

[24]  Bernard Lang,et al.  Incremental incrementally compacting garbage collection , 1987, PLDI.

[25]  Taiichi Yuasa,et al.  Real-time garbage collection on general-purpose machines , 1990, J. Syst. Softw..

[26]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

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

[28]  H. T. Kung,et al.  An efficient parallel garbage collection system and ITS correctness proof , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[29]  Philip Wadler,et al.  Analysis of an algorithm for real time garbage collection , 1976, CACM.

[30]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

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