Alf*_*Alf 16 amazon-s3 eventual-consistency amazon-web-services
亚马逊文档(http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel)声明:
"Amazon S3为所有地区的S3存储桶中的新对象的PUTS提供了写后读写一致性,但有一点需要注意."
忽略警告,这意味着在PUT之后为新对象发出GET的客户端可以保证获得正确的结果.我的问题是,如果GET是从不同的客户端而不是PUT的那个客户端发出的,那么保证是否也适用(当然,假设GET按照时间顺序跟随PUT)?换句话说,读写后一致性只是读写一致性还是适用于所有客户端?
我怀疑答案是它在全球范围内有效,但无法找到明确的答案.
我一直以为您也一样,即写后读取适用于所有客户端,而不仅仅是执行写入操作的客户端。
这篇博客文章似乎证实了它的价值(但价值多少),但是我也没有在官方的AWS文档中找到任何明确的答案:
https://shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html
什么是写后读一致性?
写后读的一致性使事情变得更加严格,从而保证了新数据对所有客户端的即时可见性。具有写入后读取的一致性,新创建的对象,文件或表行将立即可见,而不会出现任何延迟。
小智 5
截至 2020 年 12 月 1 日(https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/)S3确实提供了强读后写一致性。但是,仍然不清楚来自不同客户端(发送 PUT 请求的客户端除外)的 GET 是否会看到更新的结果。博客提到,“你写的就是你会读的,LIST的结果将准确反映桶中的内容。”
此外,在分布式系统文献中,有“读你自己写”的一致性模型,“写后跨客户端的一致读”是最终目标(并不是说这是不可能的)。
我怀疑 S3 对于来自不同客户端的读取最终是一致的。我觉得 AWS 在这一点上应该更清楚。
归档时间: |
|
查看次数: |
9162 次 |
最近记录: |