知识卡片

去重系统崩溃恢复的WAL加NVRAM设计

专业/工作 · 549.h

内容

重复数据删除系统面临一个数据库式的问题:如果系统在指纹计算之后、数据真正落盘之前崩溃,这部分处理过的数据是否会丢失?借鉴数据库的预写日志(WAL)思路,任何写盘操作前先写日志,但纯粹写WAL会拖慢高吞吐场景下的性能,于是把日志改为先写入非易失内存(NVRAM),既保留了”崩溃后可从日志恢复”的可靠性,又避免了传统磁盘WAL的延迟代价。发散:这说明”事务日志”不是数据库专属的模式,而是任何需要在高吞吐和崩溃一致性之间取舍的系统都会收敛到的通用解法,区别只在于日志写到哪种介质上。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第1章《Linux开源存储》