ImageSegments and massive GC

Stephen Pair spair at acm.org
Thu Aug 23 16:31:23 UTC 2001


 
> At 09:56 AM 8/23/2001 -0400, Stephen Pair wrote:
> >Would this work?  Has it been done before?
> 
> Whenever you have a multi-region garbage collector, you have 
> to worry about 
> cross-region circularities. Generally, you have to 
> simultaneously collect 
> all regions that participate in a circularity in order to 
> recover it. My 
> first impression, is that you will have such issues with your 
> proposal.

At a macro level, references among regions can detected efficiently
because for each region, we maintain a set of in pointers and a set of
out pointers.  Therefore a GC process would need only to ask for the
region for it's set of out-pointers and make an assumption that a
reference to any in-pointer will find all of the region's out-pointers
(not true, but a practical assumption).  Therefore, at a macro level,
cyclic references among regions could be detected.

Wrt distributed GC...if every computer was considered a root in a global
GC scheme (and Squeak the OS), then any computer (a region) could
periodically request validation of it's in-pointers from the referencing
computer (region).  That request could cause the referencing computer to
kick off an introspective GC (if it hasn't done one in a while) to
validate the out-pointers to the requesting computer.  A computer that
is unplugged from the network for a sufficient amount of time might
reconnect, only to find that some of it's out-pointers are dead.  It's
not as thorough as a complete mark and sweep of the entire network, but
wouldn't it be a practical solution?

> What you describe sounds very similar to various distributed GC 
> schemes.  You are just applying them locally.  There is considerable 
> published literature on distributed GC.
> 
> Allen Wirfs-Brock

I suspected that was probably the case.  I've read a couple of books,
but unfortunately, they seem to get bogged down in language specific
issues.

- Stephen





More information about the Squeak-dev mailing list