Parallel garbage collection for graph machines

  • Ashoke Deb
Resource Control Issues
Part of the Lecture Notes in Computer Science book series (LNCS, volume 279)


Traditional reference counting falls short of being general; it cannot collect cyclic structures. On the other hand, mark-sweep algorithms are expensive, because only the resident data items are scanned, irrespective of the amount of real activity. Parallel mark-sweep algorithms are also unacceptable because they require very fine-grained synchronization with the mutator, therefore slowing down the computational process.

We have presented a novel garbage collection technique that uses reference counters and also collects cyclic structures, with little need for synchronization with the mutator.

Although in this paper we have considered interleaved, parallel and multi-collector environments, there are other computational scenarios which need be investigated.

An apparent disadvantage is the additional storage requirement for the C-field for each node. The C-field is equal to the E-field and several empirical studies show that in most cases the E-field is 1.

The space for the additional fields should be weighed against the simplicity, the efficiency, and the absence of synchronization overhead. We believe that, if the garbage nodes are collected fast and without interruption of the computational process, the total effective space utilization factor will be higher.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Ali, K. A. M. Object-oriented Storage Management and Garbage Collection in Distributed Processing systems. Royal Institute of Technology, Stockholm, Ph.D. Thesis, Dec. 1984.Google Scholar
  2. [2]
    Ben-Ari, M. Algorithms for on-the-fly garbage collection. ACM Trans. on Prog. Lang. and Sys. 6, 3 (July 1984), 333–344.CrossRefGoogle Scholar
  3. [3]
    Bobrow, D. A note on hash linking. Comm. ACM 18, 7 (July 1975), 413–415.CrossRefGoogle Scholar
  4. [4]
    Clark, D. W., and Green, C. C. An empirical study of list structure in Lisp. Comm. ACM 20, 2 (Feb. 1977), 78–87.CrossRefGoogle Scholar
  5. [5]
    Cohen, J. Garbage collection of linked data sturctures. Comput. Surv. 13, 3 (Sep. 1981), 341–367.CrossRefGoogle Scholar
  6. [6]
    Deutsch, L. P., and Bobrow, D. G. An efficient incremental automatic garbage collector. Comm. ACM 19, 9 (Sept. 1976), 522–526.CrossRefGoogle Scholar
  7. [7]
    Dijkstra, E. W., Lamport, L., Martin, A.J., Scholten, C. S., and Steffens, E. M. F. On-the-fly Garbage Collection: An exercise in cooperation. Comm. ACM 21, 11 (Nov. 1978), 966–975.CrossRefGoogle Scholar
  8. [8]
    Friedman, D. P., and Wise, D. S. Reference Counting can manage the circular environments of mutual recursion. Info. Proc. Letters 8, 1 (Jan. 1979), 41–45.CrossRefGoogle Scholar
  9. [9]
    Hickey, T., and Cohen, J. Performance analysis of on-the-fly garbage collection, Comm. ACM 27, 11 (Nov. 1984), 1143–1154.CrossRefGoogle Scholar
  10. [10]
    Hudak, P., and Keller, R. M. Garbage collection and task deletion in distributed applicative processing systems. Proc. ACM symposium on LISP and Functional Programming, Aug. 1982, 168–178.Google Scholar
  11. [11]
    Hughes, J. A Distributed Garbage Collection Algorithm, Lecture Notes in Comp. Sci., vol. 201, Springer-Verlag, Sept. 1985.Google Scholar
  12. [12]
    Kung, H., and Song, S. An efficient parallel garbage collection system and its correctness proof. Tech. Note., Dept. of Comp. Sci., CMU, Sept. 1977.Google Scholar
  13. [13]
    Lamport, L. Garbage collection with multiple processes: An exercise in parallelism. Proc. 1976 Int. Conf. on Parallel Processing, 1976, 50–54.Google Scholar
  14. [14]
    Lieberman, H., and Hewitt, C. A real-time garbage collector based on the lifetime of objects. Comm. ACM 26, 6 (June 1983), 419–429.CrossRefGoogle Scholar
  15. [15]
    Schorr, H., and Waite, W. M. An efficient machine-independent procedure for garbage collection in various list structures. Comm. ACM 10, 8 (Aug. 1967), 501–506.CrossRefGoogle Scholar
  16. [16]
    Standish, T. A. Data Structure Techniques, Addison-Wesley, 1980.Google Scholar
  17. [17]
    Wise, D. S. Design for a Multiprocessing Heap with On-board Reference Counting. Lecture Notes in Comp. Sci., vol. 201, Springer-Verlag, Sept. 1985.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Ashoke Deb
    • 1
  1. 1.Department of Computer ScienceMemorial University of NewfoundlandSt. John's, NFLDCANADA

Personalised recommendations