Database 跨区域副本DyanmoDB事务冲突处理

Database 跨区域副本DyanmoDB事务冲突处理,database,amazon-web-services,nosql,amazon-dynamodb,Database,Amazon Web Services,Nosql,Amazon Dynamodb,由于交易仅在单个区域内进行,并且在所述区域完成交易之前不会进行复制,因此有机会在不同区域内同时进行交易,而不允许在同一区域内进行交易,那么当这些交易复制到其他区域时,由于某些条件,它们无法完成 例如: 用户1从区域A中的用户2购买项目1 用户3同时从区域B中的用户2购买项目1 区域A事务完成,区域B事务完成,两者都开始复制到其他区域。事务1无法在区域B中完成,事务2无法在区域A中完成,因为用户2不再拥有该项目(它现在分别属于用户1和用户3) DynamoDB如何处理这些冲突?SQL DBs通常会

由于交易仅在单个区域内进行,并且在所述区域完成交易之前不会进行复制,因此有机会在不同区域内同时进行交易,而不允许在同一区域内进行交易,那么当这些交易复制到其他区域时,由于某些条件,它们无法完成

例如:

用户1从区域A中的用户2购买项目1

用户3同时从区域B中的用户2购买项目1

区域A事务完成,区域B事务完成,两者都开始复制到其他区域。事务1无法在区域B中完成,事务2无法在区域A中完成,因为用户2不再拥有该项目(它现在分别属于用户1和用户3)


DynamoDB如何处理这些冲突?SQL DBs通常会阻止这种情况的发生,因为只有一个Writer节点,但由于DynamoDB有多个Writer节点,我们可以看到这种潜在冲突。

一旦事务在某个区域中完成,项更改将单独进入要通过全局表而不是事务复制的流。交易结束了

在您的场景中,DynamoDB的冲突解决方案与通常在每个单独的项目上一样有效。DynamoDB使用last writer wins解决冲突