- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Paxos算法 Paxos算法 Paxos算法 Paxos算法 Paxos算法 Chubby系统设计 Chubby系统设计 Chubby系统设计 Chubby系统设计 Chubby中的Paxos Chubby中的Paxos Chubby中的Paxos Chubby中的Paxos Chubby文件系统 Chubby文件系统 Chubby文件系统 Chubby文件系统 Chubby文件系统 Chubby客户端与服务器端的通信过程 故障处理 故障处理 一致性 安全性 性能优化 ?系统实现时,Chubby还使用了一致性客户端缓存(Consistent Client-Side Caching)技术,这样做的目的是减少通信压力,降低通信频率 ?在客户端保存一个和单元上数据一致的本地缓存,需要时客户可以直接从缓存中取出数据而不用再和主服务器通信 ?当某个文件数据或者元数据需要修改时,主服务器首先将这个修改阻塞;然后通过查询主服务器自身维护的一个缓存表,向对修改的数据进行了缓存的所有客户端发送一个无效标志(Invalidation) ?客户端收到这个无效标志后会返回一个确认(Acknowledge),主服务器在收到所有的确认后才解除阻塞并完成这次修改 这个过程的执行效率非常高,仅仅需要发送一次无效标志即可,因为对于没有返回确认的节点,主服务器直接认为其是未缓存 第七讲-Google分布式锁服务Chubby ? Paxos算法 ?Chubby系统设计 ?Chubby中的Paxos ?Chubby文件系统 ?通信协议 ?正确性与性能 ?每个Chubby单元是由五个副本组成的,这五个副本中需要选举产生一个主服务器,这种选举本质上就是一个一致性问题。实际执行过程中,Chubby使用Paxos算法来解决 ?主服务器产生后客户端的所有读写操作都是由主服务器来完成的 ?读操作很简单,客户直接从主服务器上读取所需数据即可 ?写操作就会涉及数据一致性的问题;为了保证客户的写操作能够同步到所有的服务器上,系统再次利用了Paxos算法 ?Chubby用ACL形式安全保障措施。系统有三种ACL名:写ACL名(Write ACL Name)、读ACL名(Read ACL Name)和变更ACL名(Change ACL Name) ?只要不被覆写,子节点都是直接继承父节点的ACL名 ?ACL同样被保存在文件中,它是节点元数据的一部分,用户在进行相关操作时首先需要通过ACL来获取相应的授权 Chubby的ACL机制 用户chinacloud提出向文件CLOUD中写入内容请求。CLOUD首先读取自身的写ACL名fun,接着在fun中查到了chinacloud这一行记录,于是返回信息允许chinacloud对文件进行写操作,此时chinacloud才被允许向CLOUD写入内容。其他的操作和写操作类似 ?为满足系统高可扩展性,Chubby目前已经采取了一些措施:比如提高主服务器默认的租约期、使用协议转换服务将Chubby协议转换成较简单的协议、客户端一致性缓存等;除此之外,Google的工程师们还考虑使用代理(Proxy)和分区(Partition)技术 ?代理可以减少主服务器处理KeepAlive以及读请求带来的服务器负载,但是它并不能减少写操作带来的通信量 ?使用分区技术的话可以将一个单元的命名空间(Name Space)划分成N份。除了少量的跨分区通信外,大部分的分区都可以独自地处理服务请求。通过分区可以减少各个分区上的读写通信量,但不能减少KeepAlive请求的通信量 第七讲-Google分布式锁服务Chubby ? Paxos算法 ?Chubby系统设计 ?Chubby中的Paxos ?Chubby文件系统 ?通信协议 ?正确性与性能 一种建议性的锁而不是强制性的锁;具有更大的灵活性 ?GFS使用Chubby选取一个GFS主服务器 ?Bigtable使用Chubby指定一个主服务器并发现、控制与其相关的子表服务器 ?Chubby还可以作为一个稳定的存储系统存储包括元数据在内的小数据 ?Google内部还使用Chubby进行名字服务(Name Server) Chubby ?Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题 Paxos算法 ?Leslie Lamport最先提出的一种基于消息传递(Messages Passing)的一致性算法,用于解决分布式系统中的一致性问题 分布式系统一致性问题——就是如何保证系统中初始状态相同的各个节点在执行相同的操作序列时,看到的指令序
文档评论(0)