Skip to content

Commit

Permalink
Merge pull request #39 from eProsima/release/1.8.1
Browse files Browse the repository at this point in the history
Release 1.8.1 [5759]
  • Loading branch information
raquelalvarezbanos committed Jun 28, 2019
2 parents e98b662 + 4047573 commit a833616
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 89 deletions.
9 changes: 9 additions & 0 deletions code/CodeTester.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,15 @@ publisher_attr.qos.m_disablePositiveACKs.duration = 1;
subscriber_attr.qos.m_disablePositiveACKs.enabled = true;
//!--

//PUBSUB_API_CONF_PUBSUB_LIVELINESS
publisher_attr.qos.m_liveliness.announcement_period = 0.5;
publisher_attr.qos.m_liveliness.lease_duration = 1;
publisher_attr.qos.m_liveliness.kind = AUTOMATIC_LIVELINESS_QOS;

subscriber_attr.qos.m_liveliness.lease_duration = 1;
subscriber_attr.qos.m_liveliness.kind = AUTOMATIC_LIVELINESS_QOS;
//!--

//PUBSUB_API_CONF_PUBSUB_RESOURCE_LIMITS
publisher_attr.topic.resourceLimitsQos.max_samples = 200;

Expand Down
35 changes: 34 additions & 1 deletion code/XMLTester.xml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,34 @@
</subscriber>
<!--><-->

<!-->PUBSUB_API_CONF_PUBSUB_LIVELINESS<-->
<publisher profile_name="publisher_xml_conf_liveliness_profile">
<qos>
<liveliness>
<announcement_period>
<sec>0</sec>
<nanosec>1000000</nanosec>
</announcement_period>
<lease_duration>
<sec>1</sec>
</lease_duration>
<kind>AUTOMATIC</kind>
</liveliness>
</qos>
</publisher>

<subscriber profile_name="subscriber_xml_conf_liveliness_profile">
<qos>
<liveliness>
<lease_duration>
<sec>1</sec>
</lease_duration>
<kind>AUTOMATIC</kind>
</liveliness>
</qos>
</subscriber>
<!--><-->

<!-->PUBSUB_API_CONF_PUBSUB_RESOURCE_LIMITS<-->
<publisher profile_name="publisher_xml_conf_resource_limits_profile">
<topic>
Expand Down Expand Up @@ -1153,8 +1181,13 @@
</durability>

<liveliness>
<!-- LIVELINESS -->
<kind>AUTOMATIC</kind> <!-- string -->
<lease_duration>
<sec>1</sec>
</lease_duration>
<announcement_period>
<sec>1</sec>
</announcement_period>
</liveliness>

<reliability>
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@
# built documents.
#
# The short X.Y version.
version = u'1.8.0'
version = u'1.8.1'
# The full version, including alpha/beta/rc tags.
release = u'1.8.0'
release = u'1.8.1'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
6 changes: 3 additions & 3 deletions docs/fullxmloptions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -287,10 +287,10 @@
</latencyBudget>
<liveliness>
<kind>AUTOMATIC</kind> <!-- string AUTOMATIC | MANUAL_BY_PARTICIPANT | MANUAL_BY_TOPIC -->
<leaseDuration>
<lease_duration>
<sec>500</sec> <!-- int32 -->
<nanosec>0</nanosec> <!-- uint32 -->
</leaseDuration>
</lease_duration>
<announcement_period>
<sec>DURATION_INFINITY</sec>
</announcement_period>
Expand Down Expand Up @@ -496,4 +496,4 @@

<entityID>66</entityID> <!-- Int16 -->
</subscriber>
</profiles>
</profiles>
28 changes: 24 additions & 4 deletions docs/notes.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,31 @@
Version 1.8.0
Version 1.8.1
=============

This release includes the following features:

* Implementation of :ref:`liveliness-qos` QoS

It also adds the following bug fixes and improvements:

* Fix for get_change on history, which was causing issues during discovery
* Fix for announcement of participant state, which was sending ParticipantBuiltinData twice
* Fix for closing multicast UDP channel
* Fix for race conditions in SubscriberHistory, UDPTransportInterface and StatefulReader
* Fix for lroundl error on Windows in Time_t
* CDR & IDL submodules update
* Use of java 1.8 or greater for fastrtpsgen.jar generation

**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
from IDL files using *fastrtpsgen*

Previous versions
-----------------

Version 1.8.0
^^^^^^^^^^^^^

This release included the following features:

* Implementation of IDL 4.2
* Implementation of :ref:`deadline-qos` QoS
* Implementation of :ref:`lifespan-qos` QoS
Expand Down Expand Up @@ -33,9 +56,6 @@ It also adds the following improvements and bug fixes:
**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
from IDL files using *fastrtpsgen*

Previous versions
-----------------

Version 1.7.2
^^^^^^^^^^^^^

Expand Down
66 changes: 64 additions & 2 deletions docs/pubsub.rst
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,66 @@ When the lifespan period expires, data is removed from the history.
| :end-before: <!--><--> |
+---------------------------------------------------------+

.. _liveliness-qos:

Liveliness
**********

Liveliness is a quality of service that can be used to ensure that particular entities on the network are "alive".
There are different settings that allow distinguishing between applications where data is updated periodically and
applications where data is changed sporadically. It also allows customizing the application regarding the kind of
failures that should be detected by the liveliness mechanism.

The AUTOMATIC liveliness kind is suitable for applications that only need to detect whether a remote application
is still running. Therefore, as long as the local process where the participant is running and the link connecting
it to remote participants exists, the entities within the remote participant will be considered alive.

The two manual settings require that liveliness is asserted periodically on the publishing side to consider that remote
entities are alive. Liveliness can be asserted explicitly by calling the *assert_liveliness* operations on the
publisher, or implicitly by writing data. The MANUAL_BY_PARTICIPANT setting only requires that one entity in the
publishing side asserts liveliness to deduce that all other entities within that participant are also alive. The
MANUAL_BY_TOPIC mode is more restrictive and requires that at least one instance within the publisher is asserted to
consider that the publisher is alive.

Besides the liveliness kind, two additional parameters allow defining the application behavior. They are all listed
in the table below.

+---------------------------+----------------------------------+---------------------------+-------------------------+
| Name | Description | Values | Default |
+===========================+==================================+===========================+=========================+
| ``<kind>`` | Specifies how | :class:`AUTOMATIC`, | :class:`AUTOMATIC` |
| | to manage liveliness. | :class:`MANUAL_BY_TOPIC`, | |
| | | :class:`MANUAL_BY_TOPIC` | |
+---------------------------+----------------------------------+---------------------------+-------------------------+
| ``<lease_duration>`` | Amount of time to wait since the | :ref:`DurationType` | :class:`c_TimeInfinite` |
| | last message from a writer to | | |
| | consider that it is no longer | | |
| | alive. | | |
+---------------------------+----------------------------------+---------------------------+-------------------------+
| ``<announcement_period>`` | Amount of time between | :ref:`DurationType` | :class:`c_TimeInfinite` |
| | consecutive liveliness messages | | |
| | sent by the publisher. Only used | | |
| | for AUTOMATIC and | | |
| | MANUAL_BY_PARTICIPANT liveliness | | |
| | kinds. | | |
+---------------------------+----------------------------------+---------------------------+-------------------------+

+--------------------------------------------------------------+
| **C++** |
+--------------------------------------------------------------+
| .. literalinclude:: ../code/CodeTester.cpp |
| :language: c++ |
| :start-after: //PUBSUB_API_CONF_PUBSUB_LIVELINESS |
| :end-before: //!-- |
+--------------------------------------------------------------+
| **XML** |
+--------------------------------------------------------------+
| .. literalinclude:: ../code/XMLTester.xml |
| :language: xml |
| :start-after: <!-->PUBSUB_API_CONF_PUBSUB_LIVELINESS |
| :end-before: <!--><--> |
+--------------------------------------------------------------+

.. _resourceLimits-qos:

Resource limits
Expand Down Expand Up @@ -534,5 +594,7 @@ the possible callbacks that can be implemented in both cases:
+---------------------------------+-----------+------------+
| `on_requested_deadline_missed` | N | Y |
+---------------------------------+-----------+------------+


| `on_liveliness_lost` | Y | N |
+---------------------------------+-----------+------------+
| `on_liveliness_changed` | N | Y |
+---------------------------------+-----------+------------+

0 comments on commit a833616

Please sign in to comment.