-
Notifications
You must be signed in to change notification settings - Fork 422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement missing QoS when using intraprocess communication #752
Comments
Hi, resurrecting a very old ticket here, is there any blocker preventing this to be implemented? |
Nothing prevents it from being worked on, but I think we'll need to introduce some new QoS elements as @ivanpauno's post mentions. |
Any movement on this? The lack of TRANSIENT_LOCAL effectively prevents latching on components which is a major limitation. |
It needs someone to pick it up and implement it. While I agree that this would be a good feature to have, I'm not sure that it is a major limitation when using intra-process comms. The main reason to use latching is to keep extraneous data off of the wire and not to spend time doing unnecessary publishes when nothing has changed. But since intra-process comms is so efficient, and doesn't send anything over the wire, just repeatedly publishing should accomplish more or less the same thing. |
@clalancette You say the main purpose of latching is to prevent extraneous data on the wire, but the use case I have always seen is focused on supporting late joining nodes without impacting already running nodes. If I was to continuously send the same old message it might not incur much over the wire cost but it would mean all receiving nodes would need custom logic to reject the old message otherwise they would incur the cost of reprocessing the data. |
I agree on the importance of transient local for the reasons mentioned by @msmcconnell. Keep All is a different story and it's not clear what should be the expected behavior there, but I'm not sure if it's really useful. |
Yes, I agree that we should have the feature, and it will be more optimal. I just don't see it as entirely blocking any particular use case. |
* Add nullptr tests get_param_files * Add bad alloc tests * Add missing tests * Add bad alloc tests rcl_arguments_copy * Remove repeated test * Remove spaces * Restore erased test * Relocate test * Refactor bomb allocator test * Add missing rcl_reset_error() checks Signed-off-by: Jorge Perez <[email protected]>
This was partially completed with #2303. I think we are still missing support for KEEP_ALL, as well as depth in the intra-process manager, so I'll leave this open. |
Feature request
Feature description
Implement KEEP_ALL history policy with intraprocess communication (see #727).
Implement non-volatile durability with intraprocess communication.
Implementation considerations
For sizing the buffers when KEEP_ALL history policy is used, resource limits qos policy will be needed (ros2/rmw#176).
For implementing TRANSIENT_LOCAL durability:
publisher_id
as keys and storing a shared_ptr to the message sounds reasonable.last_message
map (mentioned above).The text was updated successfully, but these errors were encountered: