Liran Zelkha has uploaded a new change for review. Change subject: core: Eliminate unneeded updates to VdsDynamic ......................................................................
core: Eliminate unneeded updates to VdsDynamic This patch tries to minimize updates to VdsDynamic by checking the database value before updating the entity. Change-Id: Icab3ed7d251573f150d28f966d0ad2363ecc3441 Bug-Url: https://bugzilla.redhat.com/1016634 Signed-off-by: lzel...@redhat.com <lzel...@redhat.com> --- 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/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java 3 files changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/23852/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java index 9b72477..82f060b 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java @@ -35,4 +35,11 @@ * @param controlledByPmPolicy - a new value for the flag */ void updateVdsDynamicPowerManagementPolicyFlag(Guid id, boolean controlledByPmPolicy); + + /** + * Update entity but check database before update to make sure update is neccessary + * @param dynamicData + * - entity + */ + void updateIfNeeded(VdsDynamic vdsDynamic); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java index 78a4e7c..87a8b1e 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java @@ -14,6 +14,8 @@ import org.ovirt.engine.core.compat.RpmVersion; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.ovirt.engine.core.dal.dbbroker.MapSqlParameterMapper; +import org.ovirt.engine.core.utils.log.Log; +import org.ovirt.engine.core.utils.log.LogFactory; import org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer; import org.ovirt.engine.core.utils.serialization.json.JsonObjectSerializer; import org.springframework.jdbc.core.RowMapper; @@ -26,6 +28,8 @@ * */ public class VdsDynamicDAODbFacadeImpl extends MassOperationsGenericDaoDbFacade<VdsDynamic, Guid> implements VdsDynamicDAO { + + private static Log log = LogFactory.getLog(VdsDynamicDAODbFacadeImpl.class); public VdsDynamicDAODbFacadeImpl() { super("VdsDynamic"); @@ -262,4 +266,14 @@ protected RowMapper<VdsDynamic> createEntityRowMapper() { return VdcDynamicRowMapper.instance; } + + @Override + public void updateIfNeeded(VdsDynamic vdsDynamic) { + VdsDynamic dbData = get(vdsDynamic.getId()); + if (!dbData.equals(vdsDynamic)) { + update(vdsDynamic); + } else { + log.info("Ignored an unneeded update of VdsDynamic"); + } + } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java index bbb2639..109c2f8 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java @@ -370,7 +370,7 @@ * @param dynamicData */ public void updateDynamicData(VdsDynamic dynamicData) { - DbFacade.getInstance().getVdsDynamicDao().update(dynamicData); + DbFacade.getInstance().getVdsDynamicDao().updateIfNeeded(dynamicData); } /** -- To view, visit http://gerrit.ovirt.org/23852 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icab3ed7d251573f150d28f966d0ad2363ecc3441 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liran Zelkha <liran.zel...@gmail.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches