我正在查看CouchBase Dev Guide并尝试了解两阶段提交的工作原理。我觉得他们提供的代码示例与图表不同。
它们链接到Ruby Gist,其中描述了如何将点从一个帐户转移到另一个帐户。
我的理解是他们走了以下路线:
pending
committed
done
在此示例中,如果步骤2和3之间出现故障,我们可以通过将更改的内容反转为指向任何引用事务的帐户来回滚。
这是用于解释两相锁定的图;我认为它不同意代码示例......
图表似乎表示您向两个帐户添加了对交易的引用,然后您在这两个帐户中添加/删除点数。
在此示例中,如果步骤3和4之间出现故障,您将如何知道要回滚的内容?你怎么知道你是否已将改变应用于积分?
图表错了吗?
答案 0 :(得分:1)
btw在原始要点的链接中,您可以找到更完整的可执行解决方案,并带有回滚代码:https://gist.github.com/avsej/3136027