What is the best performing storage/serialization format for sequential writing/reading for ros2 bag?
I am using sqlite3
storage format and cdr
serialization format in ROS2. In my testing, I have observed that the serialization/deserialization performance of sequentially writing/reading messages for ROS2 bag files is significantly slower than ROS1.
Is there anything faster than sqlite3
and cdr
that is currently available that would achieve the performance at par with ROS1?
Documentation here appears to suggest as if rosbag2_v2
is an alternative to sqlite3
, but when I try the rosbag2_v2
value it does not work for me. Am I reading the documentation below correctly?
ros2 bag <record> | <play> | <info> -s <sqlite3> | <rosbag2_v2> | <custom_plugin>
Asked by ajayvohra2005 on 2022-01-04 20:18:32 UTC
Answers
In my research, I have found sqlite3
(storage) and cdr
(converter) as the only available open source ROS2 bag plugins.
Asked by ajayvohra2005 on 2022-01-22 11:58:01 UTC
Comments
Other than sqlite3
, the tooling team proposed leveldb
.
Please see thread: https://discourse.ros.org/t/tooling-proposal-rosbag2-leveldb-plugin/17072/8
However based on most recent discussion, there is overall concerns with rosbag2
https://discourse.ros.org/t/fast-forward-merging-rosbag2-master-api-to-foxy/18927/15
There is also a report from RobotecAI that reviews performance: https://github.com/ros2/rosbag2/blob/8145c857ed48d683be864fc55613ea2025cd92bb/rosbag2_performance/rosbag2_performance_benchmarking/docs/rosbag2_performance_improvements.pdf
I suggest to read both threads, very interesting discussion and report.
Asked by osilva on 2022-01-22 16:26:04 UTC
Comments