[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: Concurrent deployments

david.lloyd@jboss.com do-not-reply at jboss.com
Fri Feb 22 11:22:09 EST 2008


"adrian at jboss.org" wrote : * Not all services define their dependencies properly. It's only the implicit sequential order that makes them work correctly.

If they don't define their dependencies properly, what guarantee is there that they will even work at all?

"adrian at jboss.org" wrote : * Finally, less of a practical issue, but more a generic note. Using mulitple threads for startup will only work if there are multiple cpus/cores. In non SMP environments the bootstrap could be slower with multiple competing threads, although it may be able to take advantage of times during disk I/O waits
  | to do some processing on other threads?

Two things - first, I don't even know where I'd be able to buy a server-class system (heck even a desktop-class system come to think of it) that didn't have at least two cores (if not two or more multi-core CPUs).  But that issue aside, any service that has non-CPU bound tasks (which includes not just disk I/O but network I/O) could possibly see a performance benefit from concurrent startup, even on a single-core system.  And in any case we're talking about service deployment - I doubt the additional overhead of context switching between multiple threads could possibly make a measurable impact on performance.  Especially in comparison to examples like Bela's 5-second timeout.

Also one could reasonably expect that rather than firing off a thread for every task, there would be a thread pool Executor of some sort.  The thread pool could be sized in proportion to the number of cores available, or in some configurable fashion.  Then the simple rule would be, any deployment task with no remaining dependencies gets put into the queue for execution.

I don't really understand the hairy details behind some of the classloader problems, but surely they could be worked around by imposing some reliance on the dependency system for them as well?

I agree with Bela - a concurrent startup would be hugely beneficial for startup time, not to mention just being cool.  In fact when first learning about the MC and its dependency system, I had simply assumed that dependencies were resolved concurrently and never gave it a moment's thought.  It wasn't until I spoke with Bela at JBW that I learned otherwise.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131491#4131491

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4131491



More information about the jboss-dev-forums mailing list