Abstract
The Java RMI collector is arguably the most widely used distributed garbage collector. Its distributed reference listing algorithm was introduced by Birrell et al. in the context of Network Objects, where the description was informal and heavily biased toward implementation. In this article, we formalize this algorithm in an implementation-independent manner, which allows us to clarify weaknesses of the initial presentation. In particular, we discover cases critical to the correctness of the algorithm that were not accounted for by Birrell. We use our formalization to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. Furthermore, we offer a novel graphical representation of the state transition diagram, which we use to provide intuitive explanations of the algorithm and to investigate its tolerance to faults in a systematic manner. Finally, we examine how the algorithm may be optimized, either by placing constraints on message channels or by tightening the coupling between the application program and distributed garbage collector.
- Abdullahi, S. E. and Ringwood, G. A. 1998. Garbage collecting the Internet: A survey of distributed garbage collection. ACM Comput. Surv. 30, 3 (Sept.), 330--373. Google Scholar
Digital Library
- Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J., Giménez, E., Herbelin, H., Huet, G., Muñoz, C., Murthy, C., Parent, C., Paulin, C., Saïbi, A., and Werner, B. 1997. The Coq proof assistant reference manual---version V6.1. Tech. rep. 0203. INRIA, Rocquencon, France.Google Scholar
- Ben-Ari, M. 1982. On-the-fly garbage collection: New algorithms inspired by program proofs. In Automata, Languages and Programming. Ninth Colloquium, (Aarhus, Denmark), M. Nielsen and E. M. Schmidt, Eds. Springer-Verlag, Berlin, Germany, 14--22. Google Scholar
Digital Library
- Ben-Ari, M. 1984. Algorithms for on-the-fly garbage collection. ACM Trans. Program. Lang. Syst. 6, 3 (July), 333--344. Google Scholar
Digital Library
- Bevan, D. I. 1987. Distributed garbage collection using reference counting. See de Bakker, et al. {1987}, 176--187.Google Scholar
- Birrell, A., Evers, D., Nelson, G., Owicki, S., and Wobber, E. 1993. Distributed garbage collection for Network Objects. Tech. rep. 116. Digital Systems Research Center, Palo Alto, CA.Google Scholar
- Birrell, A., Nelson, G., Owicki, S., and Wobber, E. 1994a. Network Objects. Tech. rep. 115. Digital Systems Research Center, Palo Alto, CA.Google Scholar
- Birrell, A., Nelson, G., Owicki, S., and Wobber, E. 1994b. Network Objects. In Proceedings of the Fourteenth ACM Symposium on Operating Systems Principles (Asheville, NC). ACM Press, New York, NY, 217--230. Google Scholar
Digital Library
- Birrell, A., Nelson, G., Owicki, S., and Wobber, E. 1995. Network Objects. Softw.: Pract. Exper. 25, 4 (Dec.), 87--130. Google Scholar
Digital Library
- Collins, G. E. 1960. A method for overlapping and erasure of lists. Commun. ACM 3, 12 (Dec.), 655--657. Google Scholar
Digital Library
- Corporaal, H., Veldman, T., and van de Goor, A. J. 1990. Efficient, reference weight-based garbage collection method for distributed systems. In Proceedings of PARBASE-90: International Conference on Databases, Parallel Architectures, and Their Applications (Miami Beach). IEEE Press, Los Alamitos, CA, 463--465.Google Scholar
- de Bakker, J. W., Nijman, L., and Treleaven, P. C., Eds. 1987. PARLE'87 Parallel Architectures and Languages Europe (Eindhoven, The Netherlands). Lecture Notes in Computer Science, vol. 258/259. Springer-Verlag, Berlin, Germany. Google Scholar
Digital Library
- Dickman, P. 1992. Optimising weighted reference counts for scalable fault-tolerant distributed object-support systems. Unpublished note.Google Scholar
- Dickman, P. 2000. Diffusion tree redirection for indirect reference counting. In Proceedings of the Second International Symposium on Memory Management (Minneapolis, MN), T. Hosking, Ed. ACM Press, New York, NY. Google Scholar
Digital Library
- Dijkstra, E. W., Lamport, L., Martin, A. J., Scholten, C. S., and Steffens, E. F. M. 1978. On-the-fly garbage collection: An exercise in cooperation. Commun. ACM 21, 11 (Nov.), 966--975. Google Scholar
Digital Library
- Doligez, D. and Gonthier, G. 1994. Portable, unobtrusive garbage collection for multiprocessor systems. In Proceedings of the Twenty-First SIGPLAN-SIGACT ACM Symposium on Principles of Programming Languages (Portland, OR). ACM Press New York, NY, 70--83. Google Scholar
Digital Library
- Foster, I. 1989. A multicomputer garbage collector for a single-assignment language. Intl. J. Parallel Programming 18, 3, 181--203. Google Scholar
Digital Library
- Francez, N. 1978. An application of a method for analysis of cyclic programs. ACM Trans. Softw. Eng. 4, 5 (Sept.), 371--377.Google Scholar
- Goguen, H., Brooksby, R., and Burstall, R. 1998. An abstract formulation of memory management. Available online from http://www.dcs.ed.ac.uk/~hhg/.Google Scholar
- Gonthier, G. 1996. Verifying the safety of a practical concurrent garbage collector. In Computer Aided Verification CAV'96, (New Brunswick, NJ.), R. Alur and T. Henzinger, Eds. Lecture Notes in Computer Science, vol. 1102. Springer-Verlag, Berlin, Germany. Google Scholar
Digital Library
- Gries, D. 1977. An exercise in proving parallel programs correct. Commun. ACM 20, 12 (Dec.), 921--930. Google Scholar
Digital Library
- Havelund, K. and Shankar, N. 1997. A mechanized refinement proof for a garbage collector. Available online from http://www.cs.auc.dk/~havelund/.Google Scholar
- Hirzel, M., Diwan, A., and Henkel, J. 2002. On the usefulness of type and liveness for garbage collection and leak detection. ACM Trans. Programm. Lang. Syst. 24, 6 (Nov.), 593--624. Google Scholar
Digital Library
- Jackson, P. 1998. Verifying a garbage collection algorithm. In Proceedings of 11th International Conference on Theorem Proving in Higher Order Logics TPHOLs'98 (Canberra, Australia). Lecture Notes in Computer Science, vol. 1479. Springer-Verlag, Berlin, Germany, 225-- 244. Google Scholar
Digital Library
- Jones, R. E. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester, U.K. With a chapter on Distributed Garbage Collection by R. Lins.Google Scholar
Digital Library
- Jones, R. E. and Lins, R. D. 1993. Cyclic weighted reference counting without delay. In PARLE'93 Parallel Architectures and Languages Europe, A. Bode, M. Reeve, and G. Wolf, Eds. Lecture Notes in Computer Science, vol. 694. Springer-Verlag, Munich, Germany, 712--515. Google Scholar
Digital Library
- Jul, E., Levy, H., Hutchinson, N., and Black, A. 1988. Fine-grained mobility in the Emerald system. ACM Trans. Comput. Syst. 6, 1 (Jan.), 109--133. Google Scholar
Digital Library
- Kung, H. T. and Song, S. W. 1977. An efficient parallel garbage collection system and its correctness proof. In Proceedings of the IEEE Symposium on Foundations of Computer Science. IEEE Press, Los Alamitos, CA, 120--131.Google Scholar
- Lamport, L. 1991. The temporal logic of actions. Research rep. 79. DEC Systems Research Center, Palo Alto, CA.Google Scholar
- Lang, B., Quenniac, C., and Piquer, J. 1992. Garbage collecting the world. In Proceedings of the Nineteenth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Albuquerque, NM). ACM Press, New York, NY, 39--50. Google Scholar
Digital Library
- Le Fessant, F., Piumarta, I., and Shapiro, M. 1998. An implementation for complete asynchronous distributed garbage collection. In Proceedings of SIGPLAN'98 Conference on Programming Languages Design and Implementation (Montreal, P.Q., Canada). ACM SIGPLAN Not. 33, 5 (May), 152--161. Google Scholar
Digital Library
- Lermen, C.-W. and Maurer, D. 1986. A protocol for distributed reference counting. In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming (Cambridge, MA). ACM Press, New York, NY, 343--350. Google Scholar
Digital Library
- Lins, R. D. and Jones, R. E. 1993. Cyclic weighted reference counting. In Procedings of WP & DP'93 Workshop on Parallel and Distributed Processing (Sofia, Bulgaria), K. Boyanov, Ed. North Holland, Amsterdam, The Netherlands, 369--382. Also published in 1991 under the same title as Computing Laboratory Tech. rep. 95, University of Kent, U.K.Google Scholar
- Maheshwari, U. and Liskov, B. 1997. Collecting cyclic distributed garbage by back tracing. In Proceedings of PODC'97 Principles of Distributed Computing (Santa Barbara, CA). ACM Press, New York, NY, 239--248. Google Scholar
Digital Library
- Mancini, L. V. and Shrivastava, S. K. 1991. Fault-tolerant reference counting for garbage collection in distributed systems. Comput. J. 34, 6 (Dec.), 503--513. Google Scholar
Digital Library
- Manna, Z. and Pnuelli, M. 1991. Temporal Logic or Reactive and Concurrent Systems: Specification. Springer, Berlin, Germany. Google Scholar
Digital Library
- Moreau, L. 2001a. Distributed directory service and message router for mobile agents. Sci. Comput. Programm. 39, 2--3, 249--272. Google Scholar
Digital Library
- Moreau, L. 2001b. Tree rerooting in distributed garbage collection: Implementation and performance evaluation. Higher-Order Symbol. Computat. 14, 4 (Dec.), 357--386. Google Scholar
Digital Library
- Moreau, L. 2002. A Fault-tolerant directory service for mobile agents based on forwarding pointers. In Proceedings of the 17th ACM Symposium on Applied Computing (SAC'2002)---Track on Agents, Interactions, Mobility and Systems (Madrid, Spain). ACM Press, New York, NY, 93--100. Google Scholar
Digital Library
- Moreau, L. and Duprat, J. 2001. A construction of distributed reference counting. Acta Informatica 37, 563--595. Google Scholar
Digital Library
- Müller, K. A. G. 1976. On the feasibility of concurrent garbage collection. Ph.D. dissertation, Tech. Hogeschool Delft, Delft, The Netherlands.Google Scholar
- Owicki, S. and Lamport, L. 1982. Proving liveness properties of concurrent programs. ACM Trans. Programm. Lang. Syst. 4, 3 (July), 455--495. Google Scholar
Digital Library
- Piquer, J. M. 1991. Indirect reference counting: A distributed garbage collection algorithm. In PARLE'91 Parallel Architectures and Languages Europe (Eindhoven, The Netherlands), E. H. L. Aarts et al., Eds. Lecture Notes in Computer Science, vol. 505. Springer-Verlag, Berlin, Germany. Google Scholar
Digital Library
- Pixley, C. 1988. An incremental garbage collection algorithm for multi-mutator systems. Distrib. Comput. 3, 1, 41--50.Google Scholar
Digital Library
- Plainfossé, D. and Shapiro, M. 1995. A survey of distributed garbage collection techniques. In Proceedings of the International Workshop on Memory Management, H. Baker, Ed. Lecture Notes in Computer Science, vol. 986. Springer-Verlag, Berlin, Germany. Google Scholar
Digital Library
- Ramesh, S. and Mehndiratta, S. L. 1983. The liveness property of on-the-fly garbage collector---a proof. Inform. Process. Lett. 17, 4 (Nov.), 189--195.Google Scholar
Cross Ref
- Rodrigues, H. C. C. D. and Jones, R. E. 1996. A cyclic distributed garbage collector for network objects. In Tenth International Workshop on Distributed Algorithms, WDAG'96 (Bologna, Italy), O. Babaoglu and K. Marzullo, Eds. Lecture Notes in Computer Science, vol. 1151. Springer-Verlag, Berlin, Germany, 123--140. Google Scholar
Digital Library
- Rodrigues, H. C. C. D. and Jones, R. E. 1998. Cyclic distributed garbage collection with group merger. In Proceedings of 12th European Conference on Object-Oriented Programming, ECOOP98 (Brussels, Belgium), E. Jul, Ed. Lecture Notes in Computer Science, vol. 1445. Springer-Verlag, Berlin, Germany, 249--273. Google Scholar
Digital Library
- Röjemo, N. and Runciman, C. 1996. Lag, drag, void, and use: Heap profiling and space-efficient compilation revisited. In Proceedings of the First International Conference on Functional Programming (Philadelphia, PA). ACM Press, New York, NY, 34--41. Google Scholar
Digital Library
- Russinoff, D. M. 1994. A mechanically verified incremental garbage collector. Form. Asp. Comput. 6, 359--390.Google Scholar
Cross Ref
- Shaham, R., Kolodner, E., and Sagiv, M. 2003. Estimating the impact of liveness information on space consumption in Java. In ISMM'02 Proceedings of the Third International Symposium on Memory Management (Berlin, Germany), D. Detlefs, Ed. ACM SIGPLAN Not. 38, 2(Feb. supplement), 64--75. Google Scholar
Digital Library
- Shapiro, M., Dickman, P., and Plainfossé, D. 1992a. Robust, distributed references and acyclic garbage collection. In Proceedings of the Symposium on Principles of Distributed Computing (Vancouver, B.C., Canada). ACM Press, New York, NY, 135--146. Superseded by Shapiro et al. {1992b}. Google Scholar
Digital Library
- Shapiro, M., Dickman, P., and Plainfossé, D. 1992b. SSP chains: Robust, distributed references supporting acyclic garbage collection. Rapport de Recherche 1799. INRIA-Rocquencourt, France.Google Scholar
- Shapiro, M., Gruber, O., and Plainfossé, D. 1990. A garbage detection protocol for a realistic distributed object-support system. Rapport de Recherche 1320. Inria-Rocquencourt, Rocquencourt, France.Google Scholar
- Stenning, V. 1976. On-the-fly garbage collection. Unpublished notes, cited by Gries {1977}.Google Scholar
- Sun Microsystems. 1996. Java Remote Method Invocation Specification. Sun Microsystems. Available at http://java.sun.com/products/jdk/rmi/.Google Scholar
- Tel, G. and Mattern, F. 1993. The derivation of distributed termination detection algorithms from garbage collection schemes. ACM Trans. Program. Lang. Syst. 15, 1 (Jan.), 1--35. Google Scholar
Digital Library
- van de Snepscheut, J. 1987. Algorithms for on-the-fly garbage collection revisited. Inform. Process. Lett. 24, 4 (Mar.), 211--216. Google Scholar
Digital Library
- Watson, P. and Watson, I. 1987. An efficient garbage collection scheme for parallel computer architectures. See de Bakker et al. {1987}, 432--443. Google Scholar
Digital Library
Index Terms
Birrell's distributed reference listing revisited
Recommendations
Distributed Garbage Collection by Timeouts and Backward Inquiry
COMPSAC '03: Proceedings of the 27th Annual International Conference on Computer Software and ApplicationsWe present a practical and efficient garbage collectionmechanism for large scale distributed systems. Themechanism collects all garbage including distributed cyclicgarbage without global synchronization or backward links.The primary method used for ...
Distributed garbage collection for general graphs
ISMM 2018: Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory ManagementWe propose a scalable, cycle-collecting, decentralized, reference counting garbage collector with partial tracing. The algorithm is based on the Brownbridge system but uses four different types of references to label edges. Memory usage is O (log n) ...
A simple distributed garbage collector for distributed real-time Java
The use of real-time distribution middleware programmed with high-level languages like Java is becoming of increasing interest in next generation applications. Technology like Java's Remote Method Invocation (RMI) paves the way towards these new ...






Comments