作者:禅与计算机程序设计艺术
1.简介
大数据时代越来越普及,作为计算的基础设施,DAG任务调度系统正在成为越来越多的数据中心部署中的必备组件。本文将对现有的DAG任务调度系统架构进行分析并梳理其关键问题,从而对日后的开发提出建议和优化方向。
2.基本概念术语
(1)DAG(Directed Acyclic Graph)有向无环图
首先,先回顾一下什么是DAG,在《深入理解计算机系统》一书中,DAG表示的是一种拓扑排序算法,它要求任意一个顶点都可以从他的前驱顶点遍历到达,并且所有顶点都不出现重复的路径。如果所有的顶点都可达,则称该图为DAG。比如,图1是一个DAG。
上图中,每个圆圈代表一个节点,箭头表示边的方向,即前驱指向后继。如上图所示,只有Node C和Node D有前驱,Node E没有前驱,因此这是一个DAG。
(2)任务图(Task graph)
在当前的DAG任务调