云计算背后的秘密(4)-Chubby
作者 吴朱华 | 2010-12-14 17:55 | 类型 云计算, 弯曲推荐 | 3条用户评论 »
系列目录 云计算的秘密简单的来说,Chubby属于分布式锁服务,通过Chubby,一个分布式系统中的上千个client都能够对某项资源进行“加锁”或者“解锁”,常用于BigTable和MapReduce等系统内部的协作工作,在实现方面是通过对文件的创建操作来实现“加锁”,并在其内部采用了著名科学家Leslie Lamport的Paxos算法。 技术概览在实现机制方面,Chubby本身是一个分布式的文件系统,并提供一些机制使得Client可以在Chubby服务上创建文件和执行一些文件的基本操作。那么,Chubby是怎样实现这样的“锁”功能的?就是通过文件。Chubby中的“锁”就是文件,创建文件其实就是进行“加锁”操作,创建文件成功的那个服务器其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁,并且通过通信机制,向用户发送更新信息。 图1. Chubby的架构 在架构上,Chubby集群一般有5台机器组成,每台机器都有一个Replica(副本),其中有一个Replica会被选为Master节点,Replica在结构和能力上相互对等,Replica使用Paxos协议来保持日志的一致性,Replica都有可能离线,然后重新上线。重新上线后,需要保持与其它节点数据的一致。Client端使用Chubby的客户端库来访问。 主要优点为什么不是直接实现一个类似于Paxos算法这样的协议来解决一致性问题,而是要通过一个锁服务来解决?这样主要有下面这五个好处:
相关产品和之前介绍的GFS、MapReduce和BigTable一样,在Hadoop系列中也有一款类Chubby的实现,名为ZooKeeper。在实现方面,ZooKeeper是基于一套自主设计并优化的Two-Phase Commit的协议,并已经成功应用在HBase, Yahoo! Message Broker, Fetch Service of Yahoo! crawler等系统上。 参考资料
| |
雁过留声
“云计算背后的秘密(4)-Chubby”有3个回复
小吴,你是我见到的最优秀的大宋年轻人之一。 坚持理想! 你一定会有收获!
呵呵,谢谢首席过奖啊,我会坚持下去的:)
写的很不错哦!支持下!