Go Back   ZeroC Forums > Comments

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
  #1 (permalink)  
Old 12-26-2003
chaukmean chaukmean is offline
Registered User
 
 
Join Date: Nov 2003
Posts: 8
Limitation of collocation

Hi,

I read the ICE documentation and it seems that ICE doesn't actually support collocation :
- if two objects share the same Communicator, the "communication" bypasses the object adaptor, thus the client thread is used to execute the servant code... This also prevents the use of AMI and AMH ... It's a very restrictive or extreme collocation strategy
- if two objects use different Communicators, the communication behaves like the objects are hosted by different processes with the implied marshalling/demarshalling ... There is no collocation at all here.

Am I right ?
Do you intend to support a more usual collocation strategy that bypasses the marshalling/demarshalling process but still uses the object adaptor ?

Happy New Year to Zero C team !

Chauk-Mean.
Reply With Quote
  #2 (permalink)  
Old 12-27-2003
marc's Avatar
marc marc is offline
ZeroC Staff
 
Name: Marc Laukien
Organization: ZeroC, Inc.
Project: The Internet Communications Engine
 
Join Date: Feb 2003
Location: Florida
Posts: 1,780
Two communicators are a way to completely separate two programs that use Ice in one executable. I think it's only logical that in such case, there is no collocation optimization, as collocation optimization can have side effects (as described in the manual). If you do not wish to completely separate two Ice programs in one executable, just use only one communicator. This then allows you to use collocation optimization.

AMI and AMD rely on certain threading properties which are provided by our thread pools. E.g., if you send a request with AMI, then such request cannot be dispatched in the caller thread (as it's done with collocation optimization), but must be dispatched and the result be returned in a different thread (otherwise it wouldn't be asynchronous). The thread pool, however, is strongly coupled with the network layer for efficiency. It's a leader-follower model, with the leader always waiting in select(), and is therefore not suitable for dispatching collocation-optimized AMI callbacks. We could add a special thread pool just for such cases. However, this would increase complexity in Ice, as we would introduce a second collocation optimizaton mode, with different threading properties.
Reply With Quote
  #3 (permalink)  
Old 12-29-2003
chaukmean chaukmean is offline
Registered User
 
 
Join Date: Nov 2003
Posts: 8
Thanks for the reply.

I completely understand that you take care to keep the implementation of ICE as simple as possible. Nevertheless, efficiency and performance may be worth increasing the complexity of ICE code .
In the context of component based development, it is useful to deploy some components as a local assembly (collocation of connected components) in order to improve performance.
Having the full power of ICE (AMI, AMD) but without the collocation optimization doesn't seem to be a solution in this context.
Likewise having a collocation optimization but without the full power of ICE doesn't seem to be good solution either.

Anyway, I like ICE.

Chauk-Mean.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Collocation question on .NET mwilson Help Center 3 08-17-2005 04:56 PM
Collocation mwilson Help Center 1 07-28-2005 04:31 PM
Collocation Optimization with IcePack: a bug? zanza Bug Reports 1 07-01-2005 05:48 AM
Is it possible to disable Collocation Optimization? galbe Help Center 3 11-05-2003 11:29 AM


All times are GMT -4. The time now is 07:58 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0
(c) 2008 ZeroC, Inc.