====== F.9 Ownership ====== [[dido:public:ra:xapend:xapend.f_qos:start| Return to DDS Quality of Service ]] The [[dido:public:ra:xapend:xapend.a_glossary:o:ownership_qos|OWNERSHIP]] [[dido:public:ra:xapend:xapend.a_glossary:p:policy|policy]] controls whether the Service allows multiple ''DataWriter'' objects to update the same [[dido:public:ra:xapend:xapend.a_glossary:i:instance|instance]] (identified by ''Topic'' + [[dido:public:ra:xapend:xapend.a_glossary:k:key|key]]) of a [[dido:public:ra:xapend:xapend.a_glossary:d:data_object|data-object]]. There are two ''kind''s of OWNERSHIP selected by the setting of the ''kind'': SHARED and EXCLUSIVE. ===== SHARED ''kind'' ===== This setting indicates that the Service does not enforce unique ownership for each [[dido:public:ra:xapend:xapend.a_glossary:i:instance|instance]]. In this case, multiple writers can update the same data-object instance. The [[dido:public:ra:xapend:xapend.a_glossary:s:subscriber|subscriber]] to the ''[[dido:public:ra:xapend:xapend.a_glossary:t:topic|Topic]]'' will be able to access modifications from all ''DataWriter'' objects, subject to the settings of other [[dido:public:ra:xapend:xapend.a_glossary:q:qos|QoS]] that may filter particular samples (e.g., the TIME_BASED_FILTER or [[dido:public:ra:xapend:xapend.a_glossary:h:history_qos|HISTORY QoS]] policy). In any case there is no “filtering” of modifications made based on the identity of the ''DataWriter'' that causes the modification. ===== EXCLUSIVE ''kind'' ===== This setting indicates that each instance of a data-object can only be modified by one ''DataWriter''. In other words, at any point in time a single ''DataWriter'' “owns” each instance and is the only one whose modifications will be visible to the ''DataReader'' objects. The owner is determined by selecting the ''DataWriter'' with the highest value of the ''[[dido:public:ra:xapend:xapend.a_glossary:o:ownership_strength|strength]]'' 26 that is both “alive” as defined by the [[dido:public:ra:xapend:xapend.f_qos:11_liveliness|LIVELINESS QoS]] policy and has not violated its [[dido:public:ra:xapend:xapend.a_glossary:d:deadline_qos|DEADLINE]] contract with regards to the data-instance. Ownership can therefore change as a result of (a) a ''DataWriter'' in the system with a higher value of the ''strength'' that modifies the instance, (b) a change in the ''strength'' value of the ''DataWriter'' that owns the instance, (c) a change in the liveliness of the ''DataWriter'' that owns the instance, and (d) a deadline with regards to the instance that is missed by the ''DataWriter'' that owns the instance. The behavior of the system is as if the determination was made independently by each ''DataReader''. Each ''DataReader'' may detect the change of ownership at a different time. It is not a [[dido:public:ra:xapend:xapend.a_glossary:r:requirement|requirement]] that at a particular point in time all the ''DataReader'' objects for that ''Topic'' have a consistent picture of who owns each instance. It is also not a requirement that the ''DataWriter'' objects are aware of whether they own a particular instance. There is no error or notification given to a ''DataWriter'' that modifies an instance it does not currently own. The requirements are chosen to (a) preserve the decoupling of publishers and subscriber, and (b) allow the policy to be implemented efficiently. It is possible that multiple ''DataWriter'' objects with the same ''strength'' modify the same instance. If this occurs the Service will pick one of the ''DataWriter'' objects as the “owner.” It is not specified how the owner is selected. However, it is required that the policy used to select the owner is such that all ''DataReader'' objects will make the same choice of the particular ''DataWriter'' that is the owner. It is also required that the owner remains the same until there is a change in ''strength'', liveliness, the owner misses a deadline on the instance, a new ''DataWriter'' with higher ''strength'' modifies the instance, or another ''DataWriter'' with the same ''strength'' that is deemed by the Service to be the new owner modifies the instance. Exclusive ownership is on an instance-by-instance basis. That is, a subscriber can receive values written by a lower ''strength'' ''DataWriter'' as long as they affect instances whose values have not been set by the higher-''strength'' ''DataWriter''. The value of the OWNERSHIP ''kind'' offered must exactly match the one requested or else they are considered incompatible. Source: [[https://www.omg.org/spec/DDS/1.4/PDF | DDS 1.4 Spec]] /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~