[ https://issues.apache.org/jira/browse/CLOUDSTACK-9180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Koushik Das updated CLOUDSTACK-9180: ------------------------------------ Fix Version/s: (was: Future) 4.9.0 > 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.9.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)