23. Sending Large Data

This section describes the capabilities offered by Connext DDS—specifically, RTI FlatData™ language binding and Zero Copy transfer over shared memory—that allow sending and receiving large data samples with minimum latency. In this section, “large data” means samples with a large serialized size, usually on the order of MBs, such as video frame samples.

Note: If you implement FlatData language binding or Zero Copy transfer over shared memory with data smaller than this, you may not see significant difference in latency or even pay a penalty in latency.

The definition of “large data” in this chapter contrasts with other definitions of large data in this manual:

The primary consideration when sending large samples is latency. When using Connext DDS, and in general any connectivity framework, sample latency has three components: middleware, copy, and transport (see Figure 23.1: Basic Components of Latency).

Figure 23.1: Basic Components of Latency

When Connext DDS is used to send small data samples, such as temperature readings, the weight of the copy component in the total sample latency is small. But when samples are large, the weight of the copy component becomes considerable. (See Figure 23.2: Copy Components Compared.)

Figure 23.2: Copy Components Compared

Therefore, reducing the number of copies made by the middleware or network infrastructure when publishing and receiving large samples becomes critical. Two features allow reducing the number of sample copies and consequently the transmission latency: Zero Copy transfer over shared memory and FlatData language binding. These two features can be used individually or in combination.

© 2020 RTI