A while back, the Modula-3 effort built a system called Network objects that had a pretty decent scheme for distributed GC. check out the DEC SRC web pages for the papers while SRC still exists. :)
Anyway, the basic idea was that the each local GC would keep track of which objects on a machine had been exported to another machine. You would keep a dummy handle on each of these objects to keep them from being GC'd locally, and you'd keep a reference count on each exported object handle to keep track of the # of remote references. If the reference count goes to zero, you throw the handle away and allow the object to be GC'd locally.
This algorithm is tuned for the case where not too many objects are remotely exported, and for the case where there are no export cycles. I think this is pretty reasonable.
For persistent GC, there is a thesis from CMU by Scott Nettles that discusses persistent GC and transaction processing in the context of ML that is pretty good. The Exodus project at wisconsin also published at least one paper about this. And the Object database group at UMass has probably looked into it some as well.
Pete
-----Original Message----- From: Patrick Logan patrickl@servio.gemstone.com To: squeak@cs.uiuc.edu squeak@cs.uiuc.edu Date: Friday, June 19, 1998 3:16 PM Subject: Re: garbage collection in a distributed environment
I think there is an interesting paper or two from U. Mass. about distributed GC.
Paul Wilson's site at U. Texas may have something about persitent GC if not distributed.
If you have Gemstone documentation, there is information about the functioning, but not the implementation, of its various distributed and persistent collectors. Maybe an old set is available somehow?
-- Patrick Logan mailto:patrickl@gemstone.com Voice 503-533-3365 Fax 503-629-8556 Gemstone Systems, Inc http://www.gemstone.com
The "Higher Order..." paper available at the following web site includes a detailed description of a distributed garbage collector.
http://www.neci.nj.nec.com/PLS/Kali.html
squeak-dev@lists.squeakfoundation.org