google公司论文
分布的一致性问题:一组process每个人提出一个value,所有process能选出一个value并通知到所有process。(问题本身不难,有一个server做决策。但网络,节点的不稳定性使问题变得复杂。有效的算法代表为paxos。)chubby也是解决这个问题的一个小工具。例如在GFS的server选主过程中,所有server到chubbyserver上创建同一个文件,但最后只有一个server能有权创建这个文件,他就是master。通过分布式的文件系统,提供了一种锁机制,创建文件就是加锁,通过打开关闭,读取文件获得共享锁和独占锁;并通过通信机制,向用户传送信息。
chubby相对于paxos协议的好处,轻量级,易增删。另外consensus协议需要多个备份,而chubby只有一个client也能使用。
chubby是advisory lock,其他人可以(只是不建议)不解锁就直接访问文件。相对的mandatory lock必须解锁。
chubby是coarse-grained lock,可能锁住一个文件长达几小时,几天。
架构:chubbycell(服务端),chubby library(客户端),RPC(通信机制)
chubbycell包括5台server(replicas),5台replicas需要选出一台master(consensus protocol)。lease时间内有效。只有master有权响应client提交的读写DB的操作。并且写操作要更新其他replicas数据。
chubby的底层分布式文件系统。类unix。chubbycell和client之间由event时间注册的通知方法。
cache 和keepalive握手协议:
client会在本地保存一个chubbycell上对应的文件,有有效和无效两种状态/。可以节省网络流量并且提高效应效率。
摘要:
chubby提供在松耦合分布式系统上的粗粒度锁和可靠存储。重点在可用性和可靠性而不是高性能。(与之相对的是zookeeper)本文阐述了设计思想,以及如何更改来适应不同的应用场景。
introduction:
google bittable和GFS都使用chubby锁来实现选主问题中的同步问题。
性能吞吐率第二,可靠性和可用性第一。
异步共识由paxos协议解决
design:
有两个主要组件,client api和RPC。