Summary.
Distributed systems with a large number of nodes use internode reference counting for timely and fault-tolerant garbage collection. However, this fails to collect cyclic garbage distributed across nodes. One fix is to migrate all objects on a garbage cycle to a single node, where they can be collected by the tracing-based local collector. Existing proposals based on this technique have practical problems due to unnecessary migration of objects. We propose a scheme that avoids migration of live objects, batches objects to avoid a cascade of migration messages, and short-cuts the migration path to avoid multiple migrations. We use simple estimates to detect objects that are highly likely to be cyclic garbage and to select a node to which such objects are migrated. The scheme collects all distributed cyclic garbage, has low overhead, and preserves the decentralized and fault-tolerant nature of distributed reference counting and migration.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: August 1995 / Accepted: August 1996
Rights and permissions
About this article
Cite this article
Maheshwari, U., Liskov, B. Collecting cyclic distributed garbage by controlled migration. Distrib Comput 10, 79–86 (1997). https://doi.org/10.1007/s004460050026
Issue Date:
DOI: https://doi.org/10.1007/s004460050026