Amazon web services 对于S3中的新对象,写后读一致性到底意味着什么?
亚马逊文档()说明: “Amazon S3在所有区域为S3存储桶中的新对象提供读写一致性,但有一个警告。” 忽略警告,这意味着在对新对象执行PUT之后发出GET的客户机保证得到正确的结果。我的问题是,如果GET是从另一个客户(而不是进行看跌期权的客户)发行的,担保是否也适用(当然假设GET按时间顺序跟随看跌期权)?换句话说,读写一致性是简单地读写一致性,还是对所有客户端都有效Amazon web services 对于S3中的新对象,写后读一致性到底意味着什么?,amazon-web-services,amazon-s3,eventual-consistency,Amazon Web Services,Amazon S3,Eventual Consistency,亚马逊文档()说明: “Amazon S3在所有区域为S3存储桶中的新对象提供读写一致性,但有一个警告。” 忽略警告,这意味着在对新对象执行PUT之后发出GET的客户机保证得到正确的结果。我的问题是,如果GET是从另一个客户(而不是进行看跌期权的客户)发行的,担保是否也适用(当然假设GET按时间顺序跟随看跌期权)?换句话说,读写一致性是简单地读写一致性,还是对所有客户端都有效 我怀疑答案是它在全球范围内有效,但无法找到一个明确的答案 我一直认为你也是这样,即写后读适用于所有客户机,而不仅仅是写过
我怀疑答案是它在全球范围内有效,但无法找到一个明确的答案 我一直认为你也是这样,即写后读适用于所有客户机,而不仅仅是写过的客户机 这篇博文似乎证实了这一点(无论其价值如何),但我也没有在官方AWS文档中找到任何明确的答案: 写入一致性后读取什么? 写后读的一致性使事情变得更紧凑,保证 新数据对所有客户端的即时可见性。先读后写 一致性,新创建的对象、文件或表行将 立即可见,无任何延迟
是的,这是一致的 “客户机”的概念无关紧要,因为每个API调用都是独立的
us-east-1
地区(以前称为us Standard
)以前没有写后读一致性,但从2020年12月1日起,S3确实提供了很强的写后读一致性。但是,还不清楚从不同的客户端(发送PUT请求的客户端除外)获取是否会看到更新的结果。博客提到,“你写的东西就是你要读的东西,列表的结果将准确反映桶中的内容。”
此外,在分布式系统文献中,有“读你自己写”的一致性模型,“写后跨客户端的一致读”是最终目标(并不是说这是不可能的)
我怀疑S3最终对于来自不同客户端的读取是一致的。我觉得AWS在这一点上应该更清楚。这个问题实际上比看起来更难,而且涉及光速和狭义相对论,这不是开玩笑。问题在于确定一个客户机是在另一个客户机之前还是之后发出GET。问题是,只能确定特定的精度限制,这取决于客户端之间的距离。不可能以任意精度及时排序他们的请求,例如,他们可以同时“跟踪”对方。这就是为什么并发性讨论通常是从一个客户或某个“大师”的角度进行的。嘿,自从你提出这个问题以来已经有一段时间了,但在互联网上找不到太多。你能肯定地确认这不是一个事后阅读吗?是的,我确认了,它在全球范围内适用于所有客户。那么这与最终的一致性有什么不同呢?