Detecting distributed cycles of garbage in large-scale systems
Fabrice Le Fessant · 2001
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: min-max marking, to propagate two dierent 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 modications of a local tracing garbage collector. Keywords: distributed garbage collection, cycles, sub-generation, optimistic back-tracing, min-max marking. 1.