知识卡片
应用补偿存储语义
内容
在 GFS 上可靠使用数据,要依赖追加而非覆盖、记录检查点、写入自校验和唯一记录标识。发散:底层系统给出的语义越弱,上层协议就越需要幂等、校验和去重;这和消息系统的至少一次投递很像。
参考来源
- 位置:《分布式系统与一致性》第2章《Google的文件系统》一致性修复方法一节(源文件:_epub-src/OEBPS/Text/chapter6.xhtml)
- 结论依据:原文给出两种上层补偿方式:一是"写入方按一定的周期写入数据,在写入成功后,记录一个写入进度检查点,其信息包含应用级的校验数(checksum)";二是"使用record append接口,保证数据至少被成功写入一次。但是应用需要应对不一致的数据和重复数据",说明弱语义需要应用自行做检查点、校验和与去重。
- 原始内容:写入方按一定的周期写入数据,在写入成功后,记录一个写入进度检查点,其信息包含应用级的校验数(checksum)。读取方只校验和处理检查点之前的数据……使用record append接口,保证数据至少被成功写入一次。但是应用需要应对不一致的数据和重复数据。