Re: POA threading - more details - RE-OPEN ISSUE

Dion Picco <[email protected]> Fri, 30 Sep 2005 10:38:20 -0230
Newsgroups gmane.comp.corba.orbacus
Organization IONA | Making Software Work Together TM
Message-ID <[email protected]>
Hi Erez,

On Fri, Sep 30, 2005 at 11:22:59AM +0300, Erez Hadad wrote:
> Hi Dion,
> 
> It seems I need to re-open this issue again since thinking more about it 
> convinced me that your answer does not explain it. You see, the 
> multi-threaded client issues *synchronous* collocated DII requests. This 
> means that each client thread, whether it waits for the POA pool thread or 
> processes the request inside the POA by itself, does nothing else. There is 
> no concurrency to be gained in the case of using a POA thread pool compared 
> to the case of a a same_thread dispatch strategy. Still, using a POA thread 
> pool to process requests yields much better throughput than using the 
> client's threads. This is what lead me to persist on the possibility of 
> thread discrimination in the first place. Note that I'm using JOB, so JTC is 
> irrelevant. Can you think of any other reason why this would happen?
> (JOB-4.1.3, JDK-4.1.2, Linux)
> 
> I remembered that point a little late - sorry for troubling you again.
> 
> Sincerely,
> Erez Hadad

No, you are getting confused here.  The POA thread pool exists only in
the server.  Dispath_same_thread is the same as thread_per_client.  You
have one thread, a single receiver thread, operating for the single
client connection.  Each thread in your client is operating over the
same connection and there is only one thread in the server for this
connection.  So this means that the server can only process one message
at a time.  So the important thing to remember is that even though you
have multiple client threads, they are all being serviced on the
server-end by a single receiver thread.  This is the source of the
bottleneck.
In your case, dispatch_same_thread is not very good for you since you
have a single client making a plethora of requests.
Dispatch_same_thread is perfect for when a server has connections to
multiple clients so that each connection between the client and server
has its own dedicated receiver thread on the server-side.
Hope that clears up the confusion.

-- 
Dion Picco, Software Engineer
IONA Technologies Inc.
Team Orbacus - Your CORBA Source
mailto:[email protected]
http://www.orbacus.com
_______________________________________________
OB-Users Mailing List - [email protected]
http://mail.ooc.nf.ca/mailman/listinfo/ob-users
Visit our support FAQ before you send a message.
http://www.orbacus.com/faq/support.html