Skip to content

issue with QoS using insight's built-in ishapes #48

@hansvanthag

Description

@hansvanthag

While testing (for the first time) the new 'built-in ishapes' feature of insight, I ran into a (small) bug:

I first created a writer/reader pair for 'squares' that worked just fine.

The only (minor) thing was that (having used the OSPL/cyclone ishapes-demo before), upon publishing, nothing was displayed (unlike our existing ishapes-demo's that show any published shape with an 'white' centre-dot and a subscribed shape with a 'black' center-dot .. maybe an idea but not a real problem

The issue I'm referring to manifested when I tried to create another/new square-reader but this time with a modified QoS i.e. a history of 10 samples.

That reader was not created an instead the log shows _"Error creating endpoint Square: [DDS_RETCODE_INCONSISTENT_POLICY] A policy with inconsistent values was used. Occurred upon initialisation of a cyclonedds.topic.Topic".

The suspicion is that the topic-creation is somehow tied to the publisher/subscribe creation which can cause these issues when you start manipulating the requested QoS that apparently is also used for (in this case multiple) creations of the same topic.

In a 'true data-centric world', there would be data-model designers that think about QoS (at least the ones with global impact) rather than each individual application-developer and that's why we introduced this notion of topic-level QoS policies that are 'inherited' when creating readers/writers for such a topic.
So a suggestion would be to have an option to define the topic-level QoS (including the DURABILITY_SERVICE QoS policies that will become relevant soon when we introduce a true durability-service for Cyclone) for each shape which then can be used/shown as the default QoS's when explicitly creating readers/writers for those topics and of course would allow to adjust/overrule QoS-policies such as (in this case) the history-depth QoS for a reader (similar to the current QoS-selection window that pops up once you opt to publish/subscribe to a shape).

Additionally noting (not sure its an issue) that 'history-depth' that's not part of the DURABILITY_SERVICE QoS i.e. that applies to a writer or reader is a pure local QoS-setting (also non-RxO) and should therefore be allowed to be adjusted separately for writers and readers, although most commonly its only exploited for the reading-side .. but that's another story...
For completeness, in cyclone, the DURABILITY_SERVICE history-QoS (kind and depth) is also used to 'dimension' the transient-local writer-side 'history' (so that its possible to have a different kind/depth for 'live-data' and 'historical-data', a usecase that you've encountered before I believe ;) .

Finally I haven't managed to select a >1 history-depth that was actually shown for a subscribed shape like a 'trail' (i.e. a reader with history-depth 10 shows the full history when periodically reading all arrived data i.e. the latest 10 samples, resulting in a 'trail' being shown. This is also the behavior of our ishape-demo apps. This comes in handy for non-volatile readers (transient-local/transient/persistent) that are late-joiners where it can be easily verified that all historical samples are delivered (assume they fit in the history). To show that for transient-local writers we also added the feature to 'suspend/resume' writing of shapes by clicking on the canvas. This wouldn't be needed for 'true' durable data i.e. transient/persistent as for testing that you could actually remove the writer before adding a late-joining reader that would depend on a 'durability-service' still running somewhere in your system.

Hope this makes sense, thanks for all the good work !!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions