xxxxx内射xxxx,人人妻人人澡人人爽偷拍台湾,国内揄拍高清国内精品对白,在线精品视频一区二区

新聞中心

首頁 > 新聞中心 > 行業(yè)新聞 >

google分布式鎖服務(wù)Chubby通信協(xié)議

時間:2016-11-14 15:35:53   閱讀:

      客戶端和主服務(wù)器之間的通信是通過KeepAlive握手協(xié)議來維持的,這一通信過程的簡單示意圖如圖2-10所示。

\
 
      圖2-10中,從左到右的水平方向表示時間在增加,斜向上的箭頭表示一次KeepAlive 請求,斜向下的箭頭則是主服務(wù)器的一次回應(yīng)。M1、M2、M3表示不同的主服務(wù)器租用期。CWC2、Q則是客戶端對主服務(wù)器租用期時長做出的—個估計。KeepAHve是周期發(fā)送的一種信息,它主要有兩方面的功能:延遲租約的有效期和攜帶事件信息告訴用戶更新。主要的事件包括文件內(nèi)容被修改、子節(jié)點的增加、刪除和修改、主服務(wù)器出錯、句柄失效等。正常情況下,通過KeepAlive握手協(xié)議租用期會得到延長,事件也會及時地通知給用戶。但是由于系統(tǒng)有一定的失效概率,引入故障處理措施是很有必要的。通常情況下系統(tǒng)可能會出現(xiàn)兩種故障:客戶端租用期過期和主服務(wù)器故障,對于這兩種情況系統(tǒng)有著不同的應(yīng)對方式。
 
1.客戶端租約過期
     
剛開始時,客戶端向主服務(wù)器發(fā)出一個KeepAlive請求(見圖2-10中的1),如果有需要通知的事件時則主服務(wù)器會立刻做出回應(yīng),否則主服務(wù)器并不立刻對這個請求做出回應(yīng),而是等到客戶端的租約期C1快結(jié)束的時候才做出回應(yīng)(見圖2-10中的2),并更新主服務(wù)器租約期為M2。客戶端在接到這個回應(yīng)后認(rèn)為該主服務(wù)器仍處于活躍狀態(tài),于是將租約期更新為C2并立刻發(fā)出新的KeepAlive請求(見圖2-10中的3)。同樣的,主服務(wù)器可能不是立刻回應(yīng)而是等待C2接近結(jié)束,但是在這個過程中主服務(wù)器出現(xiàn)故障停止使 用。在等待了一碰時間后C2到期,由于并沒有收到主服務(wù)器的回應(yīng),系統(tǒng)向客戶端發(fā)出一個危險(Jeopardy)事件,客戶端清空并暫時停用自己的緩存,從而進(jìn)入一個稱為寬限期(Grace Period)的危險狀態(tài)。這個寬限期默認(rèn)是45秒。在寬限期內(nèi),客戶端不會立刻斷開其與服務(wù)器端的聯(lián)系,而是不斷地做探詢。圖2-10中新的主服務(wù)器很快被重新選出,當(dāng)它接到客戶端的第一個KeepAlive請求(見圖2-10中的4)時會拒絕(見圖2-10 中的5),因為這個請求的紀(jì)元號(Epoch Number)錯誤。不同主服務(wù)器的紀(jì)元號不相同,客戶端的每次請求都需要這個號來保證合理的請求是針對當(dāng)前的主服務(wù)器??蛻舳嗽谥鞣?wù)器拒絕之后會使用新的紀(jì)元號來發(fā)送KeepAlive請求(見圖2-10中的6)。新的主服務(wù)器接受這個請求并立刻做出回應(yīng)(見圖2-10中的7)。如果客戶端接收到這個回應(yīng)的 時間仍處于寬限期內(nèi),系統(tǒng)會恢復(fù)到安全狀態(tài),租約期更新為C3。如果在寬限期未接到主服務(wù)器的相關(guān)回應(yīng),客戶端終止當(dāng)前的會話。
 
2.主服務(wù)器出錯
     
在客戶端和主服務(wù)器端進(jìn)行通信時可能會遇到主服務(wù)器故障,圖2-10就出現(xiàn)了這種情況。正常情況下舊的主服務(wù)器出現(xiàn)故障后系統(tǒng)會很快地選舉出新的主服務(wù)器,新選舉的主服務(wù)器在完全運行前需要經(jīng)歷以下九個步驟。
 
      (1)產(chǎn)生一個新的紀(jì)元號以便今后客戶端通信時使用,這能保證當(dāng)前的主服務(wù)器不必處理針對舊的主服務(wù)器的請求。
 
      (2)只處理主服務(wù)器位置相關(guān)的信息,不處理會話相關(guān)的信息。
 
      (3)構(gòu)建處理會話和鎖所需的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。
 
      (4)允許客戶端發(fā)送KeepAlive請求,不處理其他會話相關(guān)的信息。
 
      (5,)向每個會話發(fā)送一個故障事件,促使所有的客戶端清空緩存。
 
      (6)等待直到所有的會話都收到故障事件或會話終止。
 
      (7)開始允許執(zhí)行所有的操作.。
 
      (8)如果客戶端使用了舊的句柄則需要為其重新構(gòu)建新的句柄。
 
      (9)一定時間段后(1分鐘),刪除沒有被打開過的臨時文件夾。
 
      如果這一過程在寬限期內(nèi)順利完成,則用戶不會感覺到任何故障的發(fā)生,也就是說新舊主服務(wù)器的替換對于用戶來說是透明的,用戶感覺到的僅僅是一個延遲。使用寬限期的 .好處正是如此。
 
      在系統(tǒng)實現(xiàn)時,Chubby還使用了一致性客戶端緩存(Consistent Client-Sid Cadiing:)技術(shù),這樣做的目的是減少通信壓力,降低通信頻率。在客戶端保存一個和單元上數(shù)據(jù)一致的本地緩存,需要時客戶可以直接從緩存中取出數(shù)據(jù)而不用再和主服務(wù)器通信。當(dāng)某個文件數(shù)據(jù)或者元數(shù)據(jù)需要修改時,主服務(wù)器首先將這個修改阻塞;然后通過查詢主服務(wù)器自身維護(hù)的一個緩存表,向?qū)π薷牡臄?shù)據(jù)進(jìn)行了緩存的所有客戶端發(fā)送一個無效標(biāo)志(Invalidation)。

      客戶端收到這個無效標(biāo)志后會返回一個確認(rèn)(Ackowledge),主服務(wù)器在收到所有的確認(rèn)后才解除阻塞并完成這次修改。這個過程的執(zhí)行效率非常高,僅僅需要發(fā)送一次無效標(biāo)志即可,因為對于沒有返回確認(rèn)的節(jié)點,主搌務(wù)器直接認(rèn)為其是未緩存的。
?

閩公網(wǎng)安備 35010002000114號