11

我目前正在处理的应用程序要求我在 20 到 30 分钟的时间内多次增加属于 DynamoDB 中某个项目的属性。我一直在做一些关于 DynamoDB条件写入和原子计数器的额外阅读

dynamo 中的原子计数器似乎是我需要的一个合乎逻辑的选择,但我确实担心数据的一致性,尤其是在像 dynamo 这样的分布式数据库中,以及我的数据的准确性问题。我预计 API 会在高峰时间受到重创,但我想避免与条件更新相关的性能问题。我想我想知道原子计数器在 DynamoDB 中的可靠性以及如何使用 dynamo 正确实现它们。也欢迎其他建议。

4

1 回答 1

9

是的,这些是您想要使用的功能。通过 Dynamo API 使用它们是一种方式。

现在,在这两个功能之间,如果您需要修改的计数器对业务非常重要,请使用条件写入(您告诉 API 更新值以说 x + 10“IF 且仅 IF”现有值为 x)

您提到的同一文件解释了原子计数器:

“如果您怀疑先前的请求不成功,您可以重试此操作。但是,您可能会冒两次应用相同更新的风险。这对于网站计数器来说可能是可以接受的,因为您可以容忍稍微多计或少计访问者。但是,在银行应用程序中,使用条件更新会更安全。

因此,如果是关键业务操作,则使用条件写入,否则使用原子计数器。希望它澄清。

于 2014-03-24T17:06:22.263 回答