Michael Kublin has posted comments on this change.
Change subject: core: throttle running of VMs (#843058)
......................................................................
Patch Set 5: (3 inline comments)
....................................................
File
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
Line 51:
Line 52: private static Log log = LogFactory.getLog(RunVmCommandBase.class);
Line 53: protected static final HashMap<Guid, Integer>
_vds_pending_vm_count = new HashMap<Guid, Integer>();
Line 54: protected final Lock decreaseLock = new ReentrantLock();
Line 55: protected final Condition decreased = decreaseLock.newCondition();
when will we have cluster solution and how will it affect running a VM? - very
simple , clustering mean more than one J2EE engine, I think it is clear why all
internal locks should be in same place and not all around a code.
Second, I am not introducing a "new" lock. just replaced the keyword
"synchronized" with the lock object so I can have a Condition object. - Yes,
you just continue to use same baggy code. How internal lock of object will
solve a concurrency issue?
Line 56: private VdsSelector privateVdsSelector;
Line 57: protected boolean _isRerun = false;
Line 58: protected VDS _destinationVds;
Line 59: private SnapshotsValidator snapshotsValidator=new
SnapshotsValidator();
Line 424: * the DecreasePendingVms event.
Line 425: * @see VdsEventListener
Line 426: * @See VdsUpdateRunTimeInfo
Line 427: */
Line 428: @Override
Actually not. And waht about performance question? It is not important?
Line 429: public void throttle(Guid vdsId) {
Line 430: if (log.isDebugEnabled()) {
Line 431: log.debug("try to wait for te engine update the host
memory and cpu stats");
Line 432: }
Line 439:
ResourceManager.getInstance().GetVdsManager(vdsId).getLastUpdateElapsed(),
Line 440: TimeUnit.SECONDS.toMillis(Config.<Integer>
GetValue(VdsRefreshRate)));
Line 441: t = Math.max(Config.<Integer>
GetValue(ConfigValues.ThrottlerMaxWaitForVdsUpdateInMillis), t);
Line 442:
Line 443: // wait for the run-time refresh to decrease any current
powering-up VMs
By the way, you understand that u will wait for nothing , if no one trying to
do DecreasePendingVms()
Line 444: decreased.await(t, TimeUnit.MILLISECONDS);
Line 445: } catch (InterruptedException e) {
Line 446: // ignore
Line 447: } finally {
--
To view, visit http://gerrit.ovirt.org/7204
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I076ede6cba919bc61f7546d7b29ef436eb6d3375
Gerrit-PatchSet: 5
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
Gerrit-Reviewer: Allon Mureinik <[email protected]>
Gerrit-Reviewer: Barak Azulay <[email protected]>
Gerrit-Reviewer: Doron Fediuck <[email protected]>
Gerrit-Reviewer: Michael Kublin <[email protected]>
Gerrit-Reviewer: Moti Asayag <[email protected]>
Gerrit-Reviewer: Omer Frenkel <[email protected]>
Gerrit-Reviewer: Roy Golan <[email protected]>
Gerrit-Reviewer: Yair Zaslavsky <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches