我正在查看CouchBase发展指南,并试图了解两个阶段如何提交工作。我觉得他们给出的代码示例与图表不同。
代码示例
它们链接到描述如何从一个帐户到另一个帐户执行此传输点的红宝石吉斯特。
据我了解,他们走的路线如下:
pendingcommitteddone在本例中,如果在步骤2和步骤3之间出现故障,我们可以通过将更改为指向任何具有事务引用的帐户进行回滚。
图表示例
这是用来解释两相锁定的图表;我认为它不符合代码示例.

图表似乎表明,您对两个帐户都添加了对事务的引用,然后在中添加/删除两个帐户中的点。
在这个例子中,如果在步骤3和步骤4之间发生了故障,您如何知道回滚什么?你怎么知道你是否将修改后的内容应用到了点上?
图错了吗?
发布于 2014-04-01 05:34:39
是啊,你是对的。图步骤3还应该在将事务添加到列表的同时应用余额更改。基本上,将事务添加到列表只是一个迹象,表明对余额进行了一些更改。
顺便说一下,在指向原始gist的链接中,您可以找到更完整的可执行解决方案,其中有回滚代码:https://gist.github.com/avsej/3136027。
https://stackoverflow.com/questions/22766093
复制相似问题