TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM
背景动机
- 基于 NVM 的单层存储 SLS
- 现有的 SLS 大部分还是基于 DRAM + 闪存的两层结构,靠软件检查点提供单层的抽象,性能开销大,检查点频率低
- 全系统持久化一方面希望对应用透明,另一方面还要对外部同步
- 微内核的 Capability Tree 结构简单,其他系统服务状态可以直接按照用户程序内存数据来持久化
方法和贡献
- 基于 NVM 和微内核 Capability Tree 结构和检查点的全系统持久化 SLS
- 透明外部同步性
设计
- 定期停机,让所有处理器核进入内核态等待,其中一个核负责将系统的 Capability Tree 做检查点持久化
- 检查点管理器使用日志系统维护自身的持久化,避免自举问题
- 内存页分冷热处理,热页在停机的时候持久化,冷页先标记成只读,等应用尝试修改的时候触发页错误,再持久化