分布式锁服务的设计与实现优秀课件.ppt
《分布式锁服务的设计与实现优秀课件.ppt》由会员分享,可在线阅读,更多相关《分布式锁服务的设计与实现优秀课件.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分布式锁服务的设计与实现第1页,本讲稿共36页主要内容Debby系统整体设计服务器端设计与实现数据存储的设计与实现客户端设计与实现容错日志(paxos)的设计与实现第2页,本讲稿共36页系统的整体结构第3页,本讲稿共36页Debby server实现服务器和客户端的通信一致性的保证文件、目录的实现Session的实现事件(Event)管理的实现SnapShot第4页,本讲稿共36页服务器和客户端的通信用户调用客户端库于服务器通信通过ICE远程过程调用实现提供的接口connect,close,keepAlive,addEventgetData,setData,create,mkdir,remov
2、e,isDir,exists.第5页,本讲稿共36页服务器一致性的保证协议Paxos调用底层Paxos对文件的操作时,把操作提交给台服务器上操作的一致性3保证在Paxos提供的接口PaxossendProposal()第6页,本讲稿共36页Session 的实现服务器维护一个Debby管理器Session通过KeepAlive来保证每个KeepAlive会捎带事件信息KeepAlive:客户端等待,服务器受到请求立即返回第7页,本讲稿共36页文件、目录的实现文件、目录放在内存常规文件系统和临时文件系统常规文件系统map MemDir 用tree.hh实现临时文件系统map 第8页,本讲稿共36
3、页事件管理的实现Debby维护了一个事件管理器已注册的事件和已发生的事件对于已注册的事件,系统维护一个事件到handle列表的map 当心跳发生时,将发生的事件返回给订阅的客户第9页,本讲稿共36页SnapShot只用log恢复服务器带来的问题:日志将会越来越多恢复时间越来越长 本系统采用snapshot(快照)机制解决此问题第10页,本讲稿共36页SnapShot将内存中的文件系统数据结构直接序列化到磁盘上Snapshot过程执行成功后,比snapshot备份时间早的log信息不再需要,可通知paxos将log删除。第11页,本讲稿共36页SnapShotSnapShot方法增加了额外的复杂
4、性实现SnapShot之前,crush掉的服务器只需从其他机器获得最近的log即可进行恢复。实现SnapShot之后,需同时考虑log和snapshot信息。第12页,本讲稿共36页SnapShotclass SnapShotprivate static string DIR_PATH;public static void serialize(MemDir&md);public MemDir&void Unserialize();第13页,本讲稿共36页Debby Client00448161第14页,本讲稿共36页APIvoid create(const string&path,bool e
5、phemeral)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 string&c
6、ontent)void regcb(const string&path,EventType e,shared_ptr cb)void clearcb(const string&path)第15页,本讲稿共36页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 file already exists,server would
7、throw a exception,and client returns failure.When client release the lock,simply delete the file.第16页,本讲稿共36页Lock(2)When client lose connection with server,ephemeral file is deleted,including those indicate locks,thus locks is released.To prevent ambiguity,user file is not allowed to end with“”,so t
8、hey are easy to be differentiated from files used to implement locks.第17页,本讲稿共36页EventsEventTypeEventCreatedEventRemovedEventChangedEventLockChangedEventArbitraryAll event would apply on both directories and files第18页,本讲稿共36页Events(2)All callbacks are managed by client,when a callback is first regis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 服务 设计 实现 优秀 课件
限制150内