[
https://issues.apache.org/jira/browse/CLOUDSTACK-9180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15266436#comment-15266436
]
ASF GitHub Bot commented on CLOUDSTACK-9180:
--------------------------------------------
Github user rhtyd commented on the pull request:
https://github.com/apache/cloudstack/pull/1251#issuecomment-216208899
@koushik-das can you rebase against latest master and share state of your
PR, thanks
> 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: Future
>
>
> 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)