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

Reply via email to