gpt4 book ai didi

mongodb - MongoDB 中的两阶段提交

转载 作者:IT老高 更新时间:2023-10-28 13:20:35 25 4
gpt4 key购买 nike

仔细阅读the online documentation ,我对MongoDB中的两阶段提交还有很多疑问。

从故障场景中恢复部分,为什么只有两类故障?在我看来,这些步骤中的任何一个都可能发生失败,所以这里应该有两个以上的类。例如,如果(在 Apply Transaction to Both Accounts 部分),在更新帐户 A 后数据库服务器失败了怎么办。这意味着账户 A 损失了一些钱,而账户 B 没有发生任何事情。我们会有不一致的交易吗?

最佳答案

当应用程序或数据库在将事务应用到 A 和将事务应用到 B 之间突然崩溃时,全局事务集合中仍然会有一个 state:"pending" 的事务。您在崩溃后运行的恢复脚本应该注意到这一点,检查两个帐户,并查看其中一个帐户中存在待处理事务,但另一个帐户中没有。它现在知道回滚事务或尝试完成事务所需的一切。

是的,编写一个如此智能的恢复脚本并不容易。但是在不是为他们设计的数据库系统中的事务总是很难的。有时,您可以通过将文档设计为需要一起更新的字段始终在同一个文档中来解决在 MongoDB 中需要事务的问题,但并不总是有一种明智的方法来做到这一点。当您的用例绝对需要事务时,请保护您的理智并使用关系数据库。

关于mongodb - MongoDB 中的两阶段提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com