Skip to content
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

Currently used middleware can't loan messages. Local allocator will be used. #94

Closed
ceccocats opened this issue Oct 24, 2022 · 2 comments
Labels
help wanted Extra attention is needed

Comments

@ceccocats
Copy link

ceccocats commented Oct 24, 2022

Is ros2 loaned message interface supported?

I have nodes that sends static messages with zero-copy using the loaned inteface like this:
https://github.com/ros2/demos/blob/rolling/demo_nodes_cpp/src/topics/talker_loaned_message.cpp

Is it possible to use it with RTI Connext DDS obtaining the performace expected by a zero copy DDS?

Thanks,
Francesco

@ZhenshengLee
Copy link

@ceccocats there is a description in the official blog of RTI about zero copy of connextdds in ros2

Incidentally, Connext DDS also supports a Zero Copy mode that can get the increased performance when sending large data inside a Process or over shared memory. Moreover, the Zero Copy approach used by Connext does not "bypass" the serialization and protocol and therefore does not cause the undesirable “coupling” side-effects. However, the Connext Zero Copy utilizes a specialized API that cannot be mapped to the ROS RMW API. You can explore the benefits of the Zero Copy feature as well as more extensive performance scenarios using rtiperftest (the RTI performance benchmarking tool), and the results of a previous RTI blog.

the source is in https://www.rti.com/blog/latest-connext-dds-ros-2-performance-benchmarks

thanks.

@clalancette clalancette added the help wanted Extra attention is needed label Jan 19, 2023
@asorbini
Copy link
Collaborator

rmw_connextdds does not currently support the "loan message" API exposed by ROS 2.

As already pointed out, RTI Connext DDS does support distribution of data using zero-copy semantics but only when the native DDS API is used.

You can find more information about this feature in the Connext user manual.

Note that in order to use zero copy, you will need to create "native" DDS endpoints (i.e. DataReaders and DataWriters), and define your message in a format that can be processed by RTI's code generator, rtiddsgen (e.g. IDL, or XML).

I'm closing this issue but I opened #98 to track requests for this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants