]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
Improves Arista's ML2 driver's sync performance
authorShashank Hegde <shashank@aristanetworks.com>
Fri, 14 Feb 2014 02:20:45 +0000 (18:20 -0800)
committerThomas Goirand <thomas@goirand.fr>
Thu, 13 Mar 2014 07:20:39 +0000 (15:20 +0800)
commit20f302f18c167878168036c32c223c2795fc6108
treed17372e518c0feacd5e4d5305c148f4f917cf0be
parenteb1051b042e32f26882cb955508b9e263b0ddb4d
Improves Arista's ML2 driver's sync performance

In large scale deployments a full sync between Neutron and EOS can take minutes.
In order to cut that time, this patch batches multimle EOS CLI commands and
sends them to EOS instead of sending each command separately. For example, if a
tenant has 10 networks, instead of making 10 RPC calls to EOS to create those 10
networks, this patch builds a commands to create those 10 networks and makes
just one RPC call to EOS which cuts down sync times significantly. All the _bulk()
methods are added to batch such requests.

Another optimization is to timestamp when the Region data was modified (This
includes any tenant creation, their networks, VMs and ports). The sync gets the
timestamp from EOS and only if the timestamps do not match, the driver performs
a full sync.

Closes-Bug: 1279619
Change-Id: I7d17604a7088d7dbb6e3dbb0afdb8e6759c1f67d
neutron/plugins/ml2/drivers/mech_arista/db.py
neutron/plugins/ml2/drivers/mech_arista/mechanism_arista.py
neutron/tests/unit/ml2/drivers/test_arista_mechanism_driver.py