




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、分布式鎖服務的設計與實現第1頁,共36頁,2022年,5月20日,10點13分,星期一主要內容Debby系統整體設計服務器端設計與實現數據存儲的設計與實現客戶端設計與實現容錯日志(paxos)的設計與實現第2頁,共36頁,2022年,5月20日,10點13分,星期一系統的整體結構第3頁,共36頁,2022年,5月20日,10點13分,星期一Debby server實現服務器和客戶端的通信一致性的保證文件、目錄的實現Session的實現事件(Event)管理的實現SnapShot第4頁,共36頁,2022年,5月20日,10點13分,星期一服務器和客戶端的通信用戶調用客戶端庫于服務器通信通過IC
2、E遠程過程調用實現提供的接口connect, close, keepAlive,addEventgetData, setData, create, mkdir, remove, isDir, exists .第5頁,共36頁,2022年,5月20日,10點13分,星期一服務器一致性的保證調用底層Paxos協議對文件的操作時,把操作提交給PaxosPaxos保證在3臺服務器上操作的一致性Paxos提供的接口sendProposal()第6頁,共36頁,2022年,5月20日,10點13分,星期一Session 的實現服務器維護一個Debby管理器Session通過KeepAlive來保證每個Ke
3、epAlive會捎帶事件信息KeepAlive:客戶端等待,服務器受到請求立即返回第7頁,共36頁,2022年,5月20日,10點13分,星期一文件、目錄的實現文件、目錄放在內存常規文件系統和臨時文件系統常規文件系統map MemDir 用tree.hh實現臨時文件系統map 第8頁,共36頁,2022年,5月20日,10點13分,星期一事件管理的實現Debby維護了一個事件管理器已注冊的事件和已發生的事件對于已注冊的事件,系統維護一個事件到handle列表的map 當心跳發生時,將發生的事件返回給訂閱的客戶第9頁,共36頁,2022年,5月20日,10點13分,星期一SnapShot只用lo
4、g恢復服務器帶來的問題:日志將會越來越多恢復時間越來越長 本系統采用snapshot(快照)機制解決此問題第10頁,共36頁,2022年,5月20日,10點13分,星期一SnapShot將內存中的文件系統數據結構直接序列化到磁盤上Snapshot過程執行成功后,比snapshot備份時間早的log信息不再需要,可通知paxos將log刪除。第11頁,共36頁,2022年,5月20日,10點13分,星期一SnapShotSnapShot方法增加了額外的復雜性實現SnapShot之前,crush掉的服務器只需從其他機器獲得最近的log即可進行恢復。 實現SnapShot之后,需同時考慮log和sn
5、apshot信息。第12頁,共36頁,2022年,5月20日,10點13分,星期一SnapShotclass SnapShotprivate static string DIR_PATH;public static void serialize(MemDir& md);public MemDir& void Unserialize();第13頁,共36頁,2022年,5月20日,10點13分,星期一Debby Client00448161第14頁,共36頁,2022年,5月20日,10點13分,星期一APIvoid create(const string &path, bool ephemer
6、al)void mkdir(const string &path)void remove(const string &path)bool exists(const string &path)bool isdir(const string &path)vector list(const string &path)bool lock(const string &path, bool share)void release(const string &path)string read(const string &path)void write(const string &path, const str
7、ing &content)void regcb(const string &path, EventType e, shared_ptr cb)void clearcb(const string &path)第15頁,共36頁,2022年,5月20日,10點13分,星期一LockServer dont support lock directly, client use ephemeral file to implement lock service.When client obtain a lock on file, create filename.lck ephemeral file. If
8、file already exists, server would throw a exception, and client returns failure.When client release the lock, simply delete the file.第16頁,共36頁,2022年,5月20日,10點13分,星期一Lock(2)When client lose connection with server, ephemeral file is deleted, including those indicate locks, thus locks is released.To pr
9、event ambiguity, user file is not allowed to end with “”, so they are easy to be differentiated from files used to implement locks.第17頁,共36頁,2022年,5月20日,10點13分,星期一EventsEventTypeEventCreatedEventRemovedEventChangedEventLockChangedEventArbitraryAll event would apply on both directories and files第18頁,
10、共36頁,2022年,5月20日,10點13分,星期一Events(2)All callbacks are managed by client, when a callback is first registered on a event, the client registers the event on master.When a client receives a event, it invoke all callbacks registered on the event.User could cancel all callbacks on a certain path, and cli
11、ent would unregister events on server.第19頁,共36頁,2022年,5月20日,10點13分,星期一Event(3)Client supply a Callback class to implement use callback, it contains a pure virtual function run().User implement their own class based on Callback, and implement the run() function. User could save any necessary informat
12、ion in the class.When client invoke a Callback, it create a thread to invoke the run() function.第20頁,共36頁,2022年,5月20日,10點13分,星期一Choose ServerThere a 5 server in a debby cell, while only one of them is the master.Client use ICE multi-endpoints mechanism to find the only master. Client register the ad
13、dress of all 5 servers to ICE, and ICE will try all 5 addresses to automatically find the right server, as long as there is only one master at one time.第21頁,共36頁,2022年,5月20日,10點13分,星期一Grace PeriodWhen the master election is going on, no service is available, and client must wait for new master to be
14、 elected.Use ICE retry mechanism to enable this function, use indicate a retry time series in which ICE will retry connection, for example, 3, 5, 10.We retry connection in 10, 30, 60第22頁,共36頁,2022年,5月20日,10點13分,星期一Paxos Framework Implementfor fault-tolerance log單棟棟 10748200網絡實驗室第23頁,共36頁,2022年,5月20日
15、,10點13分,星期一系統結構Api for fault-tolerant logFrom Paxos made live第24頁,共36頁,2022年,5月20日,10點13分,星期一Paxos normal-case operationclientrequetproposalacceptreply012相當于leader客戶的兩種提交方式: 1.只能由leader接受請求并提交(我們的做法,chubby) 2.所有服務器都可以接受請求,并把這些請求轉給leader,由leader提交。(zookeeper)第25頁,共36頁,2022年,5月20日,10點13分,星期一Paxos消息類型V
16、iewChangeMessage(選leader)HeartBeatMessage(leader租約)PrepareMessage(成leader前的內容同步)PrepareOKMessageProposalMessage(提議)AcceptMessage第26頁,共36頁,2022年,5月20日,10點13分,星期一LeaderElection何時選leader系統啟動時檢測到當前leader宕機,并已過leader的租約每次選leader都要提交一個全序的view號View號的產生兩種選leader的方法每臺服務器只提自己當leader可以提別的服務器為leader(我們的實現)第27頁,
17、共36頁,2022年,5月20日,10點13分,星期一PreparePhareLeader被選出后,由leader執行,并只執行一次保證系統安全的過渡Leader catch up第28頁,共36頁,2022年,5月20日,10點13分,星期一ProposalPhare由leader發起Proposal兩種proposal同步proposal,客戶提交決議后一直等待,直到決定被完成(有可以失敗)異步proposal,客戶提交決議后馬上返回,paxos執行完決議后再通知客戶Proposal的限時,重發第29頁,共36頁,2022年,5月20日,10點13分,星期一消息的發送與接收使用boost的
18、asio庫進行網絡通訊采用多播的方式點對點的catch up使用TCP連接接受消息使用異步socket采用多線程多類型的消息傳輸第30頁,共36頁,2022年,5月20日,10點13分,星期一實驗向paxos不停的提交proposal,讓paxos到保證每臺服務器數據的一致性(log)每臺服務器都記log,并且同步寫磁盤對于一個proposal有1秒來還沒答成一致,作提交失敗處理總共4組實驗,每組各進行3次,每次5000個proposal(在單臺機器上模擬)3臺 (運行2臺,運行3臺)5臺 (運行3臺,運行5臺)第31頁,共36頁,2022年,5月20日,10點13分,星期一結果1-3臺機器機器數(3臺)運行時間提交失敗數(5000次提交)平均每秒提交數每100失敗率只運行2臺99.133050.7次/秒0.02795.1260101.8564運行3臺126.893038.95次/秒0.013128.1541130.1071第32頁,共36頁,2022年,5月20日,10點13分,星期一結果2-5臺機器機器數(5臺)運行時間提交失敗數(5000次提交)平均每秒提交數每100失敗數3臺204.4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業電源技術及其發展趨勢
- 工業設計與商業價值的結合實踐
- 工作中的時間管理工具應用
- 工作效率優化與管理效能提升
- 工業風格建筑特色及設計要素
- 工程制圖中對于坐標和空間的理解及表達方式
- 工作場所安全管理與職業病預防
- 工作匯報中的有效表達策略-基于故事化的視角
- 工廠設備的日常維護與保養
- 工程設計與施工技術探討
- 了解中醫心理學在臨床中的應用
- 《人本主義學習理論》課件
- 彩鋼板消防安全培訓課件
- 2023年洪江市社區工作者招聘考試真題
- 基層領導干部的官德修養(zk-1)課件
- 責任與擔當班會課件
- 煙草公司設施安裝施工方案
- 解毒藥及機理(動物藥理學課件)
- 新修訂《土地管理法》考試題庫及答案
- 小老虎過生日
- 2023-2024學年廣西壯族自治區南寧市小學語文六年級期末深度自測試卷詳細參考答案解析
評論
0/150
提交評論