Scalable Distributed Garbage Collection
for Systems of Active Objects?
Nalini Venkatasubramanianyz, Gul Aghaz, and Carolyn Talcottx
email: firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
Automatic storage management is important in highly parallel programming environments where large numbers of objects and processes are being constantly created and discarded. Part of the difficulty with automatic garbage collection in systems of active objects, such as actors, is that an active object may not be garbage if it has references to other reachable objects, even when no other object has references to it. This is because an actor may at some point communicate its mail address to a reachable object thereby making itself reachable. Because messages may be pending in the network, the asynchrony of distributed networks makes it difficult to determine the current topology. Existing garbage collection schemes halt the computation process in order to determine if a currently inaccessible actor may be potentially active, thus precluding a real-time response by the system. We describe a generation based algorithm which does not require ongoing computation to be halted during garbage collection. We also outline an informal proof of the correctness of the algorithm.
Keywords: actors, asynchrony, distributed systems, generation scavenging, network clearance, broadcast and bulldoze communication, snapshot.
We describe a garbage collection algorithm, HDGC (hierarchical distributed garbage collection),
for systems of active objects distributed across a network of nodes. An important advantage
of our algorithm is that it is non-disruptive: it does not halt or otherwise interfere with the
ongoing computation process. A novel feature is the recording of a GC-snapshot to obtain a
consistent local and global view of the accessability relation. The algorithm is described in terms
?This research was partially supported by DARPA contract NAG2-703, by DARPA and NSF joint contract CCR
90-07195, by ONR contract N00014-90-J-1899, and by the Digital Equipment Corporation.
yCurrent address: Hewlett Packard Company, 19111 Pruneridge Avenue MS44UT, Cupertino, CA 95014, USA. zDepartment of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL 61801 xDepartment of Computer Science, Stanford University, Stanford, CA 94305