简单的来说,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算法这样的协议来解决一致性问题,而是要通过一个锁服务来解决?这样主要有下面这五个好处:
- 大部分开发人员在刚开始开发服务的时候都不会考虑到这种一致性的问题,所以一开始都不会使用一致性协议。只有当服务慢慢成熟以后,才开始认真对待这个问题。采用锁服务可以使得在保持原有的程序架构和通信机制的情况下,通过添加简单的语句就可以解决一致性问题;
- 在很多情况下,并不仅仅是选举出一个Master怎么简单,还需要将这个Master的地址告诉其它人或者保存某个信息,这种时候,使用 Chubby中的文件,不仅仅是提供锁功能,还能在文件中记录下有用的信息(比如Master的地址)。所以,很多的开发人员通过使用Chubby来保存元数据和配置。
- 一个基于锁的开发接口更容易被开发人员所熟悉。并不是所有的开发人员都了解一致性协议的,但大部分人应该都用过锁。
- 一个一致性协议一般来说需要使用到好几台副本来保证高可用性,在这方面,Paxos算法是最明显的例子,而使用Chubby,就算只有一个client也能用。
- 可以看出,之所以用锁服务这样的形式,是因为Chubby不仅仅想解决一致性问题,还可以提供更多更有用的功能。事实上,Google有很多开发人员将Chubby当做Name Service(命名服务)来使用,而且效果非常好。
相关产品
和之前介绍的GFS、MapReduce和BigTable一样,在Hadoop系列中也有一款类Chubby的实现,名为ZooKeeper。在实现方面,ZooKeeper是基于一套自主设计并优化的Two-Phase Commit的协议,并已经成功应用在HBase, Yahoo! Message Broker, Fetch Service of Yahoo! crawler等系统上。
参考资料
- Paxos在大型系统中常见的应用场景. http://timyang.net/tag/zookeeper/
- Google利器之Chubby. http://blog.csdn.net/historyasamirror/archive/2009/02/09/3870168.aspx
分享到:
相关推荐
本书《Google云计算原理-分布式锁服务Chubby》将向你详细讲述谷歌的分布式锁服务Chubby。
在技术实现层面,Google的云计算技术包括Google文件系统(GFS)、MapReduce和Chubby。GFS是一个大规模分布式文件系统,通过主服务器Master和数据块服务器ChunkServer,实现高可用性和容错性。MapReduce是并行数据...
北航云计算公开课06《Google Chubby》是关于分布式系统中的协调服务的深入探讨,尤其聚焦于Google的Chubby服务。Chubby是一个分布式锁服务,它解决了在分布式环境中多个节点间资源分配和同步的问题,类似于操作系统...
- MapReduce、Chubby和BigTable是Google云计算平台的一部分,而EC2属于Amazon的云计算服务。 21. GFS特点: - GFS采用中心服务器模式,不采用边缘服务器模式,且数据不缓存在客户端。 22. GFS实现原因: - 在...
8. **大数据处理平台**:包括BigTable(结构化数据存储)和Chubby(分布式锁服务),以及MapReduce(并行数据处理)。 综上所述,云计算和大数据处理相互关联,共同构成了现代信息技术的基石。通过云计算,企业能够...
- Google的云计算平台包括并行数据处理的MapReduce、分布式锁Chubby和结构化数据表BigTable等技术,但不包括亚马逊的EC2弹性云计算服务。 - MapReduce是一种处理海量数据的并行编程模型,适合并行处理的应用程序。...
【深度剖析云计算背后采用的具体技术】 云计算是一种革命性的计算模式,它通过互联网提供按需访问的共享计算资源和服务。在早期发展阶段,各种规模和类型的提供商纷纷推出基于云计算的应用,其中包括了像亚马逊、...
### 云计算基础课件-Hadoop:Google云计算的开源实现 #### Hadoop简介 Hadoop是一个由Apache基金会维护的开源框架,旨在提供一个高效、可靠且可扩展的分布式计算环境。它能够利用大量的普通硬件(而非昂贵的专业...
The-Chubby-lock-service-for-loosely-coupled-distributed-systems-zh_cnGoogle论文《The Chubby lock service for loosely coupled distributed systems》的中文翻译状态翻译中一起翻译欢迎有精力的同学参加翻译,...
4. **MapReduce**:Google提出的并行数据处理框架,用于处理海量数据,通过将大任务拆分为小任务在多台机器上并行执行,然后将结果合并。 5. **GFS(Google File System)**:Google设计的分布式文件系统,用于存储...
4. **开源云计算技术**: - Hadoop:包含HDFS和MapReduce,是开源的分布式计算框架。 - HDFS:Hadoop分布式文件系统,类似于GFS。 - HBase:基于Hadoop的分布式NoSQL数据库,类似于Bigtable。 - Eucalyptus:...
4. **全球化访问** - 通过互联网提供服务,用户可以随时随地访问。 5. **快速部署与更新** - 快速推出新应用或更新现有应用。 **典型云计算技术** - **Google** 的关键技术包括GFS(Google File System)、...
在技术原理部分,书中提到了Google的GFS、MapReduce、Bigtable、Chubby和App Engine,这些都是Google云计算平台的核心组成部分。亚马逊AWS则包括Dynamo、EC2、S3、SQS、SimpleDB和CloudFront等服务,涵盖了存储、...
##### 4. Hadoop: Google云计算的开源实现 - Hadoop 是一个开源框架,用于分布式处理大量数据集。 - **核心组件**: - **HDFS (Hadoop Distributed File System)**: 分布式文件系统。 - **MapReduce**: 数据处理...
4. **云计算服务模型**:在IaaS计算实现机制中,系统管理模块的核心功能包括负载均衡、节点运行状态监视、节点环境配置等,其中负载均衡是确保服务高可用性的重要手段。 5. **云计算架构**:云计算体系结构通常包括...
- Chubby锁服务:Bigtable依赖Chubby提供分布式一致性,确保数据的一致性和完整性。 3. **MapReduce:大型集群上的简单数据处理**: - 并行计算模型:MapReduce是一种编程模型,用于处理和生成大规模数据集,它将...
该分析旨在探究 Google 云计算技术架构的组成部分,包括分布式文件存储 GFS、并行数据处理模型 MapReduce、分布式锁 Chubby 和结构化数据表 BigTable。这些组件之间的调用关系和作用机理将被深入探讨。 一、Google ...