返回首页最新优先
层栈(LayerStack)架构
一份持久的文件系统真值,多个彼此隔离的工作区。
层栈通过最新优先的 manifest 对不可变 B、L、S 层排序。每个会话租借这条层链,借助 OverlayFS 和私有 upperdir 投影出工作区,并且只能通过带冲突检测的原子发布来改变持久真值。
层栈是持久的,执行视图是租借的,更改是私有的,发布是原子的。
持久核心
manifest.json
L000024已发布增量
S000018已压缩区段
B000001共享基础层
可见顺序
由 manifest 决定
保留策略
由租约固定
层栈闭环
工作区是临时投影;发布把它的更改送回层栈。
存储与命名空间进程底座是两个独立根节点。它们在租借的 overlay 视图中相遇;只有捕获与发布完成闭环,私有更改才会持久化。
持久真值
层栈存储
manifest 定义可见文件系统。不可变层保存基础字节、已发布更改和压缩历史;租约决定哪些内容可以回收。
manifest有序视图
B* · L* · S*不可变字节
leases稳定固定
租借投影
Overlay 工作区视图
固定的 lowerdirs 与全新的 upperdir 在 holder 的挂载命名空间中组合成一个工作区。
私有更改
执行与编辑
命令和实时文件操作读取联合视图;每次写入、copy-up 和删除都只留在会话 upperdir 中。
返回路径
捕获、解决冲突,并前置一个 L* 层
upperdir 更改
逐路径 OCC
原子发布
发布会把解决冲突后的更改集前置到层栈 manifest,从而闭合整个循环。
压缩是维护侧循环。 它会压缩符合条件的 L/S 区段,并在不改变可见字节的前提下重新挂载安全的在线会话;它不是每次请求的终点。
- 持久
- 一个最新优先的 manifest 对不可变 B、L、S 层排序。
- 稳定
- 租约固定在线会话实际使用的 lower 层链。
- 私有
- 命令和文件操作只修改会话自己的 upperdir。
- 原子
- 解决冲突后的更改集要么成为一个新 L 层,要么发布被拒绝。
按边界阅读
从你需要回答的架构问题开始。
各章节沿用同一个闭环,但每章只负责一条具体边界。
