|
|
|
|||||
|
Minor IceStorm enhancements
Hi ZeroC,
1. Are there any design or performance issues for IceStorm supporting only one level of topic linking? I can't see any and would like to be able to use n-level linking to support geographical IceStorm "distributors" without the need to unmarshall/remarshall the event in some propagating stub code. From a (quick) review of LinkSubscriber.cpp I would change line 83 from : Code:
if(event->forwarded || (_cost > 0 && event->cost > _cost)) Code:
if(_cost > 0 && event->cost > _cost) 2. Do you think a pool of publisher threads would perform any faster than a serial loop iteration when dealing with slow subscribers. ie, assign n threads to dispatch on every (iterator+n) subscribers. The case I'm thinking of is serving to a public internet audience, 10-20% of whom may still be on 56K distributed anywhere on the globe, downloading MP3s at the same time. In the case of large or high-volume messages, wouldn't these subscribers penalise the rest if the publish is done in serial?.. I'm no networking expert, so the real cost may be negligible... TopicI.cpp line 228 Code:
for(SubscriberList::iterator p = copy.begin(); p != copy.end(); ++p)
{
(*p)->publish(event);
}
Thanks.
__________________
Researching ICE Independent Developer No project yet |
|
|||||
|
Thanks Matthew
![]() Quote:
Quote:
(a) IceStorm publish ---> (b) Session subscribe --> (c) Client invoke I'd want to do some genuine before/after throughput tests to be sure that the average case on the client side had improved, but if (a) and (b) were co-located then the added latency cost might be trivial but you'd achieve basic parallelism... Quote:
__________________
Researching ICE Independent Developer No project yet |
|
||||||
|
If the link level is more than 1 then it becomes more complex to manage internally the events. That's the key difference.
Quote:
![]() You then push from the IceStorm server to the session server, and then send this to the client. This ensures that all internal communications are fast, and mis-behaving clients to not cause the IceStorm service to hang-up. I think this will scale much better, and will be much more fault tolerant and performant than doing all of this inside the IceStorm service itself. You have to be careful not to block the thread that consumes the events that arrives in the session from IceStorm -- since that will then eventually block up other sessions also. |
|
|||||
|
Cheers Matthew
![]() I'll be using Session objects in any case and it sounds like there's a good argument for using them as IceStorm consumers/distributors as well. Joe
__________________
Researching ICE Independent Developer No project yet |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Minor typos in Ice 3.0.1 manual | bartley | Comments | 0 | 02-14-2006 03:46 PM |
| A (very) minor gift as a thank you! | SteveWampler | Patches | 2 | 01-21-2004 09:52 AM |
| Minor problem with Ice 1.2.0 on Win 2000 | weida | Bug Reports | 1 | 10-29-2003 11:00 AM |
| Minor i386 fixes | rodrigc | Patches | 3 | 03-07-2003 04:50 PM |
| Minor Documentation Corrections | Ken Carpenter | Comments | 3 | 03-03-2003 10:12 PM |