谁来承担额外工作?CDN 参与者如何协商资源

发生事故时,例如某个 CDN 组件遭到入侵,系统可能需要额外准备一批数据供检查使用。能以更低成本完成这项工作的参与者,未必能及时提供结果。如何选择执行者,同时保留主分发业务所需的资源?

来看一个假设场景。检查智能体请求为分析准备一份数据集,并说明自己需要在什么时刻能够使用准备好的结果。评估时,要计入获取输入和处理数据的时间,以及传输结果或使结果可供访问所需的时间。

这项额外工作有明确的资源预算。主分发业务的预留资源必须保留:不能因为发生了事故,就把这部分资源也交给数据准备任务使用。

参与者自行提出条件

独立的计算节点和广告缓存节点都可以响应请求。在这个例子中,两者均有权处理指定数据,缓存节点也具备相应的计算能力。输入数据已在缓存节点本地可用;计算节点则需要先接收这份数据。

各参与者从自身情况出发,评估当前负载、所需输入、可用资源和已承担的义务,再决定是否提出执行提议,以及附带哪些条件。

  • **计算节点的提议 A:**可以在收到数据集后进行处理;提议中说明所需数据和处理耗时。
  • **广告缓存节点的提议 B:**可以利用本地数据,在获准的额外资源预算内完成准备,同时兼顾主业务。

选择时必须保留提议附带的条件。如果参与者只有在收到数据后才能开始,编排器就必须计入这项依赖。仅凭处理耗时,无法判断请求方何时能使用准备好的结果。在形成提议之前,参与者可以拒绝这项额外工作。

从方案选择到承诺确认

编排器收到提议,并结合任务上下文评估完整方案。这里假设数据和提议中的估计在本轮内保持有效。两个方案的总成本针对同一项工作,以相同单位计算,且都包含必要的数据传输成本。

设 A 的总成本低于 B。但根据估计,计算节点完成输入获取和处理时,已经晚于检查智能体需要结果的时刻。因此,A 被排除:它无法在需要的时刻提供结果。不必真的运行 A,再记录一次迟到;评估这些依赖就足以作出判断。节点给出的是收到输入后的处理耗时;编排器评估的则是智能体何时能使用结果。

对 B 的评估覆盖数据准备以及结果对检查智能体可用的全过程。必要的传输或使结果可供访问所需的时间,也都计入其中。在本例条件下,缓存节点能够及时提供结果,满足获准的预算,并保留分发业务的预留资源。检查约束后,剩下的是缓存节点的提议。

这个选择体现了一个顺序:**先判断完整方案是否满足整体任务的约束,再在满足约束的方案中比较成本。**本轮只有 B 满足约束;这个例子并没有求出整个 CDN 的全局最优资源分配。

开始之前,缓存节点还要确认条件和资源可用性,并承诺让智能体在请求指定的时刻能够使用结果。如果条件已经变化,本次任务分配就不能算作已达成一致。编排器作出选择,不等于参与者已经作出承诺;作出了承诺,也不等于工作已经完成。

在这个假设场景的后续过程中,数据准备完成:检查智能体在需要的时刻可以使用准备好的数据集,工作没有超出获准预算,主分发业务的预留资源也得以保留。这是单独发生的执行结果。准备好的数据集用于后续分析;分析器的判定是另一个结果。

局部决策与整体目标

在这个场景中,参与者的自主性出现在执行者被选定之前:它评估自身能力,决定是否参与,并提出条件。协商把这项局部评估与整体任务联系起来。编排器评估完整方案,同时保留参与者提出的条件。

自主性与交互能力,是 Wooldridge 和 Jennings 所描述的智能体方法的特征。1 在这里,它们用于解释参与者各自的职责;一个场景不足以证明参与者具备智能体的全部特征。

通过协商分配任务的经典例子是合同网(Contract Net):参与者评估任务公告与提议。2 本文模型只借用这层有限的类比。外部编排器、开始前的额外确认,以及同一参与者兼任不同功能的可能性,都由本模型自己的规则规定。

在这一整体性网络(holistic network)模型中,局部决策要与整体目标和约束相协调。广告缓存节点可以提出承担额外功能,但评估这项功能的价值时,还要一起考虑结果何时可用,以及主分发业务已有的义务。参与者帮助系统的可能性,由此转化为具体条件和明确的执行责任。

分析这样的任务分配时,可以检查两个问题:

  • **比较的是什么?**是否针对同一项工作,比较口径一致的总成本,以及结果对使用方可用的时间,并计入必要的数据传输和主业务的资源需求?
  • **已经发生了什么?**提议已形成、方案已选定、执行者已确认承诺,还是结果已经可用?每一步都有各自的依据。

参考资料

  1. Michael Wooldridge, Nicholas R. Jennings. Intelligent agents: theory and practice . The Knowledge Engineering Review, 10(2), 1995, 115--152. §1.1.1,作者提供的 HTML 版本。
  2. Reid G. Smith. The Contract Net Protocol: High-Level Communication and Control in a Distributed Problem Solver . IEEE Transactions on Computers, C-29(12), 1980, 1104--1113. 作者提供的 PDF,§II、§IV.A.1--4。
相关推荐
1024奇点20 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
利威尔xu1 天前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
冬奇Lab1 天前
一天一个开源项目(第252篇):Lightpanda —— 用 Zig 从零写的 AI 专用无头浏览器,内存省 16 倍、速度快 9 倍
人工智能·开源·资讯
IT召唤狮1 天前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
薛定谔的猫-菜鸟程序员1 天前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
wflynn1 天前
GitHub 日榜趋势速报 | 2026-11-02
开源·github
时早玖沐1 天前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent
GPUStack1 天前
官方说不支持?但我还是用 GPUStack 在 DGX Spark 上跑通了 Qwen-Image-2.1
开源·gpu
SL_staff1 天前
HR系统对接钉钉考勤总失败?根源在于缺乏业务语义级逻辑中枢
java·开源·全栈
miofly1 天前
Meta 816B 参数 Muse Spark Open 在 NVIDIA GB300 上实现每 GPU 50K tokens 每秒
开源·github