Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 对于S3中的新对象,写后读一致性到底意味着什么?_Amazon Web Services_Amazon S3_Eventual Consistency - Fatal编程技术网

Amazon web services 对于S3中的新对象,写后读一致性到底意味着什么?

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按时间顺序跟随看跌期权)?换句话说,读写一致性是简单地读写一致性,还是对所有客户端都有效 我怀疑答案是它在全球范围内有效,但无法找到一个明确的答案 我一直认为你也是这样,即写后读适用于所有客户机,而不仅仅是写过

亚马逊文档()说明:

“Amazon S3在所有区域为S3存储桶中的新对象提供读写一致性,但有一个警告。”

忽略警告,这意味着在对新对象执行PUT之后发出GET的客户机保证得到正确的结果。我的问题是,如果GET是从另一个客户(而不是进行看跌期权的客户)发行的,担保是否也适用(当然假设GET按时间顺序跟随看跌期权)?换句话说,读写一致性是简单地读写一致性,还是对所有客户端都有效


我怀疑答案是它在全球范围内有效,但无法找到一个明确的答案

我一直认为你也是这样,即写后读适用于所有客户机,而不仅仅是写过的客户机

这篇博文似乎证实了这一点(无论其价值如何),但我也没有在官方AWS文档中找到任何明确的答案:

写入一致性后读取什么?

写后读的一致性使事情变得更紧凑,保证 新数据对所有客户端的即时可见性。先读后写 一致性,新创建的对象、文件或表行将 立即可见,无任何延迟


是的,这是一致的

“客户机”的概念无关紧要,因为每个API调用都是独立的

us-east-1
地区(以前称为
us Standard
)以前没有写后读一致性,但从2020年12月1日起,S3确实提供了很强的写后读一致性。但是,还不清楚从不同的客户端(发送PUT请求的客户端除外)获取是否会看到更新的结果。博客提到,“你写的东西就是你要读的东西,列表的结果将准确反映桶中的内容。”

此外,在分布式系统文献中,有“读你自己写”的一致性模型,“写后跨客户端的一致读”是最终目标(并不是说这是不可能的)


我怀疑S3最终对于来自不同客户端的读取是一致的。我觉得AWS在这一点上应该更清楚。

这个问题实际上比看起来更难,而且涉及光速和狭义相对论,这不是开玩笑。问题在于确定一个客户机是在另一个客户机之前还是之后发出GET。问题是,只能确定特定的精度限制,这取决于客户端之间的距离。不可能以任意精度及时排序他们的请求,例如,他们可以同时“跟踪”对方。这就是为什么并发性讨论通常是从一个客户或某个“大师”的角度进行的。嘿,自从你提出这个问题以来已经有一段时间了,但在互联网上找不到太多。你能肯定地确认这不是一个事后阅读吗?是的,我确认了,它在全球范围内适用于所有客户。那么这与最终的一致性有什么不同呢?