Speed up creation of RoutingInstances by using multiple Tasks
Profiling in scaled scenarios with a large number of VNs showed that we
spend a significant amount of time in creating and/or updating routing
instances.
Instead of creating instances from a single bgp::Config task, use many
bgp::ConfigHelper tasks. The bulk of the processing for instance create
and update operations can happen in parallel.
Use mutexes to serialize access to certain shared resources such as the
following:
o DB
o DBPartition
o BgpConditionListener
o RoutingInstanceMgr
o RoutePathReplicator
o ServiceChainMgr
o RoutingPolicyMgr
Reviewed: https:/ /review. opencontrail. org/22518 github. org/Juniper/ contrail- controller/ commit/ 89df846de17a5b1 b58b73c6d4f2afc 246224d289
Committed: http://
Submitter: Zuul
Branch: master
commit 89df846de17a5b1 b58b73c6d4f2afc 246224d289
Author: Nischal Sheth <email address hidden>
Date: Thu Jul 14 09:49:55 2016 -0700
Speed up creation of RoutingInstances by using multiple Tasks
Profiling in scaled scenarios with a large number of VNs showed that we
spend a significant amount of time in creating and/or updating routing
instances.
Instead of creating instances from a single bgp::Config task, use many
bgp::ConfigHelper tasks. The bulk of the processing for instance create
and update operations can happen in parallel.
Use mutexes to serialize access to certain shared resources such as the
following:
o DB tener
o DBPartition
o BgpConditionLis
o RoutingInstanceMgr
o RoutePathReplicator
o ServiceChainMgr
o RoutingPolicyMgr
Change-Id: Icf83f31ca981e3 b8cca98bd26ed57 96abe83ede9
Partial-Bug: 1596089