预写日志(WAL)被广泛应用于文件系统和存储行业,借鉴于数据库系统的事务概念,主要解决的问题是崩溃一致性,其核心理论有如下两点:
1、磁盘提供的原子性保证:磁盘制造商需要保证任何 512 字节 (大多数磁盘扇区大小都是这个值)写入都会发生或不发生(永远不会半写)。
2、先写入被指对象(即用户数据),再写入指针对象(即元数据)(崩溃一致性的核心)。
参考链接:操作系统导论(西邮陈莉君译)第42章
中文翻译版本:译序 - 日志:每个软件工程师都应该知道的有关实时数据的统一抽象
另外推荐一些比较好的学习书籍:
1、《数据密集型应用系统设计》
4、周志明的架构课程