99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

一分鐘了解兩階段提交2PC(運營MM也懂了)

2018-09-06 18:03 更新

一、概念

二階段提交2PC(Two phase Commit)是指,在分布式系統(tǒng)里,為了保證所有節(jié)點在進行事務(wù)提交時保持一致性的一種算法。


二、背景

在分布式系統(tǒng)里,每個節(jié)點都可以知曉自己操作的成功或者失敗,卻無法知道其他節(jié)點操作的成功或失敗

當一個事務(wù)跨多個節(jié)點時,為了保持事務(wù)的原子性與一致性,需要引入一個協(xié)調(diào)者(Coordinator)來統(tǒng)一掌控所有參與者(Participant)的操作結(jié)果,并指示它們是否要把操作結(jié)果進行真正的提交(commit)或者回滾(rollback)。


三、思路

2PC顧名思義分為兩個階段,其實施思路可概括為:

(1)投票階段(voting phase):參與者將操作結(jié)果通知協(xié)調(diào)者;

(2)提交階段(commit phase):收到參與者的通知后,協(xié)調(diào)者再向參與者發(fā)出通知,根據(jù)反饋情況決定各參與者是否要提交還是回滾;


四、缺陷

算法執(zhí)行過程中,所有節(jié)點都處于阻塞狀態(tài),所有節(jié)點所持有的資源(例如數(shù)據(jù)庫數(shù)據(jù),本地文件等)都處于封鎖狀態(tài)。

典型場景為:

(1)某一個參與者發(fā)出通知之前,所有參與者以及協(xié)調(diào)者都處于阻塞狀態(tài);

(2)在協(xié)調(diào)者發(fā)出通知之前,所有參與者都處于阻塞狀態(tài);

另外,如有協(xié)調(diào)者或者某個參與者出現(xiàn)了崩潰,為了避免整個算法處于一個完全阻塞狀態(tài),往往需要借助超時機制來將算法繼續(xù)向前推進,故此時算法的效率比較低。

總的來說,2PC是一種比較保守的算法。


五、舉例

甲乙丙丁四人要組織一個會議,需要確定會議時間,不妨設(shè)甲是協(xié)調(diào)者,乙丙丁是參與者。

投票階段:

(1)甲發(fā)郵件給乙丙丁,周二十點開會是否有時間;

(2)甲回復(fù)有時間;

(3)乙回復(fù)有時間;

(4)丙遲遲不回復(fù),此時對于這個活動,甲乙丙均處于阻塞狀態(tài),算法無法繼續(xù)進行;

(5)丙回復(fù)有時間(或者沒有時間);

提交階段:

(1)協(xié)調(diào)者甲將收集到的結(jié)果反饋給乙丙?。ㄊ裁磿r候反饋,以及反饋結(jié)果如何,在此例中取決與丙的時間與決定);

(2)乙收到;

(3)丙收到;

(4)丁收到;


六、結(jié)論

2PC效率很低,分布式事務(wù)很難做。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號