栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

Google云计算之Chubby

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Google云计算之Chubby

Chubby
  • 1.什么是Chubby?
  • 2.Chubby中的Paxos算法
  • 3.Chubby的系统设计
  • 4.Chubby的文件系统
  • 5.Chubby的通信协议
  • 6.Chubby的相关特点

1.什么是Chubby?
  • Chubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。
  • 通过使用Chubby的锁服务,用户可以确保数据操作过程中的一致性。
  • Chubby还可以作为一个稳 定的存储系统存储包括元数据在内的小数据。
2.Chubby中的Paxos算法

Paxos算法是Leslie Lamport最先提出的一种基于消息传递(Messages Passing)的 一致性算法,用于解决分布式系统中的一致性问题。

  • 最底层是一个容错的日志,该日志对于数据库的正确性提供了重要的支持。不同副本上日志的一致性正是通过Paxos算法来保证的。副本之间通过特定的Paxos协议进行 通信,同时本地文件中还保存有一份同Chubby中相同的日志数据。
  • 最底层之上是一个容错的数据库,这个数据库主要包括一个快照(Snapshot) 和一个记录数据库操作的重播日志(Replay-log),每一次的数据库操作最终都将提交至日志中。和容错的日志类似的是,本地文件中也保存着一份数据库数据副本。
  • Chubby构建在这个容错的数据库之上,Chubby利用这个数据库存储所有的数据。Chubby的客户端通过特定的Chubby协议和单个的Chubby副本进行通信。
3.Chubby的系统设计
  • 设计目标

    • 高可用性和高可靠性
    • 高扩展性
    • 支持粗粒度的建议性锁服务
    • 服务信息的直接存储
    • 支持通报机制
    • 支持缓存机制
  • 考虑的问题

    • 通常情况下开发者在开发的初期很少考虑系统的一致性问题,但是随着开发的 不断进行,这种问题会变得越来越严重。
    • 系统中很多事件的发生是需要告知其他用户和服务器的,使用一个基于文件系 统的锁服务可以将这些变动写入文件中。
    • 基于锁的开发接口容易被开发者接受。虽然在分布式系统中锁的使用会有很大 的不同,但是和一致性算法相比,锁显然被更多的开发者所熟知。
  • 基本架构

4.Chubby的文件系统

Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统,它所有的操作 都是在文件的基础上完成的。

5.Chubby的通信协议

客户端和主服务器之间的通信是通过KeepAlive握手协议来维持的

  • 客户端租约过期
    • 刚开始时,客户端向主服务器发出一个KeepAlive请求(见图2-10中的1)
    • 如果有需要通知的事件时则主服务器会立刻做出回应
    • 否则主服务器并不立刻对这个请求做出回应,而是等到客户端的租约期C1快结束的时候才做出回应(见图2-10中的2),并更新主 服务器租约期为M2。
  • 主服务器出错
    • 产生一个新的纪元号以便今后客户端通信时使用,这能保证当前的主服务器不 必处理针对旧的主服务器的请求。
    • 只处理主服务器位置相关的信息,不处理会话相关的信息。
    • 构建处理会话和锁所需的内部数据结构。
    • 允许客户端发送KeepAlive请求,不处理其他会话相关的信息。
    • 向每个会话发送一个故障事件,促使所有的客户端清空缓存。
    • 等待直到所有的会话都收到故障事件或会话终止。
    • 开始允许执行所有的操作。
    • 如果客户端使用了旧的句柄则需要为其重新构建新的句柄。
    • 一定时间段后(1分钟),删除没有被打开过的临时文件夹。
6.Chubby的相关特点
  • 一致性

    前面提到过每个Chubby单元是由五个副本组成的,这五个副本中需要选举产生一个主服务器,这种选举本质上就是一个一致性问题。在实际的执行过程中,Chubby使用 Paxos 算法来解决这个问题。

  • 安全性

    Chubby采用的是ACL形式的安全保障措施。

  • 性能优化

    为了满足系统的高可扩展性,Chubby目前已经采取了一些措施,比如:提高主服务器默认的租约期、使用协议转换服务将Chubby协议转换成较简单的协议、客户端一致性缓存等。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号