Discussion:
[omniORB] colocal optimization
tuergeist
2006-12-13 22:23:16 UTC
Permalink
hi,

is there any optimization inside omniORB regarding to colocated objects?

thanks for answers

regards,
chris
Christoph Becker
2006-12-14 20:18:07 UTC
Permalink
hi,

is there any optimization inside omniORB regarding to colocated objects?

thanks for answers

regards
christoph
OKeeffe, Michael K
2006-12-14 21:21:08 UTC
Permalink
-----Original Message-----
Christoph Becker
hi,
is there any optimization inside omniORB regarding to
colocated objects?
Yes.

See Section 2.8 Example 1 below:

http://omniorb.sourceforge.net/omni41/omniORB/omniORB002.html#toc11

"In the case of colocated client and servant, omniORB is able to
short-circuit the client calls so they do not involve IIOP. The calls
still go through the POA, however, so the various POA policies affect
local calls in the same way as remote ones. This optimisation is
applicable not only to object references returned by _this(), but to any
object references that are passed around within the same address space
or received from other address spaces via remote calls."
Christoph Becker
2007-01-08 16:57:26 UTC
Permalink
Post by OKeeffe, Michael K
Post by tuergeist
hi,
is there any optimization inside omniORB regarding to
colocated objects?
Yes.
http://omniorb.sourceforge.net/omni41/omniORB/omniORB002.html#toc11
...This optimisation is
applicable not only to object references returned by _this(), but to any
...
Thank you for your answer...

But, Is there any possibility to trigger omniORBs behavior regarding
to colocol optimization?
Or, how is the ORBs behavior, if one thread per connection is the
requested policy? Are colocal calls connections then? Do they have the
same priority like real connection-based calls?

Regards,
Christoph
Duncan Grisby
2007-01-08 20:46:05 UTC
Permalink
Post by Christoph Becker
But, Is there any possibility to trigger omniORBs behavior regarding
to colocol optimization?
Or, how is the ORBs behavior, if one thread per connection is the
requested policy? Are colocal calls connections then? Do they have the
same priority like real connection-based calls?
Calls to objects in the same process as the client always use the
colocal optimisation. They never go via network connections. The
connection handling parameters are therefore not involved. The same
thread in the client code that invokes upon the object reference is used
for the call through the POA into the servant. There is never any thread
switching along the call chain.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Christoph Becker
2007-01-09 22:24:39 UTC
Permalink
Post by Duncan Grisby
Post by Christoph Becker
But, Is there any possibility to trigger omniORBs behavior regarding
to colocol optimization?
Or, how is the ORBs behavior, if one thread per connection is the
requested policy? Are colocal calls connections then? Do they have the
same priority like real connection-based calls?
Calls to objects in the same process as the client always use the
colocal optimisation. They never go via network connections. The
connection handling parameters are therefore not involved. The same
thread in the client code that invokes upon the object reference is used
for the call through the POA into the servant. There is never any thread
switching along the call chain.
Thanks Duncan, but refering to my questions above:
Is it possible to trigger omniORBs behavior regarding to colocol optimization?
Am I right that a local call blocks the servant? (Because of no extra
thread is used.)

Regards,
Christoph
Duncan Grisby
2007-01-10 18:09:01 UTC
Permalink
Post by Christoph Becker
Is it possible to trigger omniORBs behavior regarding to colocol
optimization?
No. It always optimises colocated calls.
Post by Christoph Becker
Am I right that a local call blocks the servant? (Because of no
extra thread is used.)
I don't understand that at all. Why would a local call "block the
servant"? The servant doesn't care if a call is local or remote, and
nothing stops another thread from doing a simultaneous call (unless you
choose the POA's single threading policy, of course).

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Christoph Becker
2007-01-18 21:13:14 UTC
Permalink
Post by Duncan Grisby
Post by Christoph Becker
Am I right that a local call blocks the servant? (Because of no
extra thread is used.)
I don't understand that at all. Why would a local call "block the
servant"? The servant doesn't care if a call is local or remote, and
nothing stops another thread from doing a simultaneous call (unless you
choose the POA's single threading policy, of course).
Ok, sorry - my fault.

My question is: If the number of connections per servant is limited,
are local-calls included or excluded? If maximum
connections/servant-ratio is reached, what does the ORB do with local
calls? (maxGIOPConnectionPerServer)
Duncan Grisby
2007-01-19 16:03:53 UTC
Permalink
Post by Christoph Becker
My question is: If the number of connections per servant is limited,
are local-calls included or excluded? If maximum
connections/servant-ratio is reached, what does the ORB do with local
calls? (maxGIOPConnectionPerServer)
Connections are to servers, not to servants. The server is the whole
process. Local calls do not involve any connections, and thus are not
involved in connection limits.

Also, the maxGIOPConnectionPerServer parameter is actually a client-side
setting that determines how many connections a client can open to any
given server process. It doesn't limit the number of connections a
server will accept.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...