[gclist] Instanteneous GC
Joshua W. Burton
jwb@geodesic.com
Thu, 29 Jul 1999 15:32:42 -0500
At 03:53 PM 7/29/99 -0400, you wrote:
> 2. Faster implementation: Assign each object a positive number,
> starting with 0 at the root. For each object, maintain for lists
> of references: (incoming, outgoing) x (to lower numbered objects,
> to higher numbered objects).
I assume others have noticed that this is strongly analogous to
tracking what various people (depending on their hobbies) refer to
as the Erd:os number, the Marilyn Monroe number, the Kasparov
number, or the Kevin Bacon number of everyone in a population.
So long as you know the Monroe numbers of all your old flames, and
keep your little black book organized (incoming references, in an
ordered list), you can always update your own Monroe number in
constant time. The problem, it seems to me, is that _everyone_
downstream from you (outgoing references, recursively) has to be
informed of the new topology, to keep their own lists ordered.
The Centers for Disease Control have devoted a lot of effort to
this problem, in various guises, and have concluded that it's hard,
at least for liveness graphs of high connectivity. In the worst
case, where most of the objects are in One Big Tangled Graph, you
have to phone _everybody_ thousands of times, and it would be
cheaper to just start over from Marilyn each time someone dies.
%% "What we have here is a failure to deallocate." - Cool Hand Leak %%
Joshua W. Burton <jwb@geodesic.com> 414 N Orleans #410, Chi 60610
Geodesic Systems, Inc. +1 312 832 1221 x2033 (voice)
Software Engineer & Physicist at Large +1 312 832 1230 (fax/data)