Comment 16 for bug 1760047

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

Reviewed: https://review.openstack.org/626830
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=99f4495c940011293e3cabbb590770dc1e7b6900
Submitter: Zuul
Branch: master

commit 99f4495c940011293e3cabbb590770dc1e7b6900
Author: yangjianfeng <email address hidden>
Date: Fri Dec 21 14:08:38 2018 +0800

    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