Modelling a distributed cached store for garbage collection: The algorithm and its correctness proof

  • Paulo Ferreira
  • Marc Shapiro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1445)


Caching and persistence support efficient, convenient and transparent distributed data sharing. The most natural model of persistence is persistence by reachability, managed automatically by a garbage collector (GC). We propose a very general model of such a system (based on distributed shared memory) and a scalable, asynchronous distributed GC algorithm. Within this model, we show sufficient and widely applicable correctness conditions for the interactions between applications, store, memory, coherence, and GC.

The GC runs as a set of processes (local to each participating machine) communicating by asynchronous messages. Collection does not interfere with applications by setting locks, polluting caches, or causing I/O; this requirement raised some novel and interesting challenges which we address in this article. The algorithm is safe and live; it is not complete, i.e. it collects some distributed cycles of garbage but not necessarily all.


Garbage Collection Rule Versus Safety Rule Pointer Graph Union Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    L. Amsaleg, M. Franklin, and O. Gruber. Efficient Incremental Garbage Collection for Client-Server Object Database Systems. In Proc. of the 21th VLDB Int. Conf., Zürich, Switzerland, September 1995.Google Scholar
  2. 2.
    Andrew W. Appel. Simple Generational Garbage Collection and Fast Allocation. Software Practice and Experience, 19(2):171–183, February 1989.Google Scholar
  3. 3.
    M. P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Morrison. An approach to persistent programming. The Computer Journal, 26(4):360–365, 1983.zbMATHGoogle Scholar
  4. 4.
    B. Bershad, M. J. Zekauskas, and W. A. Sawdon. The Midway distributed shared memory system. In Proc. of the 1993 CompCon Conf., 1993.Google Scholar
  5. 5.
    Kenneth Birman, Andre Schiper, and Pat Stephenson. Lightweight causal and atomic group multicast. ACM Transactions on Computer Systems, 9(3):272–314, August 1991.CrossRefGoogle Scholar
  6. 6.
    Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Software Practice and Experience, S4(25):87–130, December 1995. Scholar
  7. 7.
    K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of distributed systems. ACM Transactions on Computer Systems, 3(1):63–75, February 1985.CrossRefGoogle Scholar
  8. 8.
    J. S. Chase, H. E. Levy, M. J. Feely, and E. D. Lazowska. Sharing and adressing in a single address space system. ACM Transactions on Computer Systems, 12(3), November 1994.Google Scholar
  9. 9.
    Jonathan E. Cook, Alexander L. Wolf, and Benjamin G. Zorn. Partition selection policies in object database garbage collection. In Proc. Int. Conf. on Management of Data (SIGMOD), pages 371–382, Minneapolis MN (USA), May 1994. ACM SIGMOD.Google Scholar
  10. 10.
    Alan Dearle, Rex di Bona, James Farrow, Frans Henskens, Anders Lindström, John Rosenberg, and Francis Vaughan. Grasshopper: An orthogonally persistent operating system. Computing Systems, 7(3):289–312, 1994.Google Scholar
  11. 11.
    Damien Doligez and Xavier Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ML. In Proc. of the 20th Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Lang., pages 113–123, Charleston SC (USA), January 1993.Google Scholar
  12. 12.
    Paulo Ferreira. Larchant: ramasse-miettes dans une mémoire partagée répartie avec persistance par atteignabilité. Thèse de doctorat, Université Paris 6, Pierre et Marie Curie, Paris (France), May 1996. Scholar
  13. 13.
    Paulo Ferreira and Marc Shapiro. Garbage collection and DSM consistency. In Proc. of the First Symposium on Operating Systems Design and Implementation (OSDI), pages 229–241, Monterey CA (USA), November 1994. ACM. Scholar
  14. 14.
    Olivier Gruber and Laurent Amsaleg. Object grouping in EOS. In Proc. Int. Workshop on Distributed Object Management, pages 184–201, Edmonton (Canada), August 1992.Google Scholar
  15. 15.
    James Leslie Keedy. Support for objects in the MONADS architecture. In J. Rosenberg, editor, Proc. Workshop on persistent object systems, pages 202–213, Newcastle NSW (Australia), January 1989.Google Scholar
  16. 16.
    P. Keleher, A. Cox, and W. Zwaenepoel. TreadMarks: Distributed shared memory on standard workstations and operating systems. Proceedings of the 1994 Winter USENIX Conference, January 1994.Google Scholar
  17. 17.
    T. Le Sergent and B. Berthomieu. Incremental multi-threaded garbage collection on virtually shared memory architectures. In Proc. Int. Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 179–199, Saint-Malo (France), September 1992. Springer-Verlag.Google Scholar
  18. 18.
    Kai Li and Paul Hudak. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems, 7(4):321–359, November 1989.CrossRefGoogle Scholar
  19. 19.
    Barbara Liskov, Mark Day, and Liuba Shrira. Distributed object management in Thor. In Proc. Int. Workshop on Distributed Object Management, pages 1–15, Edmonton (Canada), August 1992.Google Scholar
  20. 20.
    Umesh Maheshwari and Barbara Liskov. Fault-tolerant distributed garbage collection in a client-server, object database. In Proc. Parallel and Dist. Info. Sys., pages 239–248, Austin TX (USA), September 1994. Scholar
  21. 21.
    Umesh Maheshwari and Barbara Liskov. Partitioned garbage collection of a large object store. In Proc. Int. Conf. on Management of Data (SIGMOD), Montreal, Canada, 1996.Google Scholar
  22. 22.
    John McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3(4):184–195, April 1960.zbMATHMathSciNetCrossRefGoogle Scholar
  23. 23.
    J. Eliot B. Moss, David S. Munro, and Richard L. Hudson. PMOS: A complete and coarse-grained incremental garbage collector for persistent object stores. In Proc. of the 6th Int. Workshop on Persistent Object Systems, Cape May NJ (USA), May 1996.Google Scholar
  24. 24.
    PerDiS ESPRIT Project — LTR 22533. The PerDiS project: a Persistent Distributed Store, 1997. Scholar
  25. 25.
    David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Proc. Int. Workshop on Memory Management, Kinross Scotland (UK), September 1995. Scholar
  26. 26.
    Marc Shapiro, Peter Dickman, and David Plainfossé. SSP chains: Robust, distributed references supporting acyclic garbage collection. Rapport de Recherche 1799, Institut National de Recherche en Informatique et Automatique, Rocquencourt (France), November 1992. Scholar
  27. 27.
    Marc Shapiro and Paulo Ferreira. Larchant-RDOSS: a distributed shared persistent memory and its garbage collector. In J.-M. Hélary and M. Raynal, editors, Workshop on Distributed Algorithms (WDAG), number 972 in Springer-Verlag LNCS, pages 198–214, Le Mont Saint-Michel (France), September 1995. Scholar
  28. 28.
    Marcin Skubiszewski and Patrick Valduriez. Concurrent garbage collection in O2. In 24th International Conference on Very Large Data Bases, Athens, Greece, 1997.Google Scholar
  29. 29.
    Paul R. Wilson. Uniprocessor garbage collection techniques. In Proc. Int. Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, Saint-Malo (France), September 1992. Springer-Verlag. Scholar
  30. 30.
    V. Yong, J. Naughton, and J. Yu. Storage reclamation and reorganization in clientserver persistent object stores. In Proc. Data Engineering Int. Conf., pages 120–133, Houston TX (USA), February 1994.Google Scholar
  31. 31.
    Weimin Yu and Alan Cox. Conservative garbage collection on distributed shared memory systems. In 16th Int. Conf. on Distributed Computing Syst., pages 402–410, Hong Kong, May 1996. IEEE Computer Society.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Paulo Ferreira
    • 1
  • Marc Shapiro
    • 2
  1. 1.INESC/ISTLisboaPortugal
  2. 2.INRIA RocquencourtLe Chesnay CedexFrance

Personalised recommendations