Koushik Das created CLOUDSTACK-9180:
---------------------------------------
Summary: Optimize concurrent VM deployment operation on same
network
Key: CLOUDSTACK-9180
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9180
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Management Server
Affects Versions: 4.6.0
Reporter: Koushik Das
Assignee: Koushik Das
Fix For: 4.7.0
During VM deployment a check is performed to see if VR exists or not. If not it
is created - first an entry is allocated in DB for VR and then it is deployed.
The allocation logic is placed in a lock (based on network id) so that only one
thread does the allocation. But the locking is implemented in a way such that
all threads wait on that lock even when VR is already allocated. The correct
approach would be to check if VR is allocated or not and acquire lock only when
needed.
This issue is more frequently seen when concurrently deploying VMs in basic
zone as all threads try to acquire lock using the same network id. In advanced
zone operations are spread across multiple networks and so less frequent.
Refer to findOrDeployVirtualRouter() in RouterDeploymentDefinition.java.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)