Setting OwnershipStrength QoS per instance at run time

4 posts / 0 new
Last post
Offline
Last seen: 10 years 1 week ago
Joined: 04/08/2013
Posts: 6
Setting OwnershipStrength QoS per instance at run time

 

Hi there,

Assume that I have a topic with 4 instances. Firstly, the first publisher is the owner of all these 4 instances. Then a new publisher comes, this publisher should be the owner of 2 instances of these 4 instances.

If a subscriber connects , It should get 2 instances from the first publisher and the other 2 instances from the second publisher.


Thanks in advance,

Anas

 

rip
rip's picture
Offline
Last seen: 20 hours 26 min ago
Joined: 04/06/2012
Posts: 324

Hi,

The first publisher PublisherOne has an Ownership strength of 15, and publishes InstanceOne, InstanceTwo, InstanceThree and InstanceFour (defined by their keys).  PublisherOne owns these topics.

PublisherTwo starts up with a strength of 20, and publishes InstanceOne and InstanceThree.  PublisherTwo owns InstanceOne and InstanceThree, the other two instances are still owned by PublisherOne, because Ownership is at the Instance level, not the Topic level (assuming that the Topic uses a Keyed type).

That's what you want, correct?

The OWNERSHIP_STRENGTH QosPolicy is used to rank DataWriters of the same instance of a Topic, so that Connext can decide which DataWriter will have ownership of the instance when the OWNERSHIP QosPolicy (Section 6.5.15) is set to EXCLUSIVE.

This is part of the Standard.

Regards,

Rip

Offline
Last seen: 10 years 1 week ago
Joined: 04/08/2013
Posts: 6

Thanks Rip,

But about the duplicated instances??
 Are they discarded at the subscriber side??.

So , If I have three publisher with the same instance, three instances will be send through the network, then two of them will be discarded at the subscribing side. Is this correct??

rip
rip's picture
Offline
Last seen: 20 hours 26 min ago
Joined: 04/06/2012
Posts: 324

Yes. 

Because Writers are disconnected from other Writers, there is no communication between then.  A Writer knows its own Strength, and that is all that it knows.  The only entity that knows all the Writers' Strengths is the subscribing DataReader, so it is the DataReader that has to filter out the lower strength instances. 

Ownership exclusive is redundancy.  It's a trade off between the redundant writers, and the network bandwidth.  Which is more important?