Algorithm Descriptions - PanDAWMS/panda-jedi GitHub Wiki
Meant to record descriptions of algorithms in JEDI modules
Analysis Job Throttle
Also known as Analysis Job Stabilizer
Implemented in analysis brokerage.
Algorithm
- 
First, we decide whether the PQ can be throttled. The PQ will NOT be throttled if it does not have enough queuing jobs; that is, when any condition of the following is satisfied: - nQ(PQ) < BASE_QUEUE_LENGTH_PER_PQ(say 100)
- nQ(PQ) < BASE_EXPECTED_WAIT_HOUR_ON_PQ * trr(PQ)(say 8 hours of queue length)
 
- 
If the PQ does not meet any condition above, it can be throttled. Then we compute the nQ_max(PQ)(i.e. the affordable max queue length of each PQ), which is the max among the following values:- BASE_QUEUE_LENGTH_PER_PQ(say 100)
- STATIC_MAX_QUEUE_RUNNING_RATIO * nR(PQ)(say 2 *- nR(PQ))
- MAX_EXPECTED_WAIT_HOUR * trr(PQ)(say 12 hours of queue length)
 
- 
Next, we compute what percentage of nQ_max(PQ)is for the user:- percentage(PQ, user) = max( nR(PQ, user)/nR(PQ) , 1/nUsers(PQ) )
 
- 
Finally, the max value among the following will be used to throttle nQ(PQ, user)(i.e. make the task pending ifnQ(PQ, user)> the max of the following values)- BASE_DEFAULT_QUEUE_LENGTH_PER_PQ_USER(say 5)
- BASE_QUEUE_RATIO_ON_PQ * nR(PQ)(say 5% *- nR(PQ))
- nQ_max(PQ) * percentage(PQ, user)