You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
switches the default storage plugin from `sqlite3` to `mcap`.
## Reason for change
Benchmarks suggest that MCAP can support higher write throughput than the `sqlite3` plugin in its default configuration, while also bringing the following other benefits:
* Append-only write behavior ensures that only the last few messages written can be corrupted in the case of a power outage or recorder crash. This is similar to the corruption guarantees offered by SQLite3 in [WAL mode](https://sqlite.org/wal.html), which is what is used in the `resilient` SQLite storage plugin preset.
* Ability to enable chunk compression, which should be more space-efficient than message compression for bags with many small messages. This also enables reader to use the message index, unlike file-level compression.
* Record message schemas to the bag by default, enabling applications outside the ROS 2 workspace to read message content.
## Benchmarks
Read the benchmarking analysis that lead to this conclusion [here](https://mcap.dev/performance-comparison/rosbag2-plugin-comparison.html).
### `rosbag2_performance_benchmarking`
There is a set of pre-existing benchmarks in the rosbag2 repo here: https://github.com/ros2/rosbag2/tree/rolling/rosbag2_performance/rosbag2_performance_benchmarking
We've run these in an attempt to compare the performance of MCAP against SQLite on these metrics, but at this point the results appear to be pure noise. A full analysis of why will be published to mcap.dev shortly, but for now the news is that we have not succeeded in producing a statistically significant difference in results between MCAP and SQLite.
## TODO
- [x] #1112
- [x] ros-tooling/rosbag2_storage_mcap#61
- [x] ros-tooling/rosbag2_storage_mcap#63
- [x] #1185
- [x] Parametrize `rosbag2_tests`
The latest release of mcap storage plugin is currently broken on one or more distributions (ros-tooling/rosbag2_storage_mcap#82).
We need to add an integration test to CI & the buildfarm that will prevent such issues in the future.
The text was updated successfully, but these errors were encountered: