QoS Polices for System Performance

Aspects of performance listed here:

Real-time Delivery

DEADLINE

Require the publisher to always send at least one value within the period.

RELIABILITY

Using a RELIABLE setting may result in resends of data. A RELIABLE setting can potentially block while trying to send. The max_blocking_time is important to minimize the time that the send can block for.

LIFESPAN

Setting an expiration time for the samples will ensure that the receiving application will not receive any values that are too old.

RESOURCE_LIMITS

Too few available samples and delays will occur acquiring samples to send.

PRESENTATION

Don't allow grouping and re-ordering of values that can delay delivery to the application.

TIME_BASED_FILTER

Setting a higher minimum_separation will result in less samples being set.

Bandwidth

None of the QoS policies are for directly controlling bandwidth. Several have some effect on bandwidth.

LIVELINESS

A low liveliness lease_duration will result in extra liveliness messages for publishers that are not publishing values frequently. (lower lease_duration raises bandwidth)

DEADLINE

Setting a lower deadline will result in more traffic. (lower deadline raises bandwidth)

RELIABILITY

Using a RELIABLE setting may result in resends of data. (RELIABLE possibly raises bandwidth)

Redundancy

OWNERSHIP

Setting to EXCLUSIVE allows multiple publishers to be publishing for the same Instance but only one will be recognized as the owner (authoritative source). A failure/death of the current owner allows the subscribers to continue receiving values from the new owner.

OWNERSHIP_STRENGTH

Establishes the order of ownership when OWNERSHIP is set to EXCLUSIVE

LIVELINESS

The lease_duration is important for determining that an entity has died. A lower value means that a death will be detected sooner.

DESTINATION_ORDER

BY_RECEPTION_TIMESTAMP can result in two subscribers having data in different orders. BY_SOURCE_ TIMESTAMP forces all subscribers to have the data in the same order.

HISTORY

The sets a buffer between the changing values and the delivery to the subscriptions. Set to KEEP_LAST and a small depth, could potentially cause blocking depending on other QoS policies.

Persistence

Persistence of data that has been published

DURABILITY

Controls how the data will be stored. Values of TRANSIENT and PERSISTENT result in data outliving the DataWriter.

DURABILITY_SERVICE

This policy configures how much data is stored after it is published. The RESOURCE_LIMITS policy defined how much data is stored in OpenDDS.

HISTORY

Controls the storing of values before they are delivered.

RESOURCE_LIMITS

Specifies that available number of samples that can be handled.

WRITER_DATA_LIFECYCLE

Whether samples will be automatically disposed.

READER_DATA_LIFECYCLE

Whether samples will be automatically removed.