DynamoDB是否“设置”了CDRT值?

时间:2015-05-20 11:51:56

标签: amazon-web-services amazon-dynamodb cdrts

另请注明如果 N>> 1个客户端使用updateItemADD同时向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类型不匹配,则会发生错误。

我已经尝试过这个并且还没有产生任何丢失的添加,除非我受到限制,但我在文档中找不到这样的无损保证。事实上,除了“条件更新”之外,我找不到任何关于任何数据类型的保证。

1 个答案:

答案 0 :(得分:4)

是的,从集合中添加/删除也是原子的。

http://aws.amazon.com/dynamodb/faqs/仅提及StringSet,但它也适用于其他集合类型。

  

问:DynamoDB是否支持就地原子更新?

     

Amazon DynamoDB支持快速就地更新。您可以使用单个API调用增加或减少行中的数字属性。同样,您也可以原子方式添加或删除一组字符串。