二階段提交

二階段提交  是指在計算機網絡以及數據庫領域內 ， 爲了使基於分佈式系統架構下的所有節點在進行事務提交時保持一致性而設計的一種演算法 。 通常 ， 二階段提交也被稱爲是一種協議 （ Protocol ） 。 在分佈式系統中 ， 每個節點雖然可以知曉自己的操作時成功或者失敗 ， 卻無法知道其他節點的操作的成功或失敗 。 當一個事務跨越多個節點時 ， 爲了保持事務的ACID特性 ， 需要引入一個作爲協調者的組件來統一掌控所有節點 （ 稱作參與者 ） 的操作結果並最終指示這些節點是否要把操作結果進行真正的提交 （ 比如將更新後的數據寫入磁盤等等 ） 。 因此 ， 二階段提交的算法思路可以概括爲 ： 參與者將操作成敗通知協調者 ， 再由協調者根據所有參與者的反饋情報決定各參與者是否要提交操作還是中止操作 。 需要注意的是 ， 二階段提交  不應該與併發控制中的二階段鎖  混淆 。