← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1806311] [NEW] [RFE] PortBindingPort DB model should have 'host' index

 

Public bug reported:

Recently, we have encountered very high DB CPU load for neutron-server.
This results from our sanity checking operational application. The
application works like this

1. Call neutron API like openstacksdk.network.ports.get(**{'binding:host_id': 'compute001'})
2. Check the port's sanity status.


Currently, we have over than 1200 hypervisors in one region, and there are over than 20000 ports.
 I found that whenever we find ports with host_id filtering for one hypervisor, DB search every columns with the host parameter and it makes serious performance impact on DB clusters.

I also noticed that DVR scheduler is heavily using the host_id
parameter, so that it's not only for specific operational overhead but
also for general problem with the filtering.

IMHO, since PortBindingMixin in db/porbindings_db.py is already have
structured API (_port_result_filter_hook) for filtering HOST_ID, it's
worthy to add DB index for the 'host' column.

Thanks

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: rfe

** Tags added: rfe

** Summary changed:

- PortBindingPort DB model should have 'host' index
+ [RFE] PortBindingPort DB model should have 'host' index

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

Title:
  [RFE] PortBindingPort DB model should have 'host' index

Status in neutron:
  New

Bug description:
  Recently, we have encountered very high DB CPU load for neutron-
  server. This results from our sanity checking operational application.
  The application works like this

  1. Call neutron API like openstacksdk.network.ports.get(**{'binding:host_id': 'compute001'})
  2. Check the port's sanity status.

  
  Currently, we have over than 1200 hypervisors in one region, and there are over than 20000 ports.
   I found that whenever we find ports with host_id filtering for one hypervisor, DB search every columns with the host parameter and it makes serious performance impact on DB clusters.

  I also noticed that DVR scheduler is heavily using the host_id
  parameter, so that it's not only for specific operational overhead but
  also for general problem with the filtering.

  IMHO, since PortBindingMixin in db/porbindings_db.py is already have
  structured API (_port_result_filter_hook) for filtering HOST_ID, it's
  worthy to add DB index for the 'host' column.

  Thanks

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


Follow ups