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