Roy Golan has posted comments on this change. Change subject: core: long query response time while many simultaneously queries are running ......................................................................
Patch Set 5: (4 comments) http://gerrit.ovirt.org/#/c/27586/5/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java File backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java: Line 114: Line 115: @Override Line 116: public Map<Guid, Guid> getImageIdForDisks(List<Guid> requiredDisks) { Line 117: try { Line 118: Connection c = jdbcTemplate.getDataSource().getConnection(); Connection is AutoClosabele so try(Connection c ...) is preferrable also can er minimize the scope of the try/catch? Line 119: Array imageArray = c.createArrayOf("uuid", requiredDisks.toArray()); Line 120: Line 121: List<ImageAndImageGroupId> disks = getCallsHandler().executeReadList("GetImageGroupByImageId", Line 122: ImageAndImageGroupIdMapper.instance, Line 157: this.imageGroupId = imageGroupId; Line 158: } Line 159: } Line 160: Line 161: private static class ImageAndImageGroupIdMapper implements RowMapper<ImageAndImageGroupId> { can we just spare the class and create a static instance instead? private static final RowMapper<ImageAndImageGroupId> mapper = new RowMapper<> { @Override ... } Line 162: Line 163: public static ImageAndImageGroupIdMapper instance = new ImageAndImageGroupIdMapper(); Line 164: Line 165: private ImageAndImageGroupIdMapper() { Line 165: private ImageAndImageGroupIdMapper() { Line 166: } Line 167: Line 168: @Override Line 169: public ImageAndImageGroupId mapRow(ResultSet rs, int rowNum) throws SQLException { looking more closely why do we need ImageAndImageGroupId? just pass in the Map and map the result directly - just a custom mapper which get the map as an arg or something Line 170: ImageAndImageGroupId entity = new ImageAndImageGroupId(); Line 171: entity.setImageId(getGuidDefaultEmpty(rs, "image_guid")); Line 172: entity.setImageGroupId(getGuidDefaultEmpty(rs, "image_group_id")); Line 173: return entity; http://gerrit.ovirt.org/#/c/27586/5/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java File backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java: Line 1518: for (DiskImageDynamic disk : vmInternalData.getVmDynamic().getDisks()) { Line 1519: requiredDisks.add(disk.getId()); Line 1520: } Line 1521: } Line 1522: Map<Guid, Guid> diskImages = getDbFacade().getImageDao().getImageIdForDisks(requiredDisks); can you place code above the call the updateVmStatistics? its too early in the execution both code-wise and execution wise Line 1523: for (VmInternalData vmInternalData : _runningVms.values()) { Line 1524: VmDynamic runningVm = vmInternalData.getVmDynamic(); Line 1525: VM vmToUpdate = _vmDict.get(runningVm.getId()); Line 1526: -- To view, visit http://gerrit.ovirt.org/27586 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I94e20d782bc4e2befaf4338f51551a2855509769 Gerrit-PatchSet: 5 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liran Zelkha <lzel...@redhat.com> Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com> Gerrit-Reviewer: Barak Azulay <bazu...@redhat.com> Gerrit-Reviewer: Eli Mesika <emes...@redhat.com> Gerrit-Reviewer: Liran Zelkha <lzel...@redhat.com> Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Oved Ourfali <oourf...@redhat.com> Gerrit-Reviewer: Roy Golan <rgo...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches