[Seaside] persistence for lazy people
avi.bryant at gmail.com
Sun Nov 27 23:03:12 CET 2005
On Nov 26, 2005, at 3:10 PM, Ross Boylan wrote:
> Since the image is already an object database, I was thinking of using
> it to serve seaside, with some thread that wakes every 10? minutes and
> does a save.
> I'm not, at least at first, going to have a lot of data or users.
> Is this a bad idea, or does it qualify as the simplest thing that
> could possible work?
It does, absolutely. It's a great 80% solution when you can get away
with it. If you're worried about dropping requests in the couple of
seconds that the image is saving, see the thread I started on squeak-
dev a bit ago about forking and snapshotting in the background. I
can send you patches for a couple of approaches to this, one which
still involves a GC and one which lives more dangerously and
doesn't. I've been testing both and haven't run into any problems.
Saving an image then becomes nearly free, and you can probably up the
frequency to every 2 or 3 minutes instead.
There's still the problem of potentially losing data if the image
crashes or hangs during those 2 or 3 minutes. One dead-simple way to
handle this that seems like it should work in theory, but still
scares me a bit in practice, is to fully log all of HTTP requests
that come in. If you need to, you can then restart the image from
the last save point and replay those requests. This could also
potentially make for a great forensic tool - you could step through
the requests one by one and hopefully find out *why* the image crashed.
More information about the Seaside