Locally run independent parts of workflows at the same time
When a workflow has components that can be ran simulatentously locally we should attempt to do so, for example lets take the following workflow.
A ---- B ---- C
| ---- Z
D ---- E ------
Notice Z can not be ran before "D-E" have finished and "A-B-C" have finished but both of those 2 (D-E and A-B-C) could be ran at the same time since they have no dependence on each other. It would be interesting to see how we can accomodate this type of pattern without having to bring in the more heavy weight distributed pattern (which should also solve this).
Perhaps by determing the independent tasks (maybe by finding topological sort of the graph and then examing the topological sort to determine what can be ran in parallel? Maybe the subgraphs in the workflows - https:/
After finding these 'groups' then run each group using greenthreads/
Blueprint information
- Status:
- Complete
- Approver:
- Joshua Harlow
- Priority:
- Medium
- Drafter:
- Joshua Harlow
- Direction:
- Needs approval
- Assignee:
- Joshua Harlow
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Needs Code Review
- Milestone target:
- None
- Started by
- Joshua Harlow
- Completed by
- Joshua Harlow
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add a locally running threaded flow.