我正在使用 go sdk v2。绝大多数情况下,更新都进展顺利,但有几次我注意到更新似乎丢失了。 UpdateItem 函数不会返回错误,但项目并未更新。
我正在使用表达式生成器来更新
MyMap.MyMapKey
,MyMap 是 map[string]SomeStruct
,它会转换为 ddb 中的 AttributeValueMemberM。
我的问题是:使用该语法调用 UpdateItem 是否仅更新该映射键,还是替换整个映射?更清楚地说,多个并行调用会更新 MyMap 下的不同键(例如
MyMap.One
上的更新和 MyMap.Two
上的另一个更新)有相互覆盖的风险,还是保证它们都能独立成功?
从医生看来,我认为他们应该成功,但我对发生的事情感到茫然。
谢谢
我的问题是:使用该语法调用 UpdateItem 是否仅更新一个映射键,还是替换整个映射?更清楚地说,多个并行调用是否会更新 MyMap 下的不同键(例如,MyMap.One 上的更新和 MyMap.Two 上的另一个更新)有相互覆盖的风险,还是保证它们都能独立成功?
对 DynamoDB 的所有单例写入都是原子的并且是强序列化的。因此,不存在并发更新操作您的项目以产生不良结果的风险。