Amazon dynamodb DynamoDB是否公开API以在合并项数据时查询或检测冲突

Amazon dynamodb DynamoDB是否公开API以在合并项数据时查询或检测冲突,amazon-dynamodb,Amazon Dynamodb,DynamoDB是一个基于原系统的AP系统 当合并冲突发生或解决时,是否有任何API可检测 如果发生冲突,是否有API提供解决冲突的策略 你的问题基于错误的前提。虽然DynamoDB与最初的“Dynamo”论文有着相同的名称、一些目标和实现细节,但它并不十分接近,尤其是数据模型完全不同 而在Dynamo的论文中,多个客户端可以同时为一个项目存储多个不同的值-稍后读者需要解决冲突-DynamoDB做的事情非常不同: 如果两个客户端替换了一个项目,DynamoDB将提供“最后一次写入成功”——其中

DynamoDB是一个基于原系统的AP系统

  • 当合并冲突发生或解决时,是否有任何API可检测
  • 如果发生冲突,是否有API提供解决冲突的策略

    • 你的问题基于错误的前提。虽然DynamoDB与最初的“Dynamo”论文有着相同的名称、一些目标和实现细节,但它并不十分接近,尤其是数据模型完全不同

      而在Dynamo的论文中,多个客户端可以同时为一个项目存储多个不同的值-稍后读者需要解决冲突-DynamoDB做的事情非常不同:

    • 如果两个客户端替换了一个项目,DynamoDB将提供“最后一次写入成功”——其中一次写入将成功,您不知道或不在乎是哪一次
    • 如果两个客户端同时修改同一项中的不同属性,则两个更改都将合并。我从未发现这是明确承诺的,但它似乎是这样工作的
    • 您还有一个功能强大的条件更新功能,它可以根据此项的旧值的某些条件对单个项进行修改。这些条件更新保证是隔离的,因此可以使用它们来确保安全的并发修改。例如,条件更新可用于实现所谓的乐观锁定:项目在其他属性中有一个版本属性,客户机读取旧项目,决定将其更改为什么,然后在版本仍然没有更改的情况下执行写操作。如果条件失败(因为其他客户机与我们竞争),则写入失败,客户机再次尝试整个过程(再次读取、应用更改和写回)
    • DynamoDB还具有完整(多项目)事务的新特性。在迪纳摩根本不存在这个特性

    • “DynamoDB是一个基于dynamo原始文件的AP系统。”-正如Jaso Sorensen在中所说,它与dynamo原始文件相比有很多不同。请把你的问题说得更准确些。你在说什么合并冲突?如果你让人们在猜到你想知道什么之前就阅读了一篇学术论文,你可能不会得到很多回答。关于这个问题的答案,特别是评论,可能对你有所帮助:@Maurice I试图从文档中更好地理解dynamodb,以编写注释-。最初的迪纳摩论文是我之前知道的唯一参考资料。谢谢你的“幕后”谈话,因为这确实有助于我的理解。