Bug 2130499 - Add hash ring features to ovn-provider driver agent
Summary: Add hash ring features to ovn-provider driver agent
Keywords:
Status: NEW
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-ovn-octavia-provider
Version: 18.0 (Zed)
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
: ---
Assignee: OSP Team
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-09-28 11:19 UTC by Fernando Royo
Modified: 2023-07-13 15:22 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-18970 0 None None None 2022-09-28 11:20:24 UTC

Description Fernando Royo 2022-09-28 11:19:56 UTC
Currently the ovn-octavia-provider driver agents are running on all controllers, all of them are connected to OVN NB / SB DB but just one of them is locked to manage the events received. 

After a further investigation on the hash ring manager used in neutron, a similar solution can be implemented in the driver-agent mentioned in order to take advantage of paralelism.

As the hash ring manager currently implement the concept of group, we can use this field to define a set of nodes under the group 'ovn-octavia-provider' in order to not work just only the driver agents isolated from the neutron workers. 

The desirable solution, and given that ovn-octavia-provider already has a neutron-lib dependency, is that the hash-ring-manager functionality (currently in neutron core) is migrated to neutron-lib, where ovn-octavia-provider could take advantage of it and would not require a new dependency to talk to neutron-db, or more correctly octavia db, which would imply more profound changes. Given the special link between ovn-octavia-provider and neutron, this solution seemed to us to be the most appropriate.

This way the implementation would be simple in these steps:

- Removal of the current lock that only allows one driver agent to handle events.
- Use the hash-ring-manager imported from neutron-lib to distribute events on the available driver agents.


Note You need to log in before you can comment on or make changes to this bug.