Our current prototype implementation of ngs-agent can also perform asynchronous configuration, i.e. NGS replies back to the API call immediately, then performs the switch configuration in the background, and finally changes the status of the port from BUILD to ACTIVE (or ERROR) in Neutron.
This has very good performance, especially when using the bulk API in Neutron. We presented performance results at the Vancouver 2023 summit.
However, it requires clients to poll for the state of the ports while they are in the BUILD state, which adds complexity to the clients. Also, this asynchronous implementation is complex and prone to race conditions. So, we are aiming at upstreaming a synchronous solution instead.
Our current prototype implementation of ngs-agent can also perform asynchronous configuration, i.e. NGS replies back to the API call immediately, then performs the switch configuration in the background, and finally changes the status of the port from BUILD to ACTIVE (or ERROR) in Neutron.
This has very good performance, especially when using the bulk API in Neutron. We presented performance results at the Vancouver 2023 summit.
However, it requires clients to poll for the state of the ports while they are in the BUILD state, which adds complexity to the clients. Also, this asynchronous implementation is complex and prone to race conditions. So, we are aiming at upstreaming a synchronous solution instead.