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