版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
分布式鎖服務的設計與實現(xiàn)第一頁,共三十六頁,編輯于2023年,星期日主要內(nèi)容Debby系統(tǒng)整體設計服務器端設計與實現(xiàn)數(shù)據(jù)存儲的設計與實現(xiàn)客戶端設計與實現(xiàn)容錯日志(paxos)的設計與實現(xiàn)第二頁,共三十六頁,編輯于2023年,星期日系統(tǒng)的整體結(jié)構第三頁,共三十六頁,編輯于2023年,星期日Debbyserver實現(xiàn)服務器和客戶端的通信一致性的保證文件、目錄的實現(xiàn)Session的實現(xiàn)事件(Event)管理的實現(xiàn)SnapShot第四頁,共三十六頁,編輯于2023年,星期日服務器和客戶端的通信用戶調(diào)用客戶端庫于服務器通信通過ICE遠程過程調(diào)用實現(xiàn)提供的接口
connect,close,keepAlive,addEvent
getData,setData,create,mkdir,remove,isDir,exists...第五頁,共三十六頁,編輯于2023年,星期日服務器一致性的保證調(diào)用底層Paxos協(xié)議對文件的操作時,把操作提交給PaxosPaxos保證在3臺服務器上操作的一致性Paxos提供的接口
sendProposal()?第六頁,共三十六頁,編輯于2023年,星期日Session的實現(xiàn)服務器維護一個Debby管理器Session通過KeepAlive來保證每個KeepAlive會捎帶事件信息KeepAlive:客戶端等待,服務器受到請求立即返回第七頁,共三十六頁,編輯于2023年,星期日文件、目錄的實現(xiàn)文件、目錄放在內(nèi)存常規(guī)文件系統(tǒng)和臨時文件系統(tǒng)常規(guī)文件系統(tǒng)
map<path,debbyfile>
MemDir<INode>用tree.hh實現(xiàn)臨時文件系統(tǒng)
map<handle,pathlist>第八頁,共三十六頁,編輯于2023年,星期日事件管理的實現(xiàn)Debby維護了一個事件管理器已注冊的事件和已發(fā)生的事件對于已注冊的事件,系統(tǒng)維護一個事件到handle列表的map當心跳發(fā)生時,將發(fā)生的事件返回給訂閱的客戶第九頁,共三十六頁,編輯于2023年,星期日SnapShot只用log恢復服務器帶來的問題:日志將會越來越多恢復時間越來越長本系統(tǒng)采用snapshot(快照)機制解決此問題第十頁,共三十六頁,編輯于2023年,星期日SnapShot將內(nèi)存中的文件系統(tǒng)數(shù)據(jù)結(jié)構直接序列化到磁盤上Snapshot過程執(zhí)行成功后,比snapshot備份時間早的log信息不再需要,可通知paxos將log刪除。第十一頁,共三十六頁,編輯于2023年,星期日SnapShotSnapShot方法增加了額外的復雜性實現(xiàn)SnapShot之前,crush掉的服務器只需從其他機器獲得最近的log即可進行恢復。
實現(xiàn)SnapShot之后,需同時考慮log和snapshot信息。第十二頁,共三十六頁,編輯于2023年,星期日SnapShotclassSnapShot{privatestaticstringDIR_PATH;publicstaticvoidserialize(MemDir&md);publicMemDir&voidUnserialize();}第十三頁,共三十六頁,編輯于2023年,星期日DebbyClient00448161第十四頁,共三十六頁,編輯于2023年,星期日APIvoidcreate(conststring&path,boolephemeral)voidmkdir(conststring&path)voidremove(conststring&path)boolexists(conststring&path)boolisdir(conststring&path)vector<string>list(conststring&path)boollock(conststring&path,boolshare)voidrelease(conststring&path)stringread(conststring&path)voidwrite(conststring&path,conststring&content)voidregcb(conststring&path,EventTypee,shared_ptr<Callback>cb)voidclearcb(conststring&path)第十五頁,共三十六頁,編輯于2023年,星期日LockServerdon’tsupportlockdirectly,clientuseephemeralfiletoimplementlockservice.Whenclientobtainalockonfile,createfilename.lck~ephemeralfile.Iffilealreadyexists,serverwouldthrowaexception,andclientreturnsfailure.Whenclientreleasethelock,simplydeletethefile.第十六頁,共三十六頁,編輯于2023年,星期日Lock(2)Whenclientloseconnectionwithserver,ephemeralfileisdeleted,includingthoseindicatelocks,thuslocksisreleased.Topreventambiguity,userfileisnotallowedtoendwith“~”,sotheyareeasytobedifferentiatedfromfilesusedtoimplementlocks.第十七頁,共三十六頁,編輯于2023年,星期日EventsEventTypeEventCreatedEventRemovedEventChangedEventLockChangedEventArbitraryAlleventwouldapplyonbothdirectoriesandfiles第十八頁,共三十六頁,編輯于2023年,星期日Events(2)Allcallbacksaremanagedbyclient,whenacallbackisfirstregisteredonaevent,theclientregisterstheeventonmaster.Whenaclientreceivesaevent,itinvokeallcallbacksregisteredontheevent.Usercouldcancelallcallbacksonacertainpath,andclientwouldunregistereventsonserver.第十九頁,共三十六頁,編輯于2023年,星期日Event(3)ClientsupplyaCallbackclasstoimplementusecallback,itcontainsapurevirtualfunctionrun().UserimplementtheirownclassbasedonCallback,andimplementtherun()function.Usercouldsaveanynecessaryinformationintheclass.WhenclientinvokeaCallback,itcreateathreadtoinvoketherun()function.第二十頁,共三十六頁,編輯于2023年,星期日ChooseServerTherea5serverinadebbycell,whileonlyoneofthemisthemaster.ClientuseICEmulti-endpointsmechanismtofindtheonlymaster.Clientregistertheaddressofall5serverstoICE,andICEwilltryall5addressestoautomaticallyfindtherightserver,aslongasthereisonlyonemasteratonetime.第二十一頁,共三十六頁,編輯于2023年,星期日GracePeriodWhenthemasterelectionisgoingon,noserviceisavailable,andclientmustwaitfornewmastertobeelected.UseICEretrymechanismtoenablethisfunction,useindicatearetrytimeseriesinwhichICEwillretryconnection,forexample,[3,5,10].Weretryconnectionin[10,30,60]第二十二頁,共三十六頁,編輯于2023年,星期日PaxosFrameworkImplement
forfault-tolerancelog單棟棟10748200網(wǎng)絡實驗室第二十三頁,共三十六頁,編輯于2023年,星期日系統(tǒng)結(jié)構Apiforfault-tolerantlogFromPaxosmadelive第二十四頁,共三十六頁,編輯于2023年,星期日Paxosnormal-caseoperationclientrequetproposalacceptreply012相當于leader客戶的兩種提交方式:1.只能由leader接受請求并提交(我們的做法,chubby)2.所有服務器都可以接受請求,并把這些請求轉(zhuǎn)給leader,由leader提交。(zookeeper)第二十五頁,共三十六頁,編輯于2023年,星期日Paxos消息類型ViewChangeMessage(選leader)HeartBeatMessage(leader租約)PrepareMessage(成leader前的內(nèi)容同步)PrepareOKMessageProposalMessage(提議)AcceptMessage第二十六頁,共三十六頁,編輯于2023年,星期日LeaderElection何時選leader系統(tǒng)啟動時檢測到當前l(fā)eader宕機,并已過leader的租約每次選leader都要提交一個全序的view號View號的產(chǎn)生兩種選leader的方法每臺服務器只提自己當leader可以提別的服務器為leader(我們的實現(xiàn))第二十七頁,共三十六頁,編輯于2023年,星期日PreparePhareLeader被選出后,由leader執(zhí)行,并只執(zhí)行一次保證系統(tǒng)安全的過渡Leadercatchup第二十八頁,共三十六頁,編輯于2023年,星期日ProposalPhare由leader發(fā)起Proposal兩種proposal同步proposal,客戶提交決議后一直等待,直到?jīng)Q定被完成(有可以失敗)異步proposal,客戶提交決議后馬上返回,paxos執(zhí)行完決議后再通知客戶Proposal的限時,重發(fā)第二十九頁,共三十六頁,編輯于2023年,星期日消息的發(fā)送與接收使用boost的asio庫進行網(wǎng)絡通訊采用多播的方式點對點的catchup使用TCP連接接受消息使用異步socket采用多線程多類型的消息傳輸?shù)谌?,共三十六頁,編輯?023年,星期日實驗向paxos不停的提交proposal,讓paxos到保證每臺服務器數(shù)據(jù)的一致性(log)每臺服務器都記log,并且同步寫磁盤對于一個proposal有1秒來還沒答成一致,作提交失敗處理總共4組實驗,每組各進行3次,每次5000個proposal(在單臺機器上模擬)3臺(運行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲公司員工培訓
- 食堂大灶點火規(guī)范培訓
- 廣東省佛山市禪城區(qū)2023-2024學年四年級上學期月考英語試卷(12月份)
- 廣東省江門市蓬江區(qū)省實學校2023-2024學年高一上學期期中考試 化學試題(無答案)
- 信息技術(第2版)(拓展模塊) 教案 項目3、4 DHCP服務器的配置與管理;4 物聯(lián)網(wǎng)
- T-ZFDSA 10-2024 沙棘面制作標準
- Windows Server網(wǎng)絡管理項目教程(Windows Server 2022)(微課版)課件 易月娥 項目5、6 Web和FTP服務器的配置與管理、證書服務器的配置與管理
- 高中語文第1章寫作的多樣性與獨特性第2節(jié)聯(lián)想與想象課件新人教版選修文章寫作與修改
- 骨盆臨床解剖
- 環(huán)保行動未來在手-共筑綠色生活守護地球家園
- 2024年秋季新人教PEP版三年級上冊英語全冊教案
- GB/T 15688-2024動植物油脂不溶性雜質(zhì)含量的測定
- 滬科版(2024)八年級全一冊物理第一學期期中學業(yè)質(zhì)量測試卷 2套(含答案)
- 2024云南黃金集團招聘高校畢業(yè)生72人(高頻重點提升專題訓練)共500題附帶答案詳解
- 化工和危險化學品生產(chǎn)經(jīng)營單位二十條重大隱患判定標準釋義(中化協(xié))
- 愚公移山英文 -中國故事英文版課件
- 部編版五年級上冊《將相和》第二課時語文教案
- 醫(yī)務人員職業(yè)暴露處理流程.doc
- 現(xiàn)代禮儀—湖南大學袁滌非大劉整理版
- 年處理100t中藥車間設計
- 能源熱電公司班組建設工作總結(jié)
評論
0/150
提交評論