Michael Kublin has submitted this change and it was merged. Change subject: engine: Compare and set instead of updateVdsDynamic in VM scenarios ......................................................................
engine: Compare and set instead of updateVdsDynamic in VM scenarios The following patch should solve a following problems: 1. Deadlock between RunVmCommandBase.decreasePendingVms and VdsUpdateRuntimeInfo.AfterRefreshTreatment line with code: ResourceManager.getInstance().getEventListener().processOnVmPoweringUp(...); 2. Replace get for vds dynamic , update some values, and after that update in db by single db update. The old way creates a dirty state fot host status field, fix will reduce a noise in host life cycle scenarios 3. Performance improved: less db access, less locks acquired, no deadlocks What is not solved (problems which were before and should be solved in next patches) 1. Race between VdsManager.OnTimer() and RunVmCommandBase.decreasePendingVms() 2. RunVmDelayer.evaluated can be based on not updated data 3. Interaction of loop over ResourceManager.getInstance().getEventListener().processOnVmPoweringUp(...) inside VdsUpdateRuntimeInfo.AfterRefreshTreatment with RunVmCommands - it is a war for locks, or "code of death" for all system during RunVm scenarious Change-Id: I363afc5c3411b0c13e6d6c9ed5b16004738b6ca7 Signed-off-by: Michael Kublin <[email protected]> --- M backend/manager/dbscripts/vds_sp.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java D backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVdsDynamicDataVDSCommandParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java D backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVdsDynamicDataVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java 13 files changed, 142 insertions(+), 169 deletions(-) Approvals: Michael Kublin: Verified; Looks good to me, approved -- To view, visit http://gerrit.ovirt.org/13682 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I363afc5c3411b0c13e6d6c9ed5b16004738b6ca7 Gerrit-PatchSet: 4 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <[email protected]> Gerrit-Reviewer: Arik Hadas <[email protected]> Gerrit-Reviewer: Barak Azulay <[email protected]> Gerrit-Reviewer: Eli Mesika <[email protected]> Gerrit-Reviewer: Gilad Chaplik <[email protected]> Gerrit-Reviewer: Michael Kublin <[email protected]> Gerrit-Reviewer: Omer Frenkel <[email protected]> Gerrit-Reviewer: Roy Golan <[email protected]> Gerrit-Reviewer: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
