← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1840979] [NEW] [L2] [opinion] update the port DB status directly in agent-side

 

Public bug reported:

When ovs-agent done processing the port, it will call neutron-server to make some DB update.
Especially when restart the ovs-agent, all ports in one agent will do such RPC and DB update again to make port status consistent. When a large number of concurrent agent restart happen, neutron-server may not work fine.
So how about making the following DB updating locally in neutron agent side directly? It may have some mechanism driver notification, IMO, this can also be done in agent-side.

    def update_device_down(self, context, device, agent_id, host=None):
        cctxt = self.client.prepare()
        return cctxt.call(context, 'update_device_down', device=device,
                          agent_id=agent_id, host=host)

    def update_device_up(self, context, device, agent_id, host=None):
        cctxt = self.client.prepare()
        return cctxt.call(context, 'update_device_up', device=device,
                          agent_id=agent_id, host=host)

    def update_device_list(self, context, devices_up, devices_down,
    ret = cctxt.call(context, 'update_device_list',

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1840979

Title:
  [L2] [opinion] update the port DB status directly in agent-side

Status in neutron:
  New

Bug description:
  When ovs-agent done processing the port, it will call neutron-server to make some DB update.
  Especially when restart the ovs-agent, all ports in one agent will do such RPC and DB update again to make port status consistent. When a large number of concurrent agent restart happen, neutron-server may not work fine.
  So how about making the following DB updating locally in neutron agent side directly? It may have some mechanism driver notification, IMO, this can also be done in agent-side.

      def update_device_down(self, context, device, agent_id, host=None):
          cctxt = self.client.prepare()
          return cctxt.call(context, 'update_device_down', device=device,
                            agent_id=agent_id, host=host)

      def update_device_up(self, context, device, agent_id, host=None):
          cctxt = self.client.prepare()
          return cctxt.call(context, 'update_device_up', device=device,
                            agent_id=agent_id, host=host)

      def update_device_list(self, context, devices_up, devices_down,
      ret = cctxt.call(context, 'update_device_list',

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1840979/+subscriptions


Follow ups