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/22 00:43] char |
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 DDS Quality of Service ]] | + | [[dido:public:ra:xapend:xapend.f_qos:start| Return to DDS Quality of Service ]] |
| - | The ''READER_DATA_LIFECYCLE'' policy controls the behavior of the DataReader with regards to the lifecycle of the data-[[dido:public:ra:xapend:xapend.a_glossary:i:instance|instances]] it manages, that is, the data-instances that have been received and for which the DataReader maintains some internal resources. | + | 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 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'' 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. | 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''. | 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. | 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. | ||
| Line 16: | Line 24: | ||
| 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. | 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: <wrap hi><color blue>To Be Updated</color></wrap> | + | Source: [[https://www.omg.org/spec/DDS/1.4/PDF | DDS 1.4 Spec]] |
| - | <color darkred><todo @Char> Add source</todo></color> | + | /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- |
| + | /* To add a discussion page to this page, comment out the line that says | ||
| + | ~~DISCUSSION:off~~ | ||
| + | */ | ||
| + | ~~DISCUSSION:on|Outstanding Issues~~ | ||
| + | ~~DISCUSSION:off~~ | ||