[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