I like this idea, but I don't think it will actually work as-is. The current blocking cluster operations quience other cluster operations from the when they are handled in the main thread first, over the execution in the worker thread, until after the process_main method is called on all nodes. By just serializing operations we can already start new cluster operations before the previous process_main has finished. The case where I can see this causing major issues is VDI creation: the vdi_inuse bit is only set on all nodes in the process_main operation, but the way I read this patch we could have already started a new VDI create operation on another node that would race to use the same VDI slot (if using the same or a similar enough name) |