Amazon DynamoDB条件写入和原子计数器

时间:2014-03-24 16:50:57

标签: amazon-dynamodb database-concurrency distributed-database

我正在处理的应用程序当前要求我在20到30分钟的时间内多次递增属于DynamoDB中项目的属性。我已经对DynamoDB conditional writes and atomic counters

进行了一些额外的阅读

发电机中的原子计数器似乎是我需要的合理选择,但我确实担心数据的一致性,特别是在发电机等分布式数据库中,并且会发出数据的准确性。我希望API能够在高峰期受到重创,但我希望避免与条件更新相关的性能问题。我想我想知道原子计数器对DynamoDB的可靠性以及如何使用dynamo正确实现它们。其他建议也欢迎。

1 个答案:

答案 0 :(得分:9)

是的,这些是您想要使用的功能。通过Dynamo API使用它们就是这样。

现在,在这两个功能之间,使用条件写,如果你需要修改计数器,如果对业务非常关键(你告诉API将值更新为x + 10“IF而且只有IF”现有值是x )

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

  

“如果您怀疑之前的请求,可以重试此操作   没有成功。但是,您可能会冒同样的更新   两次。这可能是网站计数器可以接受的,因为您   可以容忍访客略微过多或不足。   但是,在银行应用程序中,使用a会更安全   条件更新。“

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