[JDEV] Runtime module (un)loading?

Jeremie 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,
anyone else?

Jer





More information about the JDev mailing list