[Swift-devel] How to the maximum number of concurrent jobs allowed on a site to a fixed size?
Yi Zhu
yizhu at cs.uchicago.edu
Thu Aug 6 16:50:35 CDT 2009
Hi Mihael
Now, I just set the initialScorer to a ridiculously high value (e.g.
10000), and swift seems can automatically scale it down to the range,
and then I set the throttle.factor according, therefore I could get a
fixed maximum number according to the formula:
2+ score (range 0.1 -100)* throttle.factor
-Yi
Mihael Hategan wrote:
> 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