两阶段提交是线性化的实现吗?

Is two phase commit an implementation of linearizability?

大多数两阶段提交的实现,据我所知,要求系统的所有节点在本地提交之前就值达成一致,并且只有在它们都本地提交后才响应客户端——这是正确的理解吗2PC?

这是否使 2PC 成为可线性化顺序一致性模型的实现?

我在想,因为返回给客户端的值永远不会过时,而且它是实时发生的,这意味着它是真正可线性化的,对吗?

虽然我从未听说过 2PC 被描述为可线性化,但我认为这里有些东西是我误解了。

它不一定是,有许多更好的算法可以在崩溃失败后幸存下来(2PC 没有)。也就是说,您可以使用两阶段提交来帮助实现线性化或强序列化。

"value returned to the client will never be out of date and it's happening in real time"语句完全忽略了缓存和队列的存在,它们很容易让你读取过去或写入未来,所以要小心。