Re: Relieving some ClassLoader contention in PreferredClassProvider
Gregg Wonderly <[email protected]>
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
Dan Creswell wrote: > Gregg Wonderly wrote: > >>Peter Jones wrote: >> >>>Why bother executing the task in a thread pool, instead of just using >>>the current thread, which has nothing better to do at that point, and >>>executes it directly in the unmodified implementation? >> >>There are a couple of issues which I am trying to deal with in making these >>changes. Predominately, it's about eliminating the locking that slow >>network >>connections create in this code. But the primary issue is making progress >>visible. If a user is on a slow cellphone connection and talking to 5 >>hosts >>each hosting 20 services that's about 100 codebase class loaders that >>need to >>resolved and created. Having 100 network connections running over a >>slow link, >>trying to test the classloader permissions, will create a huge delay and >>then a >>bunch of activity. I'm trying to create some continuous activity by >>limiting >>the total number of simultaneous things going on. >> > Sure - remembering of course that apply such throttling etc can result > in deadlocks due to inter-dependencies some of which can't be processed > at the appropriate point in time. Yep, that's one of the things that I'm trying to analyze the impact around too. I usually standup and shout about throttling in distributed applications. It's an important issue that is difficult to see all of the issues. My main focus is around service discovery, where there are not any real distributed circular wait issues from the clients perspective in resolving the codebases (from my current view of the world :-). When a service is being used and extra codebases become visible, in the flow of calls between machines, things are slightly different. I could build a demonstration of distributed deadlock related to this code change using a custom code server (that would be accessed to resolve codebase permissions) that might be doing work through this code flow. But, right now, I'm not interested in that issue. I want to create something that works correctly in the usage that I need, and then evaluate what the overall impact will be and perhaps use some alternative delayed queuing that would allow progress to never be stalled forever. Gregg Wonderly -------------------------------------------------------------------------- Getting Started: http://www.jini.org/wiki/Category:Getting_Started Community Web Site: http://jini.org jini-users Archive: http://archives.java.sun.com/archives/jini-users.html Unsubscribing: email "signoff JINI-USERS" to [email protected]