多级优先队列(Multi-level Priority Queues)
传统优先队列是一个单Heap,工业界往往做成:
多级桶(Multi-level Buckets),每个桶一个小优先队列
按大粒度优先级划分,在小粒度内做局部Heap排序

失败局部隔离(Failure Isolation)
如果一个子图爆炸(大量节点失败),不应该影响整个系统。
工业调度系统会局部熔断(只冻结失败的子图)
其他正常子图继续调度

分钟
小时


BFS DAG 图得到每一层的节点结合,并加权按优先队列存数据库表

执行调度时,按矢量关系(按业务情况和上级优先级等子图拆分),拆分,得到若干个子级联队列,然后分治到子集群,再逐级调度,最后归并执行情况汇总

插入任务节点时,自动往BFS memo表中插入自己,避免重复遍历

然后定时根据资源消耗情况、平均执行时间等指标,动态调整每个层优先队列里面的权重

insert into xxx
select count(down.id) as down_cnt, id from (
select
id
from
dag as up
where id in ( select id from queue where name = ‘pre’ )
left join dag as down
on down.parent_id = up.id

order by down_cnt

Vector DAG(矢量DAG)V0
Vector DAG(矢量DAG)V0
L0
L0
L0
L0
L1
L1
L0
L0
L0
L0
L1
L1
子图(矢量可分)V1 [NLP ML]
子图(矢量可分)V1 [NLP ML]
L1
L1
L1
L1
L1
L1
PQ
PQ
子图(矢量可分)V2  [数据处理]
子图(矢量可分)V2  [数据处理]
L1
L1
L2
L2
L1
L1
PQ
PQ
L1
L1
PQ
PQ
PQ
PQ
PQ
PQ
PQ
PQ
PQ
PQ
PQ
PQ
层级优先队列
层级优先队列
1
1
2
2
3
3
最终执行优先队列
最终执行优先队列
1
1
2
2
Text is not SVG - cannot display
No.1 层
No.1 层
L1
L1
L2
L2
No.2 层
No.2 层
L1
L1
L2
L2
Text is not SVG - cannot display
Author:undefined  Create time:2025-04-28 17:16
Last editor:zwk  Update time:2025-05-04 17:54