Robust, Distributed References and Acyclic Garbage Collection 1

We propose eecient, programming language-independent, location-transparent references as a substitute for pointers in distributed applications. These references provide the semantics of normal pointers for both local and distributed, transient and persistent objects. They may be passed in messages between and within nodes using a low-overhead presentation-layer protocol. The programmer remains free to create, delete or migrate objects at will. Sending references (or migrating objects) may cause references to be chained together across any number of spaces; we provide a short-circuit protocol to optimize access through such chains. Integrated with these references, we provide eecient, distributed, garbage collection of acyclic data structures. Even in the presence of network failures such as lost messages, duplicated messages, out of order messages and site failures, the correctness of GC is guaranteed. The protocol assumes the existence of local garbage collectors of the tracing family. The protocol combines: (i) local tracing (from a conservative root); (ii) conservative distributed reference counting; (iii) periodic tightening of the counts; and (iv) allowance for messages in transit during GC. The protocol uses only information local to each site, or exchanged between pairs of sites; no global mechanism is necessary. It is parallel and should scale to very large systems, e.g. tens of thousands of nodes connected using both local and wide-area networks.

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

[2]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

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

[4]  Anne H. Soukhanov,et al.  The american heritage dictionary of the english language , 1992 .

[5]  Hans-Juergen Boehm,et al.  Garbage collection in an uncooperative environment , 1988, Softw. Pract. Exp..

[6]  Marc Shapiro Soul: An Object-Oriented OS Framework for Object Support , 1991, Operating Systems of the 90s and Beyond.

[7]  Barton P. Miller,et al.  Process migration in DEMOS/MP , 1983, SOSP '83.

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

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

[10]  Santosh K. Shrivastava,et al.  Fault-Tolerant Reference Counting for Garbage Collection in Distributed Systems , 1991, Comput. J..

[11]  Robert J. Fowler,et al.  The complexity of using forwarding addresses for decentralized object finding , 1986, PODC '86.

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

[13]  Andrew P. Black,et al.  Object structure in the Emerald system , 1986, OOPLSA '86.

[14]  T. Critchlow A Distributed Garbage Collection Algorithm , 1992 .

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

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

[17]  Daniel R. Edelson A mark-and-sweep collector C++ , 1992, POPL '92.

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

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

[20]  Peter William Dickman,et al.  Distributed object management in a non-small graph of autonomous networks with few failures , 1991 .

[21]  Marc Shapiro,et al.  SOS: An Object-Oriented Operating System - Assessment and Perspectives , 1989, Comput. Syst..

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