neutron/neutron
yangjianfeng 99f4495c94 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.

Related-Bug: #1760047
Change-Id: I255caa0571c42fb012fe882259ef181070beccef
2019-01-28 07:26:45 +00:00
..
agent Improve port dhcp Provisioning 2019-01-28 07:26:45 +00:00
api Improve port dhcp Provisioning 2019-01-28 07:26:45 +00:00
cmd Merge "Upgrade check command - add support for 3rd party checks" 2018-12-19 12:50:19 +00:00
common Implement IpAddrCommand.get_devices_with_ip using pyroute2 2018-12-17 13:11:49 +00:00
conf Add a new configuration parameter rpc_response_max_timeout 2019-01-18 09:55:31 +00:00
core_extensions use autonested_transaction from neutron-lib 2018-07-26 07:41:34 -06:00
db Fix performance regression adding rules to security groups 2019-01-23 18:30:54 +00:00
debug Fix all pep8 E265 errors 2018-04-30 16:35:52 -04:00
extensions Prevent some L3 ports change IP address 2018-12-13 14:24:23 +00:00
hacking use sqla functions from neutron-lib 2018-07-25 21:04:20 +00:00
ipam Prevent some L3 ports change IP address 2018-12-13 14:24:23 +00:00
locale Imported Translations from Zanata 2018-03-03 06:08:46 +00:00
notifiers Send global_request_id for tracing calls from neutron to nova 2018-11-30 05:41:24 +00:00
objects Fix performance regression adding rules to security groups 2019-01-23 18:30:54 +00:00
pecan_wsgi Add missing ws seperator between words 2018-11-19 13:57:05 +08:00
plugins Change duplicate OVS bridge datapath-ids 2019-01-24 16:35:50 +00:00
privileged Correct arguments to nfct_open 2019-01-24 08:41:38 +00:00
quota use context manager from neutron-lib 2018-10-24 07:18:46 -06:00
scheduler Fetch specific columns rather than full ORM entities 2018-08-22 10:14:09 +00:00
server Allow neutron-api load config from WSGI process 2018-07-25 15:22:14 +07:00
services Gracefully handle fetch network fail in qos extend port 2019-01-17 20:30:35 +00:00
tests Improve port dhcp Provisioning 2019-01-28 07:26:45 +00:00
__init__.py Fix incorrect usage of '# flake8: noqa' 2018-10-29 15:27:50 -04:00
_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 Implement filter validation 2018-07-19 04:13:43 +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 supported_vnic_type configurable for sriov 2018-11-05 11:40:13 +01:00
policy.py Convert policy.json into policy-in-code 2018-12-13 20:37:53 +00:00
service.py remove context_manager from neutron 2018-12-18 12:26:53 -07:00
version.py
worker.py replace WorkerSupportServiceMixin with neutron-lib's WorkerBase 2017-06-14 06:56:48 -06:00
wsgi.py use context manager from neutron-lib 2018-10-24 07:18:46 -06:00