我瞭解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