DynamoDB的冲突解决策略是什么?关于Dynamo的白皮书讨论了如何通过GetItem返回多个版本以便客户端解决。
这个SO Question 表示Dynamo和DynamoDB不同,GetItem只返回一个值。在这种情况下,DynamoDB采用的冲突解决策略是什么?
答案 0 :(得分:1)
如上所述,您的问题不是很明确:“DynamoDB的冲突解决策略是什么” - 有什么冲突?你指的是可能不一致的读物吗?
DynamoDB,用于GetItem查询,允许最终一致和强一致的读取,可以使用请求中的参数进行配置(如文档中所述:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)。对于强一致性读取,返回的值是执行查询时的最新值。对于最终一致的读取,可以读取项目的略微过时版本,但本身没有“冲突解决”。
您可能正在考虑条件更新,如果在执行查询时未满足预期条件,则允许请求失败。
答案 1 :(得分:0)
看到这个 “如果应用程序大约同时更新不同区域中的同一项目,则可能会发生冲突。为了确保最终的一致性,DynamoDB全局表使用并发更新之间的“最后写入者获胜”调节,DynamoDB会尽最大努力确定最后写入者通过这种冲突解决机制,所有副本将就最新更新达成一致,并收敛到它们都具有相同数据的状态。”
因此,基于一些副本之间的共识,最新的写作胜出。