帮助我更好地理解这些我无法完全掌握的概念。
谈论 aws S3 一致性模型,我将尝试解释我掌握的内容。
请消除或确认我这些说法。
首先
- 谈论“写后读”仅与“新作品”/创建以前不存在的对象有关。
- 谈论“最终一致性”与“修改现有对象”(更新或删除)有关
这些第一个概念是否正确?然后,
最终一致性:在数据完全写入节点之前访问数据的“客户端”可以读取对象的旧版本,因为写入可能仍在进行中,即对象可能尚未被提交。这是在分布式系统中普遍容忍的行为,在这种情况下,这种类型的一致性优于其他选项,即在提交对象时等待某种锁被移除。
写后读一致性:对象立即可供客户端使用,客户端将读取对象的“真实”版本,而不是旧版本,如果我理解得很好,这仅适用于新对象。
如果是这样,为什么这些复制方法如此不同?并产生这种不同的一致性?
“最终一致性”的概念更容易理解,因为您必须考虑将数据传播到不同节点的“延迟”,并且客户端可能在此期间访问并且尚未获得新数据。
但是为什么“写后读”应该是立即的?传播对现有基准的修改或创建新基准,应该具有相同的延迟。我无法理解其中的区别。
你能否告诉我我的主张是否正确,并以不同的方式解释这个概念。