Key: |
QB-787
|
Type: |
Improvement
|
Status: |
Resolved
|
Resolution: |
Fixed
|
Priority: |
Major
|
Assignee: |
Robin Shen
|
Reporter: |
Robin Shen
|
Votes: |
1
|
Watchers: |
0
|
If you were logged in you would be able to see more operations.
|
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
|
Currently the load balancing algorithm works like below when determine node to run a specific step:
1. calculate the set of matching nodes for a step.
2. if the set contains no node, report error.
3. if the set contains only one node, select that node.
4. if the set contains two or more nodes, QB continues to get the load of each node and select the least loaded node.
This algorithm has a drawback when multiple builds are set to run concurrently from a trigger build step: there is a latency between the time when master step of a build is assigned to a node (which happens at server side), and the time when the load of that node is updated to reflect that step (which happens at agent side when the step is executed). QuickBuild could assign multiple builds to the same agent as builds on that agent may not start to run and load of that agent is still calculated as 0.
For builds not started in the same time (which will hold true for most cases if builds are started manually or by different schedulers), this algorithm will work as expected.
|
Description
|
Currently the load balancing algorithm works like below when determine node to run a specific step:
1. calculate the set of matching nodes for a step.
2. if the set contains no node, report error.
3. if the set contains only one node, select that node.
4. if the set contains two or more nodes, QB continues to get the load of each node and select the least loaded node.
This algorithm has a drawback when multiple builds are set to run concurrently from a trigger build step: there is a latency between the time when master step of a build is assigned to a node (which happens at server side), and the time when the load of that node is updated to reflect that step (which happens at agent side when the step is executed). QuickBuild could assign multiple builds to the same agent as builds on that agent may not start to run and load of that agent is still calculated as 0.
For builds not started in the same time (which will hold true for most cases if builds are started manually or by different schedulers), this algorithm will work as expected. |
Show » |
|