Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

报告 007 · 提供者核对、取消与回收

文档索引 · 总体设计 · 研究状态

日期:2026-09-19。证据类型:受控子进程与本地持久化实验;不是网络、Kubernetes 或设备实测。

1. 问题与实验条件

E0/E8b 已说明效果与回执分离会产生 unknown。本实验检查恢复时怎样处理缺失查询、迟到接纳、去重记录过期,以及取消、退出和效果判定之间的关系。

执行前固定了12 个场景。实验脚本只使用 Python 标准库;父进程驱动提供者接纳与恢复策略,实际效果由独立工作进程写入 world 数据库。provider 数据库另存接纳与回执,二者各自 SQLite WAL/FULL,没有共同事务。管道屏障固定效果前和效果后、终态前两个切点。

环境为 Python 3.14.7、SQLite 3.53.4。网络套接字创建被沙箱以 EPERM 拒绝,未发现 kubectl/kind/minikube/k3d 或 NVIDIA 工具及设备节点,因此改用管道;完整探测记录保留。最初探测脚本在 socket 构造处提前退出,随后仅修正探测的异常捕获并完成记录;未执行网络实验,也未连接已有集群。

恢复策略只读取 provider 记录;world 表仅用于事后评分。取消是否合作、键是否保留和是否支持原子关闭均为显式实验变量,不假装所有服务具有这些能力。效果缺失回执通过屏障保留,未注入真实网络丢包。

2. 结果

一次完整执行包含 12 例、15 个工作子进程、2 次 SIGKILL、107 项断言,实验错误 0。断言包括屏障、退出和预期反例,107 不是独立样本数量。各场景为确定次序,无概率或性能推断;完整逐事件结果包含全部决策、查询及效果真值。

场景实测结果可以据此修订的设计
A1 缺终态后换键重试效果 2 次缺失完成回执不能触发新业务键执行
A2 查原接纳并等待效果 1 次;同键换参数被拒绝在接纳记录仍保留且原工作存活的范围内,沿用原键核对可避免重开工作
B1 查询无记录后迟到接纳已宣称 not_applied,随后实际效果 1 次即便本地查询当时准确,无记录也不能关闭仍在途的请求
B2 原子关闭键后迟到接纳请求被拒绝,效果 0 次关闭证明还须包含后续同键接纳被拒绝;这是额外提供者契约
C1 删除键与回执后同键重投累计效果 2 次稳定键离开其保留范围后不再自动幂等
C2 删除详情但保留禁止重开墓碑累计效果 1 次;重投被拒绝阻止重开与恢复详细结果是两种能力;墓碑不重建丢失回执
D1 取消受理即归还额度容量 1 同时出现 2 个存活工作进程受理取消不能证明已释放实际占用
D2 等原工作退出再放行最多 1 个;前后两个工作均完成等待可维持互斥但增加后继等待;不是靠拒绝所有工作通过
E1 效果前合作取消效果 0,not_applied,进程退出可信提供者的效果前停止路径可以给出未发生证据
E2 效果后才取消效果 1,confirmed,进程退出迟到取消不能覆盖已发生事实
F1/F2 效果前/后 SIGKILL提供者可见记录完全相同,实际效果 0/1;进程均已退出停止证据与效果证据必须独立;已无本地计算不代表动作未发生

3. 不可区分性与适用范围

F 两例在恢复侧均看到同一个键、相同参数摘要、running、无取消、无回执;真值分别为 0 与 1。只以该记录和“进程已退出”为输入的判定无法同时正确输出两个不同结论。因此在本实验观察能力下保留 unknown 是必要的;增加可信目标侧查询可以改变观察能力,并未被否决。

B 说明“当时没有接纳”与“以后也不会接纳”不同。候选 not_applied 证据应带身份、范围及关闭条件;单次缺失、等待一个固定时长或删除某个对象都不能自动提供这个条件。原子关闭、拒绝过期请求或停止所有派发通路各有契约,当前只测试原子关闭的给定顺序。

D 测量的是实际存活且占用实验席位的工作进程,不是 GPU kernel、CPU 忙占时间或设备停止时延。F 的 wait/退出只覆盖该直接子进程;它若再派生远端任务,退出也不能证明远端已停止。本实验没有子任务树、网络服务、权威域接管或提供者自身崩溃;接纳到启动之间的恢复也未覆盖。

4. 设计决定

  • 修改查询契约。 区分已接纳、可信终态、确定关闭且未执行、记录缺失/已过期/不可达;查询附对象身份、适用范围和证据时点。缺失不转 not_applied。
  • 修改回收粒度。 按资源分别保存停止与回收证据。可确认释放的本地计算席位可先归还;未知效果的核对责任、语义冲突和未核实的远端占用继续保存。
  • 保留业务键及保留边界。 同键绑定参数,超过保证窗口停止自动重投;自主提供者可研究墓碑或过期拒绝。外部服务无此能力时保留 unknown,不以新键绕过。
  • 明确等待的终点。 核对有预算、下次时间及负责人;耗尽核对预算进入待处置状态,不自动改成成功、未发生或释放全部责任。新行动或补偿是新决策,旧证据保留。

平台与 GPU 的具体适配由一手资料论证补充。资料能排除不成立的保证,不能替代真实集群和显卡验证。

运行命令:python3 experiments/provider-reconciliation/experiment.py --output experiments/results/provider-reconciliation.json。脚本拒绝覆盖已有输出,复跑应换路径。预登记与脚本在本实验执行后保持不变;实验首次完整运行通过,无实验失败被覆盖。

材料SHA-256
预登记 README.md504769ca92a1eafefc39b72c5f3128bdbfc396b5e71ec8436ae85ba2da7e6e9a
experiment.pyd6a6efc6ee7c6c3c680a873316b0097e5392fa2fb2c323e900315651929a7a56
provider-reconciliation.json4691eefcae437d9c40f09cf2a6a78e124dcdec2858ef617ad8083ccaa7b47027

临时数据库用于独立场景,结束后清理;效果行、查询、屏障、进程退出码已保存到原始 JSON。既有 E0~E8b 的脚本与数据未修改。

数据可用性

本报告公开实验条件、汇总统计和失败分析。原始输入、脚本及逐次运行记录未随报告发布,因此不能仅凭本文独立复现实验。