FYI, Berkeley DB's Tcl binding isn't truly thread-safe:

    http://dossy.org/archives/000307.html

I'm not using their Tcl binding, as it's not even close to thread safe. I'm using Vlad's BerkeleyDB/aolserver nsdb driver. However, that may be leaky, so what I was going to do is make a simple tcl rpc server that uses the Berkeley DB tcl binding, and have aolserver talk tcpip rpc to that. It'll be slow, but it'll show me if the bloat is the berkeley db nsdb driver or not.


I'm not sure if this can be "fixed" by implementing a BDB nsdb driver
for AOLserver that uses the BDB C API or not.

That *is* what I'm using currently, and Vlad's driver works very well, but I do have bloat and I don't know where it comes from. It's quite bad now, going to 1.3g of memory use in 24h.


What you can consider doing is using the new nsproxy module to use the
BDB Tcl binding from nstclsh in separate processes in a nsproxy pool.
Then, you're relying on BDB's "concurrency" (multi-process locking)
being implemented correctly.

Yes, I prototyped exactly that, and it worked, and yield only a 4x slowdown in database fetch time, rather than the 18x slowdown that the RPC mechanism yielded. However, I probably won't initially use that technique, as I first want to see where the bloat problem is.

-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.

Reply via email to