[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