|
From: <b_...@us...> - 2008-07-19 14:46:55
|
Revision: 2070
http://cogkit.svn.sourceforge.net/cogkit/?rev=2070&view=rev
Author: b_z_c
Date: 2008-07-19 14:46:28 +0000 (Sat, 19 Jul 2008)
Log Message:
-----------
delay based overload calculation was treating a site as overlaoded forever, rather than being non-overloaded after appropriate delay.
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java 2008-07-17 20:08:57 UTC (rev 2069)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java 2008-07-19 14:46:28 UTC (rev 2070)
@@ -158,15 +158,21 @@
long delay = now - lastUsed;
long permittedDelay = (long) (Math.exp(-(score.doubleValue())) * 100.0);
boolean overloaded = (delay < permittedDelay);
+ int d = (int) (delay - permittedDelay);
// tscore of -1 will give delay of around
// 200ms, and will double every time tscore goes
// down by one (which is once per failed job? roughly?)
if (logger.isDebugEnabled()) {
logger.debug("In delay mode. score = " + score + " tscore = " + tscore
+ ", maxload=" + ml + " delay since last used=" + delay + "ms"
- + " permitted delay=" + permittedDelay + "ms overloaded=" + overloaded);
+ + " permitted delay=" + permittedDelay + "ms overloaded=" + overloaded+ " delay-permitted delay="+d);
}
- return (int) (delay - permittedDelay);
+
+ if(d>0) {
+ return 0; // not overloaded
+ } else {
+ return d; // overloaded, with negative value being the delay
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|