Skip to main content

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

  • Conference paper
  • First Online:
ECOOP’98 — Object-Oriented Programming (ECOOP 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1445))

Included in the following conference series:

Abstract

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.

This work was supported in part by the Esprit Project PerDiS Nℴ 22533.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Andrew W. Appel. Simple Generational Garbage Collection and Fast Allocation. Software Practice and Experience, 19(2):171–183, February 1989.

    Google Scholar 

  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.

    MATH  Google Scholar 

  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. Kenneth Birman, Andre Schiper, and Pat Stephenson. Lightweight causal and atomic group multicast. ACM Transactions on Computer Systems, 9(3):272–314, August 1991.

    Article  Google Scholar 

  6. Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber. Network objects. Software Practice and Experience, S4(25):87–130, December 1995. http://gatekeeper.dec.com/pub/DEC/SRC/research-reports/abstracts/srcrr-115.html.

    Google Scholar 

  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.

    Article  Google Scholar 

  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. 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. 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. 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. 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. http://www-sor.inria.fr/SOR/docs/ferreira_thesis96.html.

    Google Scholar 

  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. http://www-sor.inria.fr/SOR/docs/GC-DSM-CONSIS.OSDI94.html.

    Google Scholar 

  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. 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. 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. 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. Kai Li and Paul Hudak. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems, 7(4):321–359, November 1989.

    Article  Google Scholar 

  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. 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. ftp://pion.lcs.mit.edu/pub/thor/dgc.ps.gz.

    Google Scholar 

  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. John McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3(4):184–195, April 1960.

    Article  MATH  MathSciNet  Google Scholar 

  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. PerDiS ESPRIT Project — LTR 22533. The PerDiS project: a Persistent Distributed Store, 1997. http://www.perdis.esprit.ec.org.

    Google Scholar 

  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. http://www-sor.inria.fr/SOR/docs/SDGC_iwmm95.html.

    Google Scholar 

  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. http://www-sor.inria.fr/SOR/docs/SSPC_rr1799.html.

    Google Scholar 

  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. http://www-sor.inria.fr/SOR/docs/LRDSPMGC_wdag95.html.

    Google Scholar 

  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. 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. ftp://ftp.cs.utexas.edu/pub/garbage/bigsurv.ps.

    Google Scholar 

  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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ferreira, P., Shapiro, M. (1998). Modelling a distributed cached store for garbage collection: The algorithm and its correctness proof. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054094

Download citation

  • DOI: https://doi.org/10.1007/BFb0054094

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64737-9

  • Online ISBN: 978-3-540-69064-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics