私有可写增量
每个 attempt 独有 upperdir
内容定义分块在 LayerStack 的不可变 B/L/S 层之下,为变化的文件内容赋予稳定身份。在普通原生 OverlayFS 上保留命令热路径的同时,减少重复载荷。
存储契约
密封检查点记录逻辑目录树和不可变增量层。在发生变化的常规文件 extent 内,内容定义分块器推导稳定对象身份。这些身份让复用、验证、保留和后续后端投影变得明确,同时不会用用户态文件系统替换 OverlayFS。
从捕获到执行的路径
捕获读取的是已静止的私有 upperdir,而不是合并后的工作区。产生的增量可被物化为普通不可变原生 lowerdir。随后命令经由 OverlayFS 读取 lowerdir,正常命令路径上没有 pack、manifest 或 index 查询。
捕获平面
每个 attempt 独有 upperdir
只扫描发生变化的已分配字节
可复用内容保持稳定
类型化身份 · 已验证载体
持久状态平面
偏移、空洞、元数据
兼容原生 B/L/S 的层
最新优先 · 租约固定根
原生 lowerdir 投影
内核 OverlayFS 工作区
命令 / PTY
空间优化
OverlayFS 所需的原生不可变层通常就是密集文件内容的物理载体。打包存储只用于元数据、小对象和没有存活原生载体的数据。索引把稳定身份映射为已验证位置,而不是把每个 chunk 都变成永久重复文件。
热分支新增 0 字节
子节点租用已有不可变根,而不是克隆它。
仅变化量
私有 upperdir 随真实写入增长;密封层仅保存新增的唯一内容。
打包且有界
清单、路径、blame、日志和小对象避免每对象一个 inode 的开销。
内容身份
当边界保持稳定时,修改后的文件仍可保留可复用内容。
指每次热本地分支,而不是总存储为零。父 lower 根仍存在,并由租约固定。
原生 extent 通常就是持久载体;CAS index 记录其位置和完整性凭据。
发布捕获私有 upperdir 增量,不会把合并工作区 checkout 持久化为增量。
分配、reflink 行为、稀疏支持和 OverlayFS 语义必须在真实 Docker 支持的 Linux 存储域上测量。
渐近记账
Big-O 描述逻辑/存储工作。内核挂载开销、文件系统延迟、缓存状态、lower 链深度和 Docker 存储能力仍是需要实测的常数或独立门槛;它们不会因符号表示而消失。
| 操作 / 成本 | 当前整文件增量 | 目标 CDC 增量 | 变化点 |
|---|---|---|---|
| 创建 / 分支逻辑子节点 | 时间 O(1) · 空间 O(1) | 时间 O(1) · 空间 O(1) | 渐近复杂度不变。两者都新增 NodeId、root 引用、租约和来源信息,而不是复制 lower 载荷。 |
| 激活热本地子节点 | 时间 O(L) · 空间 O(1) | 时间 O(L) · 空间 O(1) | 渐近复杂度不变。两者都组装 lowerdir 链与私有运行时状态。 |
| 捕获并密封变化文件 | 时间 O(F + P) · 空间 O(F + P) | 时间 O(Δ + P) · 空间 O(U + C + P) | 基线保留每个变化整文件的全部字节;CDC 只保留新增内容以及段与文件系统元数据。 |
| 冷 hydration | 时间 O(R) · 空间 O(R) | 时间 O(R) · 空间 O(R) | 渐近复杂度不变。缺失的原生根必须先物化一次,工作节点才能转为热状态。 |
| N 次连续修订 | 空间 O(ΣFᵢ) | 空间 O(ΣUᵢ + ΣCᵢ + ΣPᵢ) | 稳定边界可以跨版本保留未变化区域。 |
| 最坏情况的变化内容 | 空间 O(F) | 空间 O(F) | 当每个字节都是新内容或无法复用边界时,CDC 没有渐近空间优势。 |
| Command / PTY I/O | 原生 OverlayFS 路径 | 原生 OverlayFS 路径 | 两个命令热路径上都不进行 CAS 重建。 |
与当前基线对比
当前基线将发生变化的常规文件整体作为不可变原生层载荷进行捕获。它已经让命令执行保持在原生 OverlayFS 上,也不会在热会话中克隆完整合并目录树。CDC 目标改变的是持久载荷表示,使被编辑文件能够保留实际未变化的内容。
文件 v1·完整原生载荷
文件 v2·再次完整载荷
文件 v3·再次完整载荷
chunk A·复用
chunk B′·新增
chunk C·复用
研究 lanes
四条 lane 都保持相同的 LayerStack B/L/S 与原生执行契约。L1 隔离 packed-CAS 布局;L2–L4 改变内容定义边界算法。它们最终的空间和时间表现必须通过同一组容器化测量门槛证明。
以冻结的 selective FastCDC 边界控制原生载体 / 打包元数据的混合存储布局。
测试顺序内容定义边界及其复用/CPU 权衡。
测试具有标量/SIMD 等价性要求的精确 Gear64 边界。
在相同存储契约下测试向量化非对称极值边界。