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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.