据我所知,大多数两阶段提交的实现都要求系统的所有节点在本地提交之前并且只有在它们全部本地提交给客户端之后才同意该值,这是对2PC的正确理解?
这是否使2PC成为可线性化顺序一致性模型的实现?
我当时在想,因为返回给客户的价值永远不会过时,而且它是实时发生的,这意味着它确实是线性的,对吗?
尽管我从未听说过2PC被描述为可线性化的,所以我认为这里有些误解。
答案 0 :(得分:2)
不是必须的,有许多更好的算法可以应对崩溃失败(而2PC则不能)。也就是说,您可以使用两阶段提交来帮助实现线性化或强大的串行化。
“返回给客户端的值永远不会过时,并且它是实时发生的”语句完全忽略了缓存和队列的存在,这使您可以轻松地读取过去或写入未来,因此请注意为此。