多级优先队列(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
Author:undefined Create time:2025-04-28 17:16
Last editor:zwk Update time:2025-05-04 17:54
Last editor:zwk Update time:2025-05-04 17:54