Improve traversal in scheduler
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Solar |
Fix Released
|
Medium
|
Dima Shulyak |
Bug Description
Current implementation of traversal for tasks scheduling doesn't take into account amount of childs for each scheduled task.
Computing that information before build will allow to determine more efficient order of execution.
Example:
First path - [A] (only one task)
Second path - [B, C].
Task A and B should be executed on same node, and thus they are conflicting because of one-per node task limit, but executing B first
will allow to run A and C in paralell. Thus we need to make decision that B should be executed before A.
after building a graph, apply next algorithm to calculate weights of each node:
1. topologically sort reversed graph
2. for each successors update current_weight += 1 + current_weight
3. reverse one more time and return/save
4. before applying chain of rules - sort added tasks based on current_weight
In the end we will get recursive (includes weights of child) computation of weights for each task in graph
Changed in solar: | |
importance: | Undecided → Medium |
milestone: | none → 0.3.0 |
assignee: | nobody → Dima Shulyak (dshulyak) |
assignee: | Dima Shulyak (dshulyak) → Fuel Solar (fuel-solar-team) |
status: | New → Confirmed |
description: | updated |
description: | updated |
description: | updated |
Fix proposed to branch: master /review. openstack. org/295348
Review: https:/