[nova][ironic] Lock-related performance issue with update_resources periodic job
On 5/13/2019 3:34 PM, Surya Seetharaman wrote:
> I'm wondering, after all this, if it makes sense to rethink this
> one-semaphore thing, and instead create a per-hypervisor semaphore
> when doing the resource syncing. I can't think of a reason why the
> entire set of hypervisors needs to be considered as a whole when
> doing this task, but I could very well be missing something.
> While theoretically this would be ideal, I am not sure how the
> COMPUTE_RESOURCE_SEMAPHORE can be tweaked into a per-hypervisor (for
> ironic) semaphore since its ultimately on a single compute-service's
> resource tracker, unless I am missing something obvious. Maybe the nova
> experts who know more this could shed some light.
I would think it would just be a matter of locking on the nodename. That
would have the same effect for a non-ironic compute service where the
driver should only be reporting a single nodename. But for a compute
service managing ironic nodes, it would be more like a per-instance lock
since the nodes are 1:1 with the instances managed on that host.
Having said all that, the devil is in the details (and trying to
refactor that very old and crusty RT code).