作者:刘旭晖 Raymond 转载请注明出处
Email:colorant at 163.com
BLOG:http://blog.csdn.net/colorant/
更多论文阅读笔记 http://blog.csdn.net/colorant/article/details/8256145
关键字
Chubby, Paxos, 分布式锁服务
== 目标问题 ==
为分布式系统提供一个粗颗粒度的锁服务,同时提供小容量的文件存储服务
== 核心思想 ==
使用服务形式而不是Library形式来提供Paxos逻辑的解决方案。附带提供小容量文件存储服务用来存储决策的结果和其它辅助信息等,用来满足系统分发告知的需求。
锁不是强制的,需要客户端遵循获得锁才能操作数据的规范。
一个Chubby的服务典型的由5个节点组成,通过Master lease来选举和维持一个主节点,所有的客户端读写操作都导向主节点来完成,主节点通过Paxos过程同步副本节点的数据。
为了用较小的代价来支持大量的客户端连接。系统提供事件通知的机制来减少客户端Polling的需要。但是还是有很多应用是需要Polling的,因此进一步使用Cache的机制在客户端缓存结果。
事件通知包括:文件内容的修改,子节点的添加删除(实现例如发现新服务等),chubby Master失效,文件句柄失效等等。
客户端在服务器端维护一个依靠KeepAlive信息更新的Session,通过KeepAlive消息的传递来更新Cache等。
== 相关研究,项目等 ==
Paxos 同步的理论基础
Zookeeper 提供类似的文件API接口,以及客户端Cache等机制,用于分布式系统协同工作,但是不提供锁服务,客户端自己通过瞬态文件等的支持用自己特定的规则实现锁服务。
== 其它 ==
设计的初衷是提供分布式锁服务,但是在Google内部,由于文件存储,客户端Cache等机制,被大量用作为NameService (DNS服务)