我正在处理的应用程序当前要求我在20到30分钟的时间内多次递增属于DynamoDB中项目的属性。我已经对DynamoDB conditional writes and atomic counters
进行了一些额外的阅读发电机中的原子计数器似乎是我需要的合理选择,但我确实担心数据的一致性,特别是在发电机等分布式数据库中,并且会发出数据的准确性。我希望API能够在高峰期受到重创,但我希望避免与条件更新相关的性能问题。我想我想知道原子计数器对DynamoDB的可靠性以及如何使用dynamo正确实现它们。其他建议也欢迎。
答案 0 :(得分:9)
是的,这些是您想要使用的功能。通过Dynamo API使用它们就是这样。
现在,在这两个功能之间,使用条件写,如果你需要修改计数器,如果对业务非常关键(你告诉API将值更新为x + 10“IF而且只有IF”现有值是x )
您提到的同一文件解释了原子计数器:
“如果您怀疑之前的请求,可以重试此操作 没有成功。但是,您可能会冒同样的更新 两次。这可能是网站计数器可以接受的,因为您 可以容忍访客略微过多或不足。 但是,在银行应用程序中,使用a会更安全 条件更新。“
因此,如果是关键业务操作使用条件写,否则原子计数器。希望它澄清。