想象一下,您在不同的系统上有 2 个实体,需要执行某种事务,根据与其中一个或两个实体相关联的信息更改其中一个或两个,并要求对两个实体的更改要么完成,要么都不完成.
简单的例子,基本上必须在 2 个单独的硬件上运行 2 行:
my_bank.my_account -= payment
their_bank.their_account += payment
大概有专门针对这种情况存在的算法或习语,在其他尝试访问相同值的情况下正常工作(对于正确的一些可预测的定义)。两阶段提交协议似乎就是这样一种方法。有没有更简单的替代方案,也许有更多的限制?(例如。也许他们要求没有系统可以完全关闭或无法响应。)或者也许有更复杂的系统在某些方面更好?是否有关于此事的标准或广受好评的文本?