You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Koushik Das (JIRA)" <ji...@apache.org> on 2015/12/16 11:03:46 UTC

[jira] [Created] (CLOUDSTACK-9180) Optimize concurrent VM deployment operation on same network

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)