Chubby

Chubby

Google Chubby是一個分布式鎖服務,Chubby底層一致性實現(xiàn)就是以Paxos為基礎的涣达。

概述

Chubby是一個面向松耦合分布式系統(tǒng)的鎖服務,通常用于為一個由大量小型計算機構成的松耦合分布式系統(tǒng)提供高可用的鎖服務爬泥。一個分布式鎖服務的目的是允許他的客戶端進程同步彼此的操作童番,并對當前所處環(huán)境的基本狀態(tài)信息達成一致。

應用場景

最典型的場景是進行服務器的Master選舉恕齐。GFS使用Chubby來實現(xiàn)對GFS Master服務器的選舉乞娄。

設計目標

Chubby并沒有設計成Paxos算法協(xié)議庫,而是設計成一個需要訪問中心化節(jié)點的分布式鎖服務显歧。這樣做有如下四個好處:

1仪或、對上層應用的侵入性更小

2、便于提供數(shù)據(jù)的發(fā)布和訂閱

3追迟、開發(fā)人員對基于鎖的接口更加熟悉

4、更便捷的構建可靠服務

系統(tǒng)結構

一個典型的Chubby集群骚腥,或者叫Chubby cell敦间,通常由5臺服務器組成。這些副本服務器采用Paxos協(xié)議,通過投票方式決定一個服務器作為Master廓块。一旦一個服務器成為Master厢绝,Chubby會保證一段時間其他服務器不會成為Master,這段時間被成為租期带猴。在運行過程中昔汉,Master服務器會不斷續(xù)租,如果Master服務器發(fā)生故障拴清,余下的服務器會選舉新的Master產生新的Master服務器靶病。

在實際運行中,只有Master服務器才能對數(shù)據(jù)進行寫操作口予,其他服務器使用Paxos協(xié)議從Master服務器上同步數(shù)據(jù)庫數(shù)據(jù)的更新娄周。

Chubby客戶端會向所有服務器輪詢該服務器是否為Master服務器,在詢問過程沪停,那些非Master服務器會將Master服務器標識反饋給客戶端(存儲小數(shù)據(jù))煤辨,可以非常快的定位到Master木张。

客戶端定位到Master后众辨,所有的請求都會發(fā)到Master上,針對寫請求舷礼,Chubby Master會采用一致性協(xié)議將其廣播到所有副本服務器鹃彻,并且在過半機器接受請求后,再響應客戶端且轨。對于讀請求浮声,Master服務器單獨處理即可。

在Chubby運行過程中旋奢,Master服務器會周期性輪詢DNS列表泳挥,會很快感知到服務器地址變更。集群內部其他副本服務器通過復制獲得最新服務器地址列表至朗。

目錄與文件

Chubby提供類似Unix文件的接口屉符。典型節(jié)點路徑:ls/foo/path/node。

鎖與鎖序列器

在分布式系統(tǒng)中锹引,由于網絡的不確定性矗钟,鎖是一個非常復雜的問題。在Chubby中嫌变,任意一個數(shù)據(jù)節(jié)點都可以充當一個讀寫鎖來使用吨艇,Chubby舍棄了嚴格的強制鎖,客戶端可以在沒有任何鎖的情況下訪問Chubby的文件腾啥。

在Chubby中东涡,主要采用鎖延遲和鎖系列器兩種策略來解決以上提出的鎖問題冯吓。

Chubby中的事件通知機制

為了避免大量客戶端輪詢服務器帶來的壓力,Chubby提供了事件通知機制疮跑。Chubby客戶端可以向Chubby注冊事件通知组贺,當觸發(fā)了這些事件后服務端就會向客戶端發(fā)送事件通知。

Chubby中的緩存

Chubby在客戶端中實現(xiàn)了緩存祖娘,并且通過租期機制保證緩存的強一致性失尖。

會話和會話激活

客戶端和Chubby通過TCP連接建立會話,并且通過心跳來保持會話激活渐苏。

Paxos協(xié)議的實現(xiàn)

Chubby服務器的基本架構大致分三層:

1掀潮、最底層是容錯日志系統(tǒng),通過Paxos協(xié)議保證集群上的日志完全一致整以。

2胧辽、日志之上是KV類型的容錯數(shù)據(jù)庫,通過下層的日志來保證一致性和容錯性公黑。

3邑商、最上層是對外提供的分布式鎖服務和小文件存儲服務。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末凡蚜,一起剝皮案震驚了整個濱河市人断,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朝蜘,老刑警劉巖恶迈,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谱醇,居然都是意外死亡暇仲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門副渴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奈附,“玉大人,你說我怎么就攤上這事煮剧〕饴耍” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵勉盅,是天一觀的道長佑颇。 經常有香客問我,道長草娜,這世上最難降的妖魔是什么挑胸? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮宰闰,結果婚禮上茬贵,老公的妹妹穿的比我還像新娘凸克。我一直安慰自己,他們只是感情好闷沥,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咐容,像睡著了一般舆逃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戳粒,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天路狮,我揣著相機與錄音,去河邊找鬼蔚约。 笑死奄妨,一個胖子當著我的面吹牛,可吹牛的內容都是我干的苹祟。 我是一名探鬼主播砸抛,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼树枫!你這毒婦竟也來了直焙?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤砂轻,失蹤者是張志新(化名)和其女友劉穎奔誓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搔涝,經...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厨喂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了庄呈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜕煌。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抒痒,靈堂內的尸體忽然破棺而出幌绍,到底是詐尸還是另有隱情,我是刑警寧澤故响,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布傀广,位于F島的核電站,受9級特大地震影響彩届,放射性物質發(fā)生泄漏伪冰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一樟蠕、第九天 我趴在偏房一處隱蔽的房頂上張望贮聂。 院中可真熱鬧靠柑,春花似錦、人聲如沸吓懈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耻警。三九已至隔嫡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甘穿,已是汗流浹背腮恩。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留温兼,地道東北人秸滴。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像募判,于是被迫代替她去往敵國和親荡含。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內容