Provide the automate engine code a way to synchronize threads between distributed appliances in the same region by using postgres advisory locks (mutexes).
This functionality is useful to prevent conflicts in identification like VM-naming or IP assignment. It can also help prevent oversubscription where placement of VMs by multiple processes could provision because they all calculated a host having free resources when
State of current development?
Currently, I have updated miq_ae_service.rb for the $evm methods and added an MiqConcurrency::PGMutex module that support the advisory lock calls to postgres in my fork.
How much is completed?
This current approach is completed and working, but I am open to any kind of suggestion and/or changes to the approach. This code leverages work done by Jason Dillaman on private projects.
Target release and timeline?
It is completed now pending approval from the committee.
Which ManageIQ release will this be included in? When do you expect the first version that’s usable?
Core feature or independent project?
This does change core code so it will need to be voted and approved and commented on by the current comittee.
This does not depend on other parts of MIQ development.