[gclist] Out-of-memory (was: gc interface)
Francois-Rene Rideau
rideau@ens.fr
Sun, 24 Mar 1996 00:49:18 +0100 (MET)
Hans Boehm said:
> Re: running out of memory:
>
> This is probably not an insolvable problem,
> but it makes life harder and the collector more complex.
> The problem is all in the collector implemenatations.
> [Need for consistency at the time, most likely collection,
> when out-of-memory is discovered, to deliver an exception]
> [solutions:]
> 1) Reserve worst-case memory requirements in advance.
> [Overly space inefficient, but ultimate safety-critical real-time solution]
> [or]
> 2) Add a fall-back algorithm that uses less space, but usually more time.
> [Slow and imposes some constraints on the collector]
> I'm not arguing that this is a bad research direction. I'm arguing that it's
> not obvious whether or not it will succeed, in the sense of generating
> practically useful results. And getting it to succeed requires insights I
> don't yet have. That probably makes it a good research direction, but a bad
> product idea.
I agree that this may not be the most urgent problem about GC.
But my guess is that there is a unified solution to this
and to problems of consistency in a checkpointed persistent system.
For instance, the exception mechanism could consist in rolling back
to a previous checkpointed state, with meaningful intermediate inputs saved,
to which the exception would be delivered as
"hey, there, if you do exactly the same as I did, you'll run out of memory,
so you'd better take appropriate measures!".
Kind of a "second chance".
This would mix well with a generational GC,
but there would still be problems with the major GCs.
Also, in a more localized way,
most of the data in memory could consist in cached partial evaluations
of object whose more compact "source" is known,
so it could just be discarded and re-evaluated later.
This is exactly another kind of roll-back, but finer-grained.
And the heuristics to choose which versions to keep or discard
could be made as independent from the GC algorithm as possible,
though the implementations should be tightly knit.
Well, perhaps none of us can have any serious insight who have not
seriously experienced such kind of systems.
Anyway, I wouldn't like to lead such experiments myself,
when there's so much to do where I could be more useful,
but would be glad someone did, and to help one do so.
-- , , _ v ~ ^ --
-- Fare -- rideau@clipper.ens.fr -- Francois-Rene Rideau -- +)ang-Vu Ban --
-- ' / . --
Join the TUNES project for a computing system based on computing freedom !
TUNES is a Useful, Not Expedient System
WWW page at URL: "http://www.eleves.ens.fr:8080/home/rideau/Tunes/"