This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dido:public:ra:xapend:xapend.f_qos:reader_data_lifecycle [2021/06/08 15:12] char ↷ Page moved from dido:public:ra:xapend.qos:reader_data_lifecycle to dido:public:ra:xapend:xapend.f_qos:reader_data_lifecycle |
dido:public:ra:xapend:xapend.f_qos:reader_data_lifecycle [2021/10/04 13:40] (current) 50.19.247.197 ↷ Links adapted because of a move operation |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== F.22 Reader Data Lifecycle ====== | ====== F.22 Reader Data Lifecycle ====== | ||
| - | [[dido:public:ra:xapend:xapend.f_qos| Return to Quality of Service ]] | + | [[dido:public:ra:xapend:xapend.f_qos:start| Return to DDS Quality of Service ]] |
| + | |||
| + | The ''READER_DATA_LIFECYCLE'' [[dido:public:ra:xapend:xapend.a_glossary:p:policy|policy]] controls the behavior of the DataReader with regards to the lifecycle of the data-instances it manages, that is, the data-[[dido:public:ra:xapend:xapend.a_glossary:i:instance|instances]] that have been received and for which the DataReader maintains some internal resources. | ||
| + | |||
| + | The ''DataReader'' internally maintains the [[dido:public:ra:xapend:xapend.a_glossary:s:sample|samples]] that have not been taken by the [[dido:public:ra:xapend:xapend.a_glossary:a:application|application]], subject to the constraints imposed by other [[dido:public:ra:xapend:xapend.a_glossary:q:qos|QoS]] policies such as ''[[dido:public:ra:xapend:xapend.a_glossary:h:history_qos|HISTORY]]'' and ''RESOURCE_LIMIT''. | ||
| + | |||
| + | The ''DataReader'' also maintains information regarding the identity, ''view_state'' and ''instance_state'' of data-instances even after all samples have been ‘taken.’ This is needed to properly compute the states when future samples arrive. | ||
| + | |||
| + | Under normal circumstances the ''DataReader'' can only reclaim all resources for instances for which there are no writers and for which all samples have been ‘taken.’ The last sample the ''DataReader'' will have taken for that instance will have an instance_state of either ''NOT_ALIVE_NO_WRITERS'' or ''NOT_ALIVE_DISPOSED'' depending on whether the last writer that had ownership of the instance disposed it or not. The following figure provides a state chart describing the transitions possible for the ''instance_state''. | ||
| + | |||
| + | <figure> | ||
| + | {{ :dido:public:ra:xapend:xapend.f_qos:statechart_of_the_instance_state_and_view_state_for_a_single_instance..png?500 }} | ||
| + | <caption> | ||
| + | Statechart of the instance_state and view_state for a single instance. | ||
| + | </caption> | ||
| + | </figure> | ||
| + | |||
| + | |||
| + | In the absence of the ''READER_DATA_LIFECYCLE'' QoS this behavior could cause problems if the application “forgets” to ‘take’ those samples. The ‘untaken’ samples will prevent the ''DataReader'' from reclaiming the resources and they would remain in the ''DataReader'' indefinitely. | ||
| + | |||
| + | The ''autopurge_nowriter_samples_delay'' defines the maximum duration for which the DataReader will maintain information regarding an instance once its instance_state becomes NOT_ALIVE_NO_WRITERS. After this time elapses, the DataReader will purge all internal information regarding the instance, any untaken samples will also be lost. | ||
| + | |||
| + | The ''autopurge_disposed_samples_delay'' defines the maximum duration for which the DataReader will maintain samples for an instance once its instance_state becomes NOT_ALIVE_DISPOSED. After this time elapses, the DataReader will purge all samples for the instance. | ||
| + | |||
| + | 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~~ | ||