5.7. Performance and Scalability

5.7.1. [Critical] High CPU usage and delayed events in a DataReader managing many instances of a deleted DataWriter

When a DataWriter is deleted, all matching DataReaders must update all instances the deleted DataWriter was writing to indicate there was one less writer for that instance. The search through the instance list in the DataReader was not optimized to find the instances for a single DataWriter, so the deletion of a DataWriter could take a long time if the number of instances in the DataReader queue was large (10s or 100s of thousands). This processing could have delayed other important middleware events from running, like liveliness assertions and data processing.

Now, the DataReader keeps track of the instances that a DataWriter is writing so that it does not search through its entire list of instances. This change resolves the issue when the deleted DataWriter is writing a small subset of those instances. If the number of instances that a single DataWriter is writing is still large, the problem described will still exist.

[RTI Issue ID CORE-14906]

5.7.2. [Critical] Slower DDS Entity creation in large applications *

Enabling Monitoring Library 2.0 significantly slowed down the creation of new DDS Entities in large applications with thousands of existing entities.

This issue was caused by a performance bottleneck when evaluating the <resource_selection> expression within the <telemetry_data> section of the Monitoring Library 2.0 configuration.

This release partially addresses this issue by optimizing the evaluation of simple expressions such as //* and //<resource_class>/*. For example, using the resource selector //data_writers/* no longer results in a performance impact.

Future releases will include further improvements to fully resolve this problem.

[RTI Issue ID MONITOR-721]

5.7.3. [Critical] Performance degradation with durable writer history *

In release 7.0.0, a significant performance degradation was introduced in DataWriter operations when the DataWriter was configured to use durable writer history.

This issue was caused by missing database indexes that should have been created to optimize performance. Without these indexes, certain database operations became substantially slower, affecting overall DataWriter throughput.

[RTI Issue ID CORE-16122]



* This bug did not affect you if you are upgrading from 6.1.x or earlier.