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

Create a messages_adapter package #3845

Closed
3 of 6 tasks
xmfcx opened this issue May 26, 2023 · 4 comments · Fixed by #3876
Closed
3 of 6 tasks

Create a messages_adapter package #3845

xmfcx opened this issue May 26, 2023 · 4 comments · Fixed by #3876
Assignees
Labels
component:simulation Virtual environment setups and simulations. (auto-assigned) component:system System design and integration. (auto-assigned) type:new-feature New functionalities or additions, feature requests.

Comments

@xmfcx
Copy link
Contributor

xmfcx commented May 26, 2023

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

Create a package that will enable Autoware to convert given messages from autoware_msgs to autoware_auto_msgs. And publish them.

  • The topic names and types can be configured.

Follow up from:

Purpose

Helps resolving

Possible approaches

  • The topic names and types are provided by the parameters.

Definition of done

  • Create the package
  • It has the functionality to convert from:
    • autoware_auto_control_msgs to autoware_control_msgs
    • More issues can be created to add more messages.
@xmfcx
Copy link
Contributor Author

xmfcx commented May 26, 2023

Which one should we go with?

  • Option A: Spawning a new adapter node for each message.
  • Option B: Having a single node that can subscribe and publish multiple messages.

Option A

Pros

  • Adapters can be integrated into composable node containers, reducing the copy/network cost.
  • Each message is handled by a separate node, allowing for better isolation and fault tolerance.
  • Easier to debug and troubleshoot issues since each node is responsible for a single message.

Cons

  • Increased node count, which may impact system resource utilization and scalability.
  • Requires additional management and coordination overhead for managing multiple nodes.
  • Potential increase in network overhead due to the communication between multiple adapter nodes.

Option B

Pros

  • Only a single node needs to be managed, reducing management overhead.
  • Simplified system architecture with fewer nodes to deploy and maintain.
  • Potentially lower network overhead since communication is concentrated in a single node.

Cons

  • It cannot be integrated into composable node containers, leading to increased copy/network cost.
  • Lack of isolation between messages may increase the risk of failure propagation.
  • Debugging and troubleshooting can be more challenging as multiple messages are handled within a single node.

Additional Considerations

  • Option C: Implement a hybrid approach where a limited number of adapter nodes are used, each handling a group of related messages. This can strike a balance between system scalability and resource utilization, allowing for better control over the number of nodes while maintaining some level of isolation and fault tolerance.
  • Evaluate the expected message load and processing requirements to determine if the increased node count in Option A will significantly impact system performance and resource consumption.

I think Option A is a safer option to go with. Can anyone comment on the potential drawbacks of having too many nodes running at a time? Even if they are composable nodes in containers?

cc. @isamu-takagi @mitsudome-r @wep21

@xmfcx xmfcx self-assigned this May 26, 2023
@xmfcx xmfcx added type:new-feature New functionalities or additions, feature requests. component:system System design and integration. (auto-assigned) core component:simulation Virtual environment setups and simulations. (auto-assigned) labels May 26, 2023
@xmfcx xmfcx added this to the 2023 May - Jun Milestone milestone May 26, 2023
@xmfcx xmfcx moved this to In Progress in Autoware Labs May 26, 2023
@isamu-takagi
Copy link
Contributor

@xmfcx I prefer Option A. Considering the load on the system, the impact of other processes is greater, so I think it's better to give priority to ease of use for now. It's not too hard to merge the separate nodes into one if someone needs it.

@isamu-takagi
Copy link
Contributor

Can anyone comment on the potential drawbacks of having too many nodes running at a time? Even if they are composable nodes in containers?

@xmfcx I've heard that in rare cases, when there is too many nodes, MaxAutoParticipantIndex needs to be increased for Cyclone DDS, but I don't know the specifics. At least the I have never had a problem by number of nodes is large.

@xmfcx
Copy link
Contributor Author

xmfcx commented May 29, 2023

Thank you @isamu-takagi san, I will implement it with Option A then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:simulation Virtual environment setups and simulations. (auto-assigned) component:system System design and integration. (auto-assigned) type:new-feature New functionalities or additions, feature requests.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants