[Swift-devel] How to the maximum number of concurrent jobs allowed on a site to a fixed size?
Mihael Hategan
hategan at mcs.anl.gov
Thu Aug 6 16:41:54 CDT 2009
On Thu, 2009-08-06 at 15:15 -0500, Yi Zhu wrote:
> Hi, all
>
> As we've already know, Swift dynamically change the maximum number of
> concurrent jobs allowed on a site based on the performance history of
> that site. According to swift Document: Each site is assigned a score
> (initially 1), which can increase or decrease based on whether the site
> yields successful or faulty job runs. The score for a site can take
> values in the (0.1, 100) interval. The number of allowed jobs is
> calculated using the following formula:
>
> 2 + score*throttle.score.job.factor
>
> We can change the throttle.score.job.factor in sites.xml or
> swift.properties files, but since the "score" value can be
> increased/decreased during the execution, It seems that we can not
> really set the maximum number of concurrent jobs allowed on a site to a
> fixed number. Anyone have any idea of that?
Can you rephrase the question?
The number of jobs running on a site is a function of the current demand
for that site and some monotonically increasing function of the score:
nj = f(d, g(s)) = min(d, g(s))
The score is a function of time (roughly):
s = s(t)
Assuming demand is higher than the job limit (g) (which is the case when
you're interested in limiting nj):
d > g(s) => min(d, g(s)) = g(s)
So
nj = g(s(t))
Now, you know that s(t) is bounded (by default (0.01, 100) - max is open
so assume limits instead of equality), and since g is monotonically
increasing and g(max_score) is finite, it follows that max(g(x)) is
g(max_score). So there there is a fixed number of concurrent jobs
regardless of time/score (max(g(t))) as well as a maximum number of
concurrent jobs at each time point (i.e. for each score) (g(t)).
Mihael
More information about the Swift-devel
mailing list