Hi Gary,

The motivation for this patch was to remove the unnecessary querying that
was being done to quantum during the initial sync, previously a
get_subnets/_ports was done  for each network in addition to an update for
the dhcp port even if it didn't need to).  In my opinion the amount of data
being sent to the agents is not a big deal. Even in extremely large
deployments we are talking about on order of megs of data that  are sent
and this is only done on initial sync. That said, I'll update the patch to
remove subnets that are not dhcp enabled as you are right we don't need to
send these down.

In regards to rewriting the hosts file for each update I don't think this
is really a big deal either. Implementing logic to hash the files to see if
it needs to be updated seems like overkill as it will only save us on the
initial sync. Currently, with the code on review i can restart the dhcp and
have it complete sync_state() with 2k networks 8k ports in ~20 seconds
where it previously took 30+ minutes.

On the same subject though another performance issue that I think we should
fix is the agent currently updates the ipallocation table for each renewed
lease which happens every 120 seconds by the default value. This generates
a ton of API calls to quantum and grows the more vms that are deployed(!)
In my opinion it would be worth while to batch these and provide a bulk
update method that is done every 60 seconds rather than immediately when it
gets a renew.

I'm not sure about the left over port issue you are seeing. I've not
noticed this issue on my end. I'll keep an eye out though as well.

Best,

Aaron



On Sun, Jun 9, 2013 at 12:10 AM, Gary Kotton <[email protected]> wrote:

> Hi,
> In addition to Aarons changes there are still a lot of issues which I
> think are problematic with the current implementation. The problems that I
> see at the moment are as follows:
> 1. The amount of data that sent on the network to the agents
> 2. The way in which the data is parsed on the agent:
>     i. Networks that are disabled are sent to the agent
>     ii. Subnets that have DHCP disabled are sent to the agent
>     iii. The host file is rebuilt with each and every change. This means
> looping over all of the ports in the network each time there is an update.
> 3. Message reliability. At the moment I am investigating a bug where
> deleting 10 networks leaves the host file with details of a port that has
> already been deleted. (
> I think that a way of addressing the above may be as follows:
>
> 1. Enable the plugin to prepare the information for the agents. This can
> leverage the database filtering and reduce the amount of data on the
> network. In addition to this the plugin can/may have drivers that are
> specific to the agents implementation - for example in the case of dnsmasq,
> it will be preparing the host file. In the case of the dnsmasq we can send
> host file deltas. A further reduction can be compressing the host file.
> 2. In order to prevent very heavy operations when either agents/services
> are restarted we can have a hash of the above file. This can ensure that it
> is synced (this is something that is specific to the driver
> implementations).
>
> Thoughts?
>
> Thanks
> Gary
>
>
> --
> Mailing list: 
> https://launchpad.net/~**quantum-core<https://launchpad.net/~quantum-core>
> Post to     : 
> [email protected].**net<[email protected]>
> Unsubscribe : 
> https://launchpad.net/~**quantum-core<https://launchpad.net/~quantum-core>
> More help   : 
> https://help.launchpad.net/**ListHelp<https://help.launchpad.net/ListHelp>
>
-- 
Mailing list: https://launchpad.net/~quantum-core
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~quantum-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to