Moore's law and why persistence may not be necessary.

Scott A Crosby crosby at qwes.math.cmu.edu
Wed Jan 23 23:55:10 UTC 2002


On 23 Jan 2002, Cees de Groot wrote:

> Scott A Crosby <crosby at qwes.math.cmu.edu> said:
> >But, fullGC has *no locality* and will just *die*.
> >
> I doubt it - at least under Linux. I used to run a UUCP/Fido gateway with

I was being figurative, not literal. :) If it takes it 6 hours to save an
image, it is almost better off crashing. Cause if it crashes, at least you
can use it sooner. :)

> I think it does. Clearly, your full-text thing would benefit for ease of use.
> I think that saving the image is too slow and too big a hammer for saving,
> say, a new contact - especially if you're living in a big
> multi-hundred-megabyte image.

The data gets saved whenever the image gets saved. You can dynamically
add&remove to the index anytime you want. Possible workarounds would be as
new things come in, you save them into a logfile and the index. You purge
the logfile after restarting if you're not restarting after a crash. If
you are restarting after a crash, you run the log to redo any missing
work.

Thus, you get persistence, and you amortize an expensive fullGC/save over
many many several updates.

>
> Plus, if SqueakNOS is to become a reality, it either needs a filesystem or
> something else to put all the stuff that Squeak currently uses the filesystem
> for (like, err, storing ImageSegments :-)).
>
> Now, I'm a complete idiot w.r.t. the object memory, so maybe it is possible
> to save only dirty chunks and do some memory-mapping like activities so that
> the above things would be possible. I'll start to talk about transactions in
> that case ;-).

The object memory, at least as it is now, is basically one big blob. One
big problem with object memories larger than RAM is how do you GC a gig of
pointers when you only have 256mb of RAM?  You really don't..
Imagesegments (and solutions that are essentially equivalent of
imagesegments, like a partitianed heap) aren't a solution.. The only way
to detect a loop of garbage between two or more distinct not-in-ram
imagesegments is to load both into RAM.

>
> This discussion probably slowly moves into the direction of a philosophical
> discussion. Is the object memory an object database? Should it be extended
> that way? Think SqueakNOS: just an image that fills, say, a harddisk partition
> or flash drive? Or an image plus all sorts of stuff on a Squeak-based
> filesystem/OODB external to the image?

Yep. :)





More information about the Squeak-dev mailing list