Your problem is most likely the Tcl memory allocator, and
fragmentation that can occur within the pools. There have been some
posts detailing these issues a few months ago I think.
Ah, ok.
One thing to try is building Tcl so that it doesn't use the
threaded-allocator, and to instead try something like Hoard or
Google's tcmalloc. Now all that aside, is it really a big deal to
do rolling restarts?
Right restarting is not something I like to doing, because most of
the time when I ctrl-c aolserver, it exists uncleanly with one of
these errors:
21597 aborted
or
called TclFindHashEntry on deleted table
or
open database file handle at exit: (db name)
and side-effects of this unclean exit are:
1) incomplete database operations (and I don't use transactions, so I
get dangling records) that need to get cleaned up (ie, referential
integrity is broken)
2) the possibility of database corruption (since I'm using
berkeleydb) if I shut down hard in the middle of a database write,
which has occurred a few times, and required an export to text/
reimport to fix.
3) anxiety
All these things *may* be caused by bugs in the berkeleydb/aolserver
driver, I realize this. So, I'm going to a simple Tcl RPC mechanism,
which will be slower (18x, by my benchmarking), but safer and then
I'll know if the bloat & stability problems are due to berkeley or
aolserver/tcl. Also, I'll be able to do scheduled restarts if I
separate aolserver from the database server, rather than having them
both be in process.
-john
--
AOLserver - http://www.aolserver.com/
To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]>
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject:
field of your email blank.