Detecting distributed cycles of garbage in large-scale systems

Distributed scalable garbage collectors, mostly based on some kind of reference counting, fail to detect distributed cycles of garbage. This problem may lead to important memory leaks in distributed storage systems. In this paper, we present a new algorithm which detects and collects such distributed cycles of garbage. Our algorithm is based on the propagation of marks along chains of remote pointers. It uses two new mechanisms: rain-max marking, to propagate two different marks to each stub, and sub-generation, to build an acyclic graph on a cycle using back-tracking information. A new technique, called optimistic back-tracking, is also used to speed-up subgeneration. The resulting algorithm is completely distributed, asynchronous, fault-tolerant and inexpensive. Moreover, it collects incrementally all distributed cycles of garbage, without partitioning the system. Thus, it is particularly well adapted to large-scale networks. Finally, it can be easily implemented with minor modifications of a local tracing garbage collector.

[1]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1985, JACM.

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

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

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

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

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

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

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

[9]  Sacha Krakowiak,et al.  PerDiS: Design, Implementation, and Use of a PERsistent DIstributed Store , 1999, Advances in Distributed Systems.

[10]  Barbara Liskov,et al.  Partitioned garbage collection of a large object store , 1997, SIGMOD '97.

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

[12]  Roger Riggs,et al.  A Distributed Object Model for the Java System , 1996, Comput. Syst..

[13]  John A. Keane,et al.  Collecting cyclic garbage in distributed systems , 1997, Proceedings of the 1997 International Symposium on Parallel Architectures, Algorithms and Networks (I-SPAN'97).

[14]  Marc Shapiro,et al.  An implementation of complete, asynchronous, distributed garbage collection , 1998, PLDI '98.

[15]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[16]  Vincent F. Russo,et al.  Cyclic Distributed Garbage Collection Without Global Synchronization in CORBA , 1997 .

[17]  Peter Dickman,et al.  Garbage collection and memory management , 1997, OOPSLA '97.

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