AWS为什么在S3的DynamoDB中说“强一致性”和“写后读一致性”?他们两个都意味着同一件事吗?
最佳答案
从写后读取是一种强一致性的意义上说,这两个术语本质上是同一件事。
值得注意的区别是DynamoDB的强一致性包括更新后读取和删除后读取以及写入后读取。 S3仅提供写入后读取...,因此可以说写入后读取是强一致性的子集。
在S3中,一切最终都与一个异常一致:如果创建了一个对象,并且以前没有尝试获取该对象(例如在创建对象之前检查该对象是否已存在),则在创建该对象之后获取该对象将始终返回您创建的对象。这就是S3中写入后读取的一致性,并且在所描述的情况下始终可用-您不必要求S3对新对象进行高度一致的写入后读取,因为它总是被提供。
S3中的任何其他操作都没有该一致性保证。例子:
所有这些都是S3 Consistency Model的各个方面,它们是性能优化的结果。
DynamoDB还针对性能进行了优化,因此,出于相同的原因,它默认为最终(不太强)一致性。但是,如果需要,可以在DynamoDB中指定高度一致的读取。这些带有警告:
关于amazon-web-services - "Strong Consistency"与"Read-after-write Consistency",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59316960/