Comprehensive distributed garbage collection in object-orienteddistributed systems has mostly been addressed via distributed versionsof graph-tracing algorithms, a legacy of centralised garbage collectiontechniques. Two features jeopardise the scalability of these approaches:the bottleneck associated with having to reach a global consensus beforeany resource can actually be reclaimed; and the overhead of eagerlog-keeping. This paper describes an alternative approach tocomprehensive distributed garbage collection that entails computing thevector-time characterising the causal history of some relevant events ofthe mutator processes computations. Knowing the causal histories ofthese events makes it possible to identify garbage objects that are notidentifiable by means of per-site garbage collection alone. Computingthe vector-times necessary to identify garbage is possible without theunbounded space overheads usually associated with dynamicallyreconstructing vector-times of arbitrary events of distributedcomputations. Our approach integrates a lazy log-keeping mechanism andtherefore tackles both of the aforementioned stumbling blocks ofdistributed garbage collection
展开▼