DynamoDB的条件更新如何与其最终的一致性模型一起使用?

时间:2015-10-05 17:15:21

标签: amazon-web-services amazon-dynamodb

我正在阅读DynamoDB文档,发现了两个有趣的功能:

  1. 最终一致读取
  2. 强烈一致的阅读
  3. 条件更新
  4. 我的问题是,这三件事如何互相影响?大多数情况下,我想知道他们的条件更新是否使用强一致性读取来检查条件,还是他们最终使用一致读取?如果它是后者,那么仍有竞争条件,对吗?

1 个答案:

答案 0 :(得分:4)

对于条件更新,您需要强大的一致性。我猜测更新是一个单独的操作,其中一致的读取和写入以原子方式发生并且一起失败/成功。

思考Dynamo的方式就像一组独立的实体,它们都会跟踪状态并相互通知所做的更新/同意这些更新是否可以传播到整个组。

当您(代表您的dynamo api)写信给您时,基本上会告知您要更新数据的这些实体的子集。之后,数据传播到所有这些实体。

当您进行最终一致性读取时,您可以从其中一个实体中读取它。最终的一致意思是,您可能会从其中一个尚未获得备忘录的实体中读取。

在进行强一致性读取时,您会从足够的实体中读取,以确保您所读取的内容已传播。如果传播正在进行中,您需要等待。