[gclist] Dgc implementation notes
Arturo Bejar
arturo@communities.com
Mon, 10 Jun 96 17:45:29 +0100
Hi all,
It seems that this is the only one of the algorithms kicking around that
has actually been implemented, and as Gustavo points out you learn a lot
about these things when you do so, so I wanted to talk a little about how
we implemented it in hopes that the group finds it useful.
As described before we work closely with the local GC. We modified the
java garbage collector so that it generates the inverse reference graph
for us, it also gives us the list of suspects for cycles. And we do this
in clusters of objects rather than the specific objects themselves, let
me explain.
Keeping an IRG for every object in a machine can be difficult, specially
if have to work from an existing system that doesn't build one up. So
what we have is kind of a logical cluster of objects, our modified gc
starts sweeping at the export tables, if a marked object is found it
stops. If it gets all the way to an imported object then a suspect has
been found (a 'cluster' of objects that is only referred remotely as well
referring to other objects remotely), and we run the algorithm from
there. The irg inside the scope of that machine is kept by the import
entry which allows for very efficient runs of the algorithm.
We are also implementing a form of lazy memory of the identifiers used in
the run so that even when a node is done it remembers the identifier for
a period of time in case there there is another request kicking around,
we also leverage positive and negative results in the propagation of the
responses, if a suspect node is discovered to be garbage while it is
wating to send of the next batch of requests, it propagates negatively,
we also pass on positive results promiscuosly keeping the expense of
concurrent requests down.
Our implementation has served us well and I hope that the algorithm and
some of the insights gained in the implementation are useful to the group.
Arturo
___________________________________________________________________
Arturo Bejar "What you can see, you can achieve."
arturo@communities.com - J. Verne, sort of