This Article 
 Bibliographic References 
 Add to: 
Garbage Collection in a Distributed Object-Oriented System
April 1993 (vol. 5 no. 2)
pp. 257-265

An algorithm for garbage collection in distributed systems with object sharing across processor boundaries is described. The algorithm allows local garbage collection at each node in the system to proceed independently of local collection at the other nodes. It requires no global synchronization or knowledge of the global state of the system and exhibits the capability for graceful degradation. The concept of a specialized dump node is proposed to facilitate the collection of inaccessible circular structures. An experimental evaluation of the algorithm is also described. The algorithm is compared with a corresponding scheme that requires global synchronization. The results show that the algorithm works well in distributed processing environments even when the locality of object references is low.

[1] G. T. Almes, A. P. Black, E. D. Lazowska, and J. D. Noe, "The Eden system: A technical review,"IEEE Trans. Software Eng., vol. SE-11, pp. 43-58, Jan. 1985.
[2] J. A. Stankovic, "A perspective on distributed computing systems,"IEEE Trans. Comput., vol. C-33, pp. 1102-1115, Dec. 1984.
[3] A.S. Tanenbaum, "Distributed Operating System,"Computing Surveys, Dec. 1985, pp. 419-470.
[4] H. Garcia-Molina and R. K. Abbott, "Reliable distributed database management,"Proc. IEEE, vol. 75, pp. 601-620, May 1987.
[5] J. S. Chase, F. G. Amador, E. D. Lazowska, H. M. Levy, and R. J. Littlefield, "The Amber system: parallel programming on a network of multiprocessors," inProc. 12th ACM Symp. on Oper. Syst. Principles, (Litchfield Park, AZ), Dec. 1989, pp. 147-158.
[6] J. Cohen, "Garbage collection of linked data structure,"ACM Comput. Survey, vol. 13, no. 3, pp. 341-367, Sept. 1981.
[7] T. Hickey and J. Cohen, "Performance analysis of on-the-fly garbage collection,"Commun. ACM, vol. 27, no. 11, pp. 1143-1154, Nov. 1984.
[8] H. G. Baker, "List processing in real time on a serial computer,"Commun. ACM, vol. 21, pp. 280-294, Apr. 1978.
[9] M. D. Beaudry, "Performance-related reliability measures for computing systems,"IEEE Trans. Comput., vol. C-27, pp. 540-547, June 1978.
[10] P. Hudak and R. M. Keller, "Garbage collection and task deletion in distributed applicative processing systems," inConf. Rec. 1982 ACM Symp. on Lisp and Functional Language Programming, 1982, pp. 168-178.
[11] K. A. M. Ali and S. Haridi, "Global garbage collection for distributed heap storage systems,"Int. J. Parallel Programming, vol. 15, no. 5, pp. 339-87, Oct. 1986.
[12] P. Bishop, "Computer systems with a very large address space and garbage collection," Ph. D. dissertation, Tech. Rep. MIT/LCS/TR-178, Lab. for Comput. Sci., Massachusetts Instit. Technology, May 1977.
[13] K. Kim and J. Yoon, "Approaches to implementation of a reparable distributed recovery block scheme," inDig. Papers, FTCS-18, 1988, pp. 50-55.
[14] B. Liskov and R. Ladin, "Highly available services in distributed systems," inProc. Fifth ACM Symp. Principles Distributed Comput., Aug. 1986, pp. 29-39.
[15] B. Liskov and R. Scheifler, "Guardians and actions: Linguistic support for robust, distributed programs," inProc. Ninth Symp. of Programming Languages, Jan. 1982, pp. 7-19.
[16] S. C. Vestal, "Garbage collection: an exercise in distributed, fault-tolerant programming," Ph. D. dissertation, Tech. Rep. 87-01-03, Dep. of Comput. Sci., Univ. of Washington, Jan. 1987.
[17] M. Shapiro, D. Plainfosse, and O. Gruber, "A garbage detection protocol for a realistic distributed object-support system," Tech. Rep. INRIA 1320, INRIA, Rocquencourt Cedex, France, Nov. 1990.
[18] J. D. Eckart and R. J. LeBlanc, "Distributed garbage collection," inProc. SIGPLAN '87 Symp. on Interpreters and Interpretive Techniques, SIGPLAN Notices, vol. 22, no. 7, St. Paul, MN, June 1987, pp. 264-273.
[19] D. G. Bobrow, "Managing reentrant structures using reference counts,"ACM Trans. Programming Lang. Syst., vol. 2, no. 3, pp. 269-273, July 1980.
[20] D. P. Friedman and D. S. Wise, "Reference counting can manage the circular environments of mutual recursion,"Inform. Proc. Lett., vol. 8, no. 1, pp. 41-45, Jan. 1979.
[21] D. I. Bevan, "Distributed garbage collection using reference counting," inLecture Notes in Computer Science, vol. 259: PARLE Parallel Architectures and Languages Europe. New York: Springer-Verlag, 1987, pp. 176-187.
[22] B. Goldberg, "Generational reference counting: A reduced-communication distributed storage reclamation scheme," inProc. SIGPLAN '89 Conf. on Programming Language Design and Implementation, ACM SIGPLAN Notices, vol. 24, no. 7, June 1989, pp. 313-321.
[23] A. Deb, "Parallel garbage collection for graph machines," inLecture Notes in Computer Science, vol. 279: Proceedings of the Santa Fe Workshop on Graph Reduction. New York: Springer-Verlag, 1986, pp. 252-264.
[24] C. W. Lermen and D. Maurer, "A protocol for distributed reference counting," inProc. 1986 ACM Conf. on Lisp and Functional Programming, Aug. 1986. pp. 343-350.
[25] M. Schelvis, "Incremental distribution of timestamp packets: a new approach to distributed garbage collection," inProc. 1989 OOPSLA, SIGPLAN Notices, vol. 24, no. 10, Oct. 1989, pp. 37-48.
[26] C. Mohan, B. Lindsay, and R. Obermarck, "Transaction management in the R*distributed database management system,"ACM Trans. Database Syst., vol. 11, Dec. 1986.
[27] R. D. Schlichting and F.B. Schneider, "Fail-stop processors: An approach to designing fault-tolerant computing systems,"ACM Trans. Comput. Syst., vol. 1, no. 3, pp. 222-238, Aug. 1983.
[28] L. Lamport, R. Shostak, and M. Pease, "The Byzantine Generals Problem,"ACM Trans. Programming Languages and Systems, Vol. 4, No. 3, July 1982, pp. 382-401.
[29] H. Lieberman and C. Hewitt, "A Real-Time Garbage Collector Based on the Lifetimes of Objects,"Comm. ACM, June 1983, pp. 419-429.
[30] D. Ungar and F. Jackson, "Tenuring policies for generation-based storage reclamation," inProc. 1988 OOPSLA, SIGPLAN Notices, vol. 23, no. 11, Sept. 1988, pp. 1-17.
[31] E. Jul, H. Levy, N. Hutchinson, and A. Black, "Fine-grained mobility in the emerald system," Tech. Rep. 87-02-03, Dep. of Comput. Sci., Univ. of Washington, Seattle, Feb. 1987.
[32] R. J. Fowler, "Decentralized object finding using forwarding addresses," Ph.D. thesis, Dep. Computer Sci.. Univ. Washington, Dec. 1985.
[33] H. Garcia-Molina, "Elections in a distributed computing system,"IEEE Trans. Comput., vol. 31, no. 1, Jan. 1982, pp. 48-59.
[34] D. W. Clark, "Measurements of dynamic list structure use in Lisp,"IEEE Trans. Software Eng., vol. SE-5, pp. 51-59, Jan. 1979.
[35] D. W. Clark, "An empirical study of list structure in Lisp,"Commun. ACM, vol. 20, pp. 78-87, Feb. 1977.
[36] N. Bagherzadeh, S. Heng, and C. Wu, "A parallel asynchronous garbage collection algorithm for distributed systems,"IEEE Trans. Knowl. Data Eng., vol. 3, pp. 100-107, Mar. 1991.
[37] M. Ben-Ari, "Algorithm for on-the-fly garbage collection,"ACM Trans. Programming Languages Syst., vol. 6, no. 3, pp. 333-344, July 1984.

Index Terms:
distributed object-oriented system; garbage collection; object sharing; processor boundaries; local garbage collection; graceful degradation; specialized dump node; inaccessible circular structures; experimental evaluation; global synchronization; distributed processing environments; object references; distributed processing; object-oriented methods; storage allocation; storage management
A. Gupta, W.K. Fuchs, "Garbage Collection in a Distributed Object-Oriented System," IEEE Transactions on Knowledge and Data Engineering, vol. 5, no. 2, pp. 257-265, April 1993, doi:10.1109/69.219734
Usage of this product signifies your acceptance of the Terms of Use.