数据调度系统中有向无环图的无环检测
名词解释
- DAG,全称:Directed Acyclic Graph,中文:有向无环图
- 入度:有向图中某点作为图中边的终点的次数之和
- 出度: 对于有向图来说,顶点的出边条数即为该顶点的出度
调度系统中的有向无环图
数据调度系统中,多个任务之间的依赖关系,用图可以表示,如下图所示,每个顶点表示一个任务,箭头方向表示任务的执行顺序。任何顶点都无法经过边回到该顶点,则该图就是无环图,即为有向无环图(DAG图)。
图1
那么在有向图中,如果有环的存在,如图示:
图2
在有环的情况下,任务3的执行需要任务5完成,而5的执行又需要3,4依次执行完成,这样就会造成死循环,此调度任务永远无法成功执行。所以在调度系统中,对于无环的检测就非常重要。
无环检测
在调度系统中,检查图是否有环,分两种场景:1. 编辑图的过程中每一步操作都需要对其做无环检测;2. 对已经存在的图进行拓扑排序,检测是否有环。