Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The platform controls concurrency for VMs, so this affects the following operations.*

  • VM state changes (powerOn, powerOff, etc)

...

  • Configure/Deconfigure/Reconfigure VM

...

  • Register/Unregister/Update VM with Firewall Policy / Load Balancer / Nat Rule

...

  • Perform Backup / Schedule Backup / Restore From Backup of a VM


Control concurrency at the platform level

The most basic level of concurrency configuration is the existing control at the platform level. This limits the number of concurrent operations for the same connection (hypervisor IP or endpoint), device, or backup manager.

{newcode:java}

Code Block
java
java

abiquo.virtualfactory.openSession

...


abiquo.virtualfactory.device.openSession

...


abiquo.virtualfactory.backup.openSession

...


For example, to allow 2 connections to vCenter1 + 2 connections to vCenter2 + 2 connections to each of the public cloud regions,  set set openSession to 2.

{newcode:java}

Code Block
java
java

abiquo.virtualfactory.openSession=2

...



For example, the platform can perform 2 concurrent operations on the same vCenter (for VMX_04 or CLUSTER plugins) or AWS region.


Control concurrency by plugin type, device, or backup manager

...

If not specified by type, then the defaults are the platform level properties.{newcode:java}

Code Block
java
java
abiquo.virtualfactory.{pluginTypeInLowerCase}.openSession

...



abiquo.virtualfactory.{backupManagerLowerCase}.backup.openSession

...



abiquo.virtualfactory.{deviceLowerCase}.device.openSession

...





Control concurrency at the virtual datacenter level

...

The default value allows concurrent operations to the same VDC.{newcode:java}

Code Block
java
java
abiquo.virtualfactory.openSession.byvdc=false

...



abiquo.virtualfactory.device.openSession.byvdc=false

...



abiquo.virtualfactory.backup.openSession.byvdc=false

...




For example, to prevent concurrency in the same virtual datacenter, which means all the operations to the same VDC will be executed one after another, set the following properties.
For the same PCR endpoint (connection data), it will be possible to execute multiple concurrent operations but only if they affect different virtual datacenters.{newcode:java}

Code Block
java
java
abiquo.virtualfactory.openSession.byvdc=true


abiquo.virtualfactory.openSession=1
{newcode}



You can also control concurrency for device and backup managers at the virtual datacenter level.

...

To always allow VM state changes without considering the ''openSession'' limitation, set the fast state changes property to true, as shown here.{newcode:java}

Code Block
java
java
abiquo.virtualfactory.openSession.faststatechanges=true

...


When you use this fast state changes functionality, the platform will always execute VM state changes when you request them, without waiting for an ''available worker in the pool''.

For example, with the following configuration, the platform will only allow one configure/deconfigure/reconfigure at reconfigure at a time, but state changes can occur concurrently.

{newcode:java}

Code Block
java
java

abiquo.virtualfactory.openSession.faststatechanges=true

...



abiquo.virtualfactory.openSession=1

...



 

Limitations

* the properties only apply to the virtualfactory (vm centric ops) so don't expect other operations with entities related to virtualdatacenter are also executed in the same pool (eg: create private network doesn't follow this concurrency limitations)

...