Google云計算原理-分布式鎖服務Chubby_第1頁
Google云計算原理-分布式鎖服務Chubby_第2頁
Google云計算原理-分布式鎖服務Chubby_第3頁
Google云計算原理-分布式鎖服務Chubby_第4頁
Google云計算原理-分布式鎖服務Chubby_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Google的云計算分布式鎖服務Chubby1Chubby是什么?2主要用于解決分布式一致性問題在一個分布式系統中,有一組的Process,它們需要確定一個Value。于是每個Process都提出了一個Value,一致性就是指只有其中的一個Value能夠被選中作為最后確定的值,并且當這個值被選出來以后,所有的Process都需要被通知到粗粒度的分布式鎖服務Chubby是Google為解決分布式一致性問題而設計的提供粗粒度鎖服務的文件系統其他分布式系統可以使用它對共享資源的訪問進行同步1.Paxos算法該方案存的缺陷試圖由以下三點來保證數據的一致性:(1)決議只有被proposers提出后才能批準(2)每次只批準一個決議(3)只有決議確定被批準后learners才能獲取這個決議決議通過的兩個階段:準備階段:proposers選擇一個提案并將它的編號設為n,然后將它發送給acceptors中的一個“多數派”。Acceptors收到后,如果提案的編號大于它已經回復的所有消息,則acceptors將自己上次的批準回復給proposers,并不再批準小于n的提案

批準階段:當proposers接收到acceptors中的這個“多數派”的回復后,就向回復請求的acceptors發送accept請求,在符合acceptors一方的約束條件下,acceptors收到accept請求后即批準這個請求

解決一致性問題算法:為了減少決議發布過程中的消息量,acceptors將這個通過的決議發送給learners的一個子集,然后由這個子集中的learners去通知所有其他的learners;特殊情況:如果兩個proposer在這種情況下都轉而提出一個編號更大的提案,那么就可能陷入活鎖。此時需要選舉出一個president,僅允許president提出提案2.Chubby的系統設計Chubby中還添加了一些新的功能特性;這種設計主要是考慮到以下幾個問題:1、開發者初期很少考慮系統的一致性,但隨著開發進行,問題會變得越來越嚴重。單獨的鎖服務可以保證原有系統架構不會發生改變,而使用函數庫很可能需要對系統架構做出大幅度的改動2、系統中很多事件發生是需要告知其他用戶和服務器,使用一個基于文件系統的鎖服務可以將這些變動寫入文件中。有需要的用戶和服務器直接訪問這些文件即可,避免因大量系統組件之間事件通信帶來系統性能下降3、基于鎖的開發接口容易被開發者接受。雖然在分布式系統中鎖的使用會有很大的不同,但是和一致性算法相比,鎖顯然被更多的開發者所熟知Paxos算法實現過程中需要一個“多數派”就某個值達成一致,本質上就是分布式系統中常見的quorum機制;為保證系統高可用性,需要若干臺機器,但使用單獨鎖服務的話一臺機器也能保證這種高可用性Chubby設計過程中一些細節問題值得關注:在Chubby系統中采用了建議性的鎖而沒有采用強制性的鎖。兩者的根本區別在于用戶訪問某個被鎖定的文件時,建議性的鎖不會阻止訪問,而強制性的鎖則會阻止訪問,實際上這是為了方便系統組件之間的信息交互另外,Chubby還采用了粗粒度(Coarse-Grained)鎖服務而沒有采用細粒度(Fine-Grained)鎖服務,兩者的差異在于持有鎖的時間,細粒度的鎖持有時間很短Chubby的系統架構3、Chubby中的Paxos算法Chubby系統本質上就是一個分布式的、存儲大量小文件的文件系統,它所有的操作都是在文件的基礎上完成?Chubby最常用的鎖服務中,每一個文件就代表一個鎖,用戶通過打開、關閉和讀取文件,獲取共享(Shared)鎖或獨占(Exclusive)鎖?選舉主服務器過程中,符合條件的服務器都同時申請打開某個文件并請求鎖住該文件?成功獲得鎖的服務器自動成為主服務器并將其地址寫入這個文件夾,以便其他服務器和用戶可以獲知主服務器的地址信息

4、Chubby文件系統5、通信協議?每個Chubby單元是由五個副本組成的,這五個副本中需要選舉產生一個主服務器,這種選舉本質上就是一個一致性問題。實際執行過程中,Chubby使用Paxos算法來解決

?主服務器產生后客戶端的所有讀寫操作都是由主服務器來完成的

a讀操作很簡單,客戶直接從主服務器上讀取所需數據即可

a寫操作就會涉及數據一致性的問題;為了保證客戶的寫操作能夠同步到所有的服務器上,系統再次利用了Paxos算法6、正確性與性能一致性

需要實現的特性高可用性高可靠性支持粗粒度的建議性鎖服務支持小規模文件直接存儲不作考慮的特性高性能存儲能力Chubby的設計目標18Chubby的系統架構19文件系統中文件的權限文件系統中文件操作的權限有哪些?這些權限之間的互斥關系是怎樣的?Chubby系統本質上就是一個分布式的、存儲大量小文件的文件系統Chubby中的鎖就是文件在GFS的例子中,創建文件就是進行“加鎖”操作,創建文件成功的那個server其實就是搶占到了“鎖”用戶通過打開、關閉和存取文件,獲取共享鎖或者獨占鎖;并且通過通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論