neutron/neutron
yangjianfeng dd5e89e717 Improve port dhcp Provisioning
Currently, the dhcp Provisioning of ports is the crucial bottleneck
of that concurrently boot multiple VM.

The root cause is that these ports will be processed one by one by dhcp
agent when they belong to the same network, And the 'Provisioning complete'
port is still blocked other port's processing in other dhcp agents. The
patch aim to optimize the dispatch strategy of the port cast to agent to
improve the Provisioning process.

In server side, I classify messages to multi levels. Especially, I classify
the port_update_end or port_create_end message to two levels, the high-level
message only cast to one agent, the low-level message cast to all agent. In
agent side I put these messages to `resource_processing_queue`, with the queue,
We can delete `_net_lock` and process these messages in order of priority.

Additonally, I modified the `resource_processing_queue` for my demand. I update
`_queue` from LIST to PriorityQueue in `ExclusiveResourceProcessor`, by this
way, we can sort all message which cached in `ExclusiveResourceProcessor` by
priority.

Conflicts:
    neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py

Related-Bug: #1760047
Change-Id: I255caa0571c42fb012fe882259ef181070beccef
(cherry picked from commit 99f4495c94)
(cherry picked from commit 740295d94d)
2019-04-10 16:17:29 +00:00
..
agent Improve port dhcp Provisioning 2019-04-10 16:17:29 +00:00
api Improve port dhcp Provisioning 2019-04-10 16:17:29 +00:00
cmd Secure dnsmasq process against external abuse 2019-01-25 13:58:19 +00:00
common Divide-and-conquer security group beasts 2019-04-03 11:07:15 -07:00
conf [OVS] Add mac-table-size to be set on each ovs bridge 2018-06-19 07:12:45 +00:00
core_extensions use qos constants from neutron-lib 2017-10-26 19:57:19 +00:00
db Fix slow SG api calls when limiting fields 2019-04-05 20:33:57 -06:00
debug Change ip_lib network namespace code to use pyroute2 2017-10-04 21:09:28 +00:00
extensions Improve invalid port ranges error message 2019-03-21 10:18:01 -04:00
hacking hacking: Remove dead code 2017-07-19 13:43:44 +02:00
ipam Fetch specific columns rather than full ORM entities 2018-09-27 19:12:37 +02:00
locale Imported Translations from Zanata 2018-03-14 06:20:49 +00:00
notifiers use callback payloads for REQUEST/RESPONSE events 2017-12-24 07:27:11 +00:00
objects Fix slow SG api calls when limiting fields 2019-04-05 20:33:57 -06:00
pecan_wsgi Fixes minor typo in neutron 2018-01-18 14:27:59 +08:00
plugins Merge "Divide-and-conquer local bridge flows beasts" into stable/queens 2019-04-09 00:38:14 +00:00
privileged Add capabilities for privsep 2018-10-29 11:28:45 +00:00
quota Fetch specific columns rather than full ORM entities 2018-09-27 19:12:37 +02:00
scheduler Fetch specific columns rather than full ORM entities 2018-09-27 19:12:37 +02:00
server Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
services Fix QoS rule update 2019-03-29 09:10:09 +00:00
tests Improve port dhcp Provisioning 2019-04-10 16:17:29 +00:00
__init__.py
_i18n.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
auth.py Use oslo.context class method to construct context object 2017-03-23 09:02:46 +00:00
manager.py Do not load default service plugins if core plugin is not DB based 2017-11-09 20:34:52 +00:00
neutron_plugin_base_v2.py Do not load default service plugins if core plugin is not DB based 2017-11-09 20:34:52 +00:00
opts.py Merge "Remove deprecated cache_url" 2018-01-03 06:35:59 +00:00
policy.py Add enforcer logic for neutron policy 2019-04-08 16:31:37 +00:00
service.py use callback payloads for _SPAWN events 2017-12-21 11:03:36 -07:00
version.py
worker.py replace WorkerSupportServiceMixin with neutron-lib's WorkerBase 2017-06-14 06:56:48 -06:00
wsgi.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00