另请注明如果 N>> 1个客户端使用updateItem
和ADD
同时向DynamoDB“set”类型添加10,000个唯一值 - 以某种方式保留在预配限制之下 - 将是在下一次一致读取时总是设置为10,000?
通过“set”,我特指可以在DynamoDB中附加的Multi-Valued Data Type。从理论上讲,单调增长集合是CDRT,但是DynamoDB实现是否是CDRT在文档中没有提到。它根本不是非常具体的安全性:
ADD
- 如果该属性尚不存在,则将指定的值添加到项目中。如果该属性确实存在,则ADD的行为取决于属性的数据类型:...
如果现有数据类型是一个集合,并且Value也是一个集合,则Value将附加到现有集合。例如,如果属性值是set [1,2],并且ADD操作指定为3,则最终属性值为[1,2,3]。如果为set属性指定了ADD操作并且指定的属性类型与现有的set类型不匹配,则会发生错误。
我已经尝试过这个并且还没有产生任何丢失的添加,除非我受到限制,但我在文档中找不到这样的无损保证。事实上,除了“条件更新”之外,我找不到任何关于任何数据类型的保证。
答案 0 :(得分:4)
是的,从集合中添加/删除也是原子的。
http://aws.amazon.com/dynamodb/faqs/仅提及StringSet,但它也适用于其他集合类型。
问:DynamoDB是否支持就地原子更新?
Amazon DynamoDB支持快速就地更新。您可以使用单个API调用增加或减少行中的数字属性。同样,您也可以原子方式添加或删除一组字符串。