Archived

This forum has been archived. Please start a new discussion on GitHub.

IceStorm and multicast

I've been looking into using IceStorm with multicast datagrams.

I started by running the C++ demos for multicast and can see that multicast endpoints work well. Next I looked into IceStorm using multicast endpoints. From a packet trace it appears as though for two subscribers each residing in different object adapters and both subscribers in the same multicast group (as defined using the object adapter endpoints) the publisher still publishes two identical messages - each destined for a single subscriber thus multiplying the number of messages being multicast.

If this is not a bug then is there anyway with 3.3.0 to have IceStorm work with a single datagram multicast to 'n' subscribers?

Comments

  • dwayne
    dwayne St. John's, Newfoundland
    IceStorm can work with subscribers using multicast, but each multicast subscriber has to use the same id when subscribing to the IceStorm topic. Otherwise each subscription would cause another message to be sent, one for each unique id subscribed. For example using the clock demo you can start two subscribers using the following command line
        subscriber --datagram --id multicast
    

    after changing the endpoints in config.subscriber to be:
        Clock.Subscriber.Endpoints=tcp:udp -h 239.255.1.1 -p 10000
    

    You would also have to be careful to not unsubscribe from the topic when a subscriber terminates as this would stop the message flow as from IceStorms point of view there is only ever one subscriber and if it unsubscribes then there is no need to forward any more messages.

    Having said that, if you are using multicast why do you need to use IceStorm at all? Wouldn't it be simpler to just have your client/publisher configured to use the multicast endpoints directly rather than having IceStorm in the middle?
  • dwayne,

    Thanks for your reply.

    I can see how all subscribers specifying the same id would work. I also understand your point regarding why wouldn't one just use a regular client/publisher and server/subscriber with multicast endpoints. Maybe you or anyone else with experience in using Ice(Storm) might be able to help me here with a quick comparison/contrast of Ice+multicast vs. IceStorm?

    One feature I was investigating from IceStrom was topic federation which I would have to implement myself if using Ice+multicast.