RTI Connext DDS Micro C++ API  Version 3.0.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups
Configuring Resource Limits

Modules

 DomainParticipantFactoryQos
 DomainParticipantQos
 DataReaderQos
 DataWriterQos
 OSAPI
 UDP Transport
 Dynamic Participant Static Endpoint (DPSE)
 Dynamic Participant Dynamic Endpoint (DPDE)

Detailed Description

Introduction

RTI Connext DDS Micro Secure is designed for use in real-time systems and uses a predictable and deterministic memory manager to ensure that memory growth is not unbounded, OS memory fragmentation is eliminated and memory usage can be determined a-priori. The advantage with this design is that proper operation is ensured as soon as steady state has been reached. However, it also places an additional burden on the system designer to properly configure each resource-limit. The purpose of this document is to describe all resource-limits in RTI Connext DDS Micro Secure, what the behavioral impact is, and what the impact on memory usage is.

Dynamic Memory Allocation

RTI Connext DDS Micro Secure allocates heap memory to create internal data-structures. It is important to know that RTI Connext DDS Micro Secure manages memory allocated from the system heap using its own internal memory management, and only returns memory allocated from the system back to the system when something is deleted. That is, if an application never deletes anything, no memory is returned to the system.

As a rule of thumb, in RTI Connext DDS Micro Secure only APIs that end in _create() or _new() allocate heap memory and APIs that end in _delete() or _free() frees memory. An exception to this rule is dynamic discovery which allocates memory at run-time for the topic and type names.

RTI Connext DDS Micro Secure does not support dynamically allocating resources beyond the initial configuration. That is, all resource limits must be finite. This restriction may be removed in a future version.

Memory Model

All resource-limits in RTI Connext DDS Micro Secure is specified in a Qos policy or property. The figure below illustrates where the various resource-limits are applied, and the following sections describe each user adjustable resource-limit in more detail. All numbers in blue corresponds to a resource-limit.

MicroMemoryMap.png
The memory used by each resource-limit and where they apply

RTI Connext DDS Micro C++ API Version 3.0.0 Copyright © Fri Mar 22 2019 Real-Time Innovations, Inc