[JDEV] Runtime module (un)loading?
jeremie at jabber.org
Tue Aug 17 10:55:26 CDT 1999
[note: I'm replying to server-dev at jabber.org since it's mostly a jabber
server topic, if you are interested in this topic please join this list
and reply to that address]
> I'm writing the dynamic module loading wrapper I mentioned earlier and I
> just got a thought.
> Jabbertransport keeps all those connections to clients open, right? Jabber
> is hugely popular, so a server might easily have 10'000 users connected,
> right? That would mean that stopping it would break 10'000 tcp connections
> and generate 10'000 client dialogs saying "Argh! Server died!
> Whatdoidowhatdoidowhatdoido?!" == A BAD THING(tm), right?
> If this is so, we should probably try to create a transport that does as
> little as possible, where loadable modules which can be loaded/unloaded
> while server is running do all the actual work.
> Or have I misunderstood things?
Nope, you're exactly right. It will be in our best interest to offer as
much dynamic while-running flexibility as possible. This is one of the
reasons I'd like to explore a memory-pool based approach similiar to
Apaches, where there is a global memory pool, session memory pool,
per-connection memory pool, and per-packet memory pool. The modules
shouldn't have to resort to managing their own memory, and this way they
could be [un]loaded on the fly while their memory is preserved.
Unfortunately I don't have a ton of experience in handling memory pools,
More information about the JDev