google分布式锁服务Cubby正确性与性能 - 新闻中心 - 福州哈唐网络-福建IDC企业!专注云主机及服务器租用托管13年!

新闻中心

首页 > 新闻中心 > 行业新闻 >

google分布式锁服务Cubby正确性与性能

时间:2016-11-17 16:19:04   阅读:

1. 一致性
 
  前面提到过每个Chubby单元是由五个副本组成的,这五个副本中需要选举产生一个主服务器,这种选举本质上就是一个一致性问題。在实际的执行过程中,Chubby使用Paxos算法来解决这个何题。
 
  主服务器产生后客户端的所有读写操作都是由主服务器来完成的。读操作很简单,客户直接从主服务器上读取所需数据即可,但是写操作就会涉及数据一致性的问題。为了保证客户的写操作能够同步到所有的服务器上,系统再次利用了Paxos算法。因此,可以看出Paxos算法在分布式一致性问题中的作用是巨大的
 
2.安全性
 
  Chubby采用的是ACL形式的安全保障措施。系统中有三种ACL名,分别是写ACL名(WriteACLName)、读 ACL名(ReadACLName)和变更ACL名(ChaugeACL Name)。只要不被覆写,子节点都是直接继承父节点的ACL名。ACL同样被保存在文件中,它是节点元数据的一部分,用户在进行相关操作时首先需要通过ACL来获取相应的授权。图2-11是一个用户成功写文件所需经历的过程。
 
\
 
  用户chinacloud提出向文件CLOUD中写入内容的请求。CLOUD首先读取自身的写ACL名妇女,接着在fun中査到了chinacloud这一行记录,于是返回信息允许chinacloud 对文件进行写操作,此时chinadoud才被允许向CLOUD写入内容。其他的操作和写操作类似。
 
3.性能优化
 
  为了满足系统的高可扩展性,Chubby目前已经采取了一些措施。比如提高主服务器默认的租约期、使用协议转换服务将Chubby协议转换成较简单的协议、客户端一致性缓存等。除此之外,Google的工程师们还考虑使用代理(Proxy)和分区(Partition)技术,虽然目前这两种技术并没有实际使用,但是在设计时还是被包含进系统,不排除将來使用的可能。代理可以减少主服务器处理KeepAlive以及读请求带来的服务器负载,但是它并不能减少写操作带来的通信量。Google自己的数据统计表明,在所有的请求中,写请求仅占极少的一部分,几乎可以忽略不计。使用分区技术的话可以将一个单元的命名空间(Name Space)划分成AT份。除了少量的跨分区通信外,大部分的分区都可以独自地处理服务请求。同过分区可以减少各个分区上的读写通信量,但不能减少KeepAlive请求的缉信量。因此,如果需要的话,将代理和分区技术结合起来使用才可以明显提髙系统同时处理的服务请求量。


闽公网安备 35010002000114号