分布式锁服务-debby的设计与实现

分布式锁服务-debby的设计与实现

ID:10037442

大小:771.01 KB

页数:36页

时间:2018-05-12

分布式锁服务-debby的设计与实现_第1页
分布式锁服务-debby的设计与实现_第2页
分布式锁服务-debby的设计与实现_第3页
分布式锁服务-debby的设计与实现_第4页
分布式锁服务-debby的设计与实现_第5页
资源描述:

《分布式锁服务-debby的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、分布式锁服务--debby的设计与实现Ifox小组:单栋栋,赵东升,樊楷,苏飞主要内容Debby系统整体设计服务器端设计与实现数据存储的设计与实现客户端设计与实现容错日志(paxos)的设计与实现系统的整体结构Debbyserver实现服务器和客户端的通信一致性的保证文件、目录的实现Session的实现事件(Event)管理的实现SnapShot服务器和客户端的通信用户调用客户端库于服务器通信通过ICE远程过程调用实现提供的接口 connect,close,keepAlive,addEvent getData,setData,create,mkdir,remove,isD

2、ir,exists...服务器一致性的保证调用底层Paxos协议对文件的操作时,把操作提交给PaxosPaxos保证在3台服务器上操作的一致性Paxos提供的接口 sendProposal()Session的实现服务器维护一个Debby管理器Session通过KeepAlive来保证每个KeepAlive会捎带事件信息KeepAlive:客户端等待,服务器受到请求立即返回文件、目录的实现文件、目录放在内存常规文件系统和临时文件系统常规文件系统 map MemDir用tree.hh实现临时文件系统 map

3、list>事件管理的实现Debby维护了一个事件管理器已注册的事件和已发生的事件对于已注册的事件,系统维护一个事件到handle列表的map当心跳发生时,将发生的事件返回给订阅的客户SnapShot只用log恢复服务器带来的问题:日志将会越来越多恢复时间越来越长本系统采用snapshot(快照)机制解决此问题SnapShot将内存中的文件系统数据结构直接序列化到磁盘上Snapshot过程执行成功后,比snapshot备份时间早的log信息不再需要,可通知paxos将log删除。SnapShotSnapShot方法增加了额外的复杂性实现SnapShot之前,crush掉的服

4、务器只需从其他机器获得最近的log即可进行恢复。实现SnapShot之后,需同时考虑log和snapshot信息。SnapShotclassSnapShot{privatestaticstringDIR_PATH;publicstaticvoidserialize(MemDir&md);publicMemDir&voidUnserialize();}DebbyClient00448161APIvoidcreate(conststring&path,boolephemeral)voidmkdir(conststring&path)voidremove(conststring

5、&path)boolexists(conststring&path)boolisdir(conststring&path)vectorlist(conststring&path)boollock(conststring&path,boolshare)voidrelease(conststring&path)stringread(conststring&path)voidwrite(conststring&path,conststring&content)voidregcb(conststring&path,EventTypee,shared_ptr

6、lback>cb)voidclearcb(conststring&path)LockServerdon’tsupportlockdirectly,clientuseephemeralfiletoimplementlockservice.Whenclientobtainalockonfile,createfilename.lck~ephemeralfile.Iffilealreadyexists,serverwouldthrowaexception,andclientreturnsfailure.Whenclientreleasethelock,simplydeleteth

7、efile.Lock(2)Whenclientloseconnectionwithserver,ephemeralfileisdeleted,includingthoseindicatelocks,thuslocksisreleased.Topreventambiguity,userfileisnotallowedtoendwith“~”,sotheyareeasytobedifferentiatedfromfilesusedtoimplementlocks.EventsEventTypeEventCreatedEventRe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。