Scalable distributed garbage collection for systems of active objects
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.
Keywordsactors asynchrony distributed systems generation scavenging network clearance broadcast and bulldoze communication snapshot
Unable to display preview. Download preview PDF.
- [Agh86]G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Mass., 1986.Google Scholar
- [KWN90]Dennis Kafura, Doug Washabaugh, and Jeff Nelson. Garbage collection of actorrs. In Norman Meyrowitz, editor, 1990 ECOOP/OOPSLA Proceedings, pages 126–134, Ottawa, Canada, October 1990. ACM Press.Google Scholar
- [LQP92]Bernard Lang, Christian Queinnec, and José Piquer. Garbage Collecting the World. In Nineteenth Annual ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, 39–50, 1992.Google Scholar
- [SGP90]Marc Shapiro, Olivier Gruber, and David Plainfosse. A garbage detection protocol for a realistic distributed object-support system. Technical Report 1320, INRIA, November 1990.Google Scholar
- [Ung84]David M. Ungar. Generation scavenging — a non-disruptive high performance storage reclamation algorithm. In Software Engineering Symposium on Practical Software Development Environments, pages 157–167. Pittsburgh, PA, April 1984.Google Scholar
- [Ven91]Nalini Venkatasubramanian. Hierarchical garbage collection in scalable distributed systems. Master's thesis, University of Illinois, Urbana-Champaign, Dept. of Computer Science, Urbana, IL, forthcoming 1991.Google Scholar