我了解2阶段提交体系结构。让2个奴隶和1个主人,所有准备阶段都很好。当主设备提交时,提交很好。当主人要求奴隶2提交时,它失败了。所以现在主人需要回滚整个交易。我的问题是奴隶1现在会如何rollbakc,因为它已经承诺了?据我所知,提交是完整的和最终的。在磁盘上可能有保存点或日志来恢复状态,但这可能需要DBA帮助。上SO在2阶段提交中回滚
参考 - Can a transaction be rolled back after it's committed and connection is closed?
当一个系统真的支持两阶段提交时,prepare使事务最终和持久(但对其他人不可见)。那么它应该 - 除了系统故障 - 总是可以完成提交。 – 2014-12-02 15:02:43
马克是对的。在技术ACID术语中,第一阶段在其完成时耐用。从新手的角度来看,我会说它是一个软性承诺。 – Nazgul 2014-12-02 15:18:51