程序写文件已经返回成功,断电重启后数据为什么仍可能消失?这一集沿着应用缓冲区、Linux 页缓存、文件系统和存储设备,拆开“写入成功”“其他进程可见”和“真正持久化”的区别。
还会讲清 fsync、原子重命名、目录同步和文件系统日志,并给出可靠替换配置文件的完整操作顺序。
重点内容:
- 普通写入为什么通常先进入页缓存
- 脏页和后台回写如何工作
- 写入成功为何不保证数据已经落盘
- fsync 与 fdatasync 有什么区别
- 原子重命名为什么不等于持久化
- 如何可靠地替换一个重要文件
英文词对照:
- Page Cache:页缓存
- Dirty Page:脏页
- Writeback:后台回写
- Durability:持久性
- Metadata:元数据
- Partial Write:部分写入
- Atomic Rename:原子重命名
- File System Journal:文件系统日志
- Write-ahead Log:预写日志
