34.18 Turbo Mode and Automatic Throttling for DataWriter Performance—Experimental Features

This section describes two experimental features. The DataWriter has many QoS settings that can affect the latency and throughput of outgoing data. There are QoS settings to control send window size (see 35.4.2.1 Understanding the Send Queue and Setting its Size) and settings that allow to aggregate multiple DDS samples together to reduce CPU and bandwidth utilization (see 59.2 BATCH QosPolicy (DDS Extension) and 37.3 FlowControllers (DDS Extension)). The choice of settings that provide the best performance depends on several factors, such as the frequency of writing data, the size of the data, or the condition of the network. If these factors do not change over time, you can choose values for those QoS settings that best suit your system. If these factors do change over time in your system, you can use the following properties to let Connext automatically adjust the QoS settings as system conditions change:

  • dds.domain_participant.auto_throttle.enable: Configures the DomainParticipant to gather internal measurements (during DomainParticipant creation) that are required for the Auto Throttle feature. This allows DataWriters belonging to this DomainParticipant to use the Auto Throttle feature. Default: false.
  • dds.data_writer.auto_throttle.enable: Enables automatic throttling in the DataWriter so it can automatically adjust the writing rate and the send window size; this minimizes the need for repair DDS samples and improves latency. Default: false. For additional information on automatic throttling, see 59.2.4 Turbo Mode: Automatically Adjusting the Number of Bytes in a Batch—Experimental Feature.
  • Note: This property takes effect only in DataWriters that belong to a DomainParticipant that has set the property dds.domain_participant.auto_throttle.enable (described above) to true.

  • dds.data_writer.enable_turbo_mode: Enables Turbo Mode and adjusts the batch max_data_bytes (see 59.2 BATCH QosPolicy (DDS Extension)) based on how frequently the DataWriter writes data. Default: false. For additional information, see 59.2.4 Turbo Mode: Automatically Adjusting the Number of Bytes in a Batch—Experimental Feature.

The Built-in QoS profile BuiltinQosLibExp::Generic.AutoTuning enables both Turbo Mode and Auto Throttling.