知识卡片
松弛一致性契约
内容
GFS 把文件区域区分为 consistent 与 defined:并发成功写可能让所有副本一致,却不保证内容属于某个客户端完整写入;失败写还可能让副本分歧。发散:松弛一致性不是“没一致性”,而是把哪些异常要由应用承担说清楚。
参考来源
- 位置:《分布式系统与一致性》第2章《Google的文件系统》状态定义一节(源文件:_epub-src/OEBPS/Text/chapter6.xhtml)
- 结论依据:原文区分"一致的(consistent)"——"无论从哪个副本读取,所有客户端总是能看到相同的数据"——与"界定的(defined)"——数据变更后"客户端可以看到这次数据变更写入的所有数据";并说明写入失败时"副本之间会出现不一致性",record append填充区域也被视为不一致。
- 原始内容:无论从哪个副本读取,所有客户端总是能看到相同的数据,这称为一致的(consistent)。在一次数据变更后,这个文件的区域是一致的,并且客户端可以看到这次数据变更写入的所有数据,这称为界定的(defined)……如果写入失败……副本之间会出现不一致性。