0.2.0
通用 LayerStack
可移植根身份与原生物化
0.2.x 被拆分为按依赖排序的发布切片。每个切片都保持当前运行时可用,新增一项持久契约,并在后续层依赖它之前通过正确性、恢复、可移植性与性能门槛。
交付策略
关键顺序从运行时无关的根与原子检查点发布开始。只有状态不变量得到证明,图 API、rollout 调度和异构执行器才在其上叠加。
0.2.0
可移植根身份与原生物化
0.2.1
持久节点、attempt、OCC、租约与恢复
0.2.2
有界调度、评估器、轨迹与幂等性
0.2.3+
OCI/Linux + WASI 适配器与局部性感知工作节点
补丁版本标签用于表达顺序,并不承诺每项能力恰好落在单一补丁版本。退出证据决定边界。
发布切片
0.2.0
退出门槛
同一根通过可移植清单 walker 和原生 OCI 投影验证一致;冷根仅 hydration 一次,热复用不引入重建读取路径。
0.2.1
退出门槛
崩溃与竞态测试证明原子密封、兄弟隔离、热分支 lower 数据载荷零重复、过期提升拒绝和租约安全 GC。
0.2.2
退出门槛
大型图通过有界工作节点池运行;强制重试不会重复计算结果;非活跃节点不占进程或挂载;恢复保留前沿租约。
0.2.3+
退出门槛
图可依据声明能力在受支持后端上可复现地选择;跨后端逻辑根验证等价;目标镜像不提供 LayerStack 工具或持久检查点事实。
验证计划
测试套件区分算法可行性与环境设置问题。拒绝任何存储方案之前,每项失败必须分类为语义、恢复、兼容、能力、性能或 harness/setup。
| 通道 | 证明内容 | 代表性证据 | 阻断发布 |
|---|---|---|---|
| 正确性 | 隔离、不可变根、OCC、合并与提升语义 | 并发兄弟写入、冲突发布、清单等价性 | 是 |
| 恢复 | 日志、租约、密封、重试、评估与 GC 幂等性 | 在每个持久转换点注入崩溃 | 是 |
| 可移植性 | 受支持 Docker 主机/镜像与 WASI 逻辑等价 | Ubuntu Linux/arm64 与 amd64 容器;最小目标镜像 | 是 |
| 能力 | 具备或缺少所需执行器权限时行为明确 | 挂载探针、namespace 探针、fail-closed 诊断 | 是 |
| 性能 | 分支、激活、命令 I/O、密封、hydration 与 GC 成本 | 中位数、尾延迟、分配字节、page cache、CPU 与耗时 | 回归预算 |
| 规模 | 大型持久图下驻留有界 | 前沿宽度、历史深度、重试风暴、工作节点丢失 | 是 |
基准测试契约
Inputs
工作区大小 · 历史深度 · 扇出
Measures
元数据字节 · 数据载荷字节 · 延迟
Inputs
热/冷根 · 镜像大小 · 后端
Measures
hydration 字节 · 挂载/启动延迟 · CPU
Inputs
读写比例 · 文件数 · 工作集
Measures
吞吐量 · p50/p95/p99 · page-cache 影响
Inputs
变化字节 · 路径数 · 元数据变化
Measures
捕获时间 · CAS 写入 · 清单大小
Inputs
崩溃点 · 图规模 · 租约数
Measures
恢复时间 · 孤儿数 · 完整性违规
Inputs
可达集合 · 已裁剪子树 · 缓存压力
Measures
回收字节 · 暂停时间 · 错误回收
| Docker Desktop 主机 | macOS arm64 | Linux VM / arm64 | OCI 快速路径 |
|---|---|---|---|
| 原生 Linux 主机 | Ubuntu arm64 | Linux / arm64 | OCI 快速路径 |
| 原生 Linux 主机 | Ubuntu amd64 | Linux / amd64 | OCI 快速路径 |
| 最小目标镜像 | 任意受支持 Docker 主机 | Linux / 匹配架构 | 无辅助工具 |
| WASI 运行时 | 与主机无关的运行时 | wasm32-wasi | 能力约束文件系统 |
风险登记表
| 风险 | 信号 | 缓解措施 | 门槛负责人 |
|---|---|---|---|
| 不同运行时挂载能力不一致 | Overlay 探针失败或给出误导性 EPERM/EINVAL。 | 预检能力、fail closed、权限限制在执行器边界、记录受支持运行时契约。 | OCI 执行器 |
| 可移植清单泄漏本地文件系统身份 | 跨工作节点验证在 inode/path/whiteout 语义上不同。 | 规范 schema、后端一致性语料、不用本地路径或 inode 作为身份。 | 状态平面 |
| O(1) 分支把成本转移到激活 | 冷根或深根反复 hydration 并主导 rollout 时间。 | 已验证工作节点缓存、局部性感知放置、分别衡量冷热曲线。 | 调度器 |
| GC 与选择发生竞态 | 激活时前沿节点丢失祖先或对象。 | 租约固定祖先闭包、epoch/可达性屏障、对抗性并发 GC 测试。 | 存储 |
| 重试破坏搜索统计 | 奖励或访问次数超过已接受 rollout 数。 | 幂等键、追加式接受记录、事务性反向传播。 | Rollout 服务 |
| 过度承诺 WASI 语义 | 工作负载依赖契约外 syscall、链接、mode 或进程行为。 | 能力声明、兼容测试、明确 OCI-only 工作负载分类。 | 执行器 API |
| 兼容层永久存在 | 旧 session-only 路径获得新功能或绕过图来源。 | 弃用遥测、单向功能策略、客户端迁移后设置移除门槛。 | 产品 API |
| 基准测试掩盖设置缺陷 | 方案在算法真正运行前失败。 | 区分 setup 与语义失败、发布探针与产物、拒绝前要求自查。 | 发布工程 |
完成定义