`
liuxinglanyue
  • 浏览: 562672 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

云计算背后的秘密(4)-Chubby(转)

阅读更多

简单的来说,Chubby属于分布式锁服务,通过Chubby,一个分布式系统中的上千个client都能够对某项资源进行“加锁”或者“解锁”,常用于BigTable和MapReduce等系统内部的协作工作,在实现方面是通过对文件的创建操作来实现“加锁”,并在其内部采用了著名科学家Leslie Lamport的Paxos算法。

技术概览

在实现机制方面,Chubby本身是一个分布式的文件系统,并提供一些机制使得Client可以在Chubby服务上创建文件和执行一些文件的基本操作。那么,Chubby是怎样实现这样的“锁”功能的?就是通过文件。Chubby中的“锁”就是文件,创建文件其实就是进行“加锁”操作,创建文件成功的那个服务器其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁,并且通过通信机制,向用户发送更新信息。

chubby arch

图1. Chubby的架构

在架构上,Chubby集群一般有5台机器组成,每台机器都有一个Replica(副本),其中有一个Replica会被选为Master节点,Replica在结构和能力上相互对等,Replica使用Paxos协议来保持日志的一致性,Replica都有可能离线,然后重新上线。重新上线后,需要保持与其它节点数据的一致。Client端使用Chubby的客户端库来访问。

主要优点

为什么不是直接实现一个类似于Paxos算法这样的协议来解决一致性问题,而是要通过一个锁服务来解决?这样主要有下面这五个好处:

  1.  
    1. 大部分开发人员在刚开始开发服务的时候都不会考虑到这种一致性的问题,所以一开始都不会使用一致性协议。只有当服务慢慢成熟以后,才开始认真对待这个问题。采用锁服务可以使得在保持原有的程序架构和通信机制的情况下,通过添加简单的语句就可以解决一致性问题;
    2. 在很多情况下,并不仅仅是选举出一个Master怎么简单,还需要将这个Master的地址告诉其它人或者保存某个信息,这种时候,使用 Chubby中的文件,不仅仅是提供锁功能,还能在文件中记录下有用的信息(比如Master的地址)。所以,很多的开发人员通过使用Chubby来保存元数据和配置。
    3. 一个基于锁的开发接口更容易被开发人员所熟悉。并不是所有的开发人员都了解一致性协议的,但大部分人应该都用过锁。
    4. 一个一致性协议一般来说需要使用到好几台副本来保证高可用性,在这方面,Paxos算法是最明显的例子,而使用Chubby,就算只有一个client也能用。
    5. 可以看出,之所以用锁服务这样的形式,是因为Chubby不仅仅想解决一致性问题,还可以提供更多更有用的功能。事实上,Google有很多开发人员将Chubby当做Name Service(命名服务)来使用,而且效果非常好。

 

相关产品

和之前介绍的GFS、MapReduce和BigTable一样,在Hadoop系列中也有一款类Chubby的实现,名为ZooKeeper。在实现方面,ZooKeeper是基于一套自主设计并优化的Two-Phase Commit的协议,并已经成功应用在HBase, Yahoo! Message Broker, Fetch Service of Yahoo! crawler等系统上。

 

参考资料

  1.  
    1. Paxos在大型系统中常见的应用场景. http://timyang.net/tag/zookeeper/
    2. Google利器之Chubby. http://blog.csdn.net/historyasamirror/archive/2009/02/09/3870168.aspx

 

延伸阅读:

  1.  
    1. 云计算背后的秘密(3)-BigTable
    2. 云计算背后的秘密(2)-GFS
    3. 云计算背后的秘密(1)-MapReduce

分享到:
评论

相关推荐

    Google云计算原理-分布式锁服务Chubby

    本书《Google云计算原理-分布式锁服务Chubby》将向你详细讲述谷歌的分布式锁服务Chubby。

    云计算快速入门笔记 - 。。。。。。

    在技术实现层面,Google的云计算技术包括Google文件系统(GFS)、MapReduce和Chubby。GFS是一个大规模分布式文件系统,通过主服务器Master和数据块服务器ChunkServer,实现高可用性和容错性。MapReduce是并行数据...

    北航云计算公开课06 Google Chubby

    北航云计算公开课06《Google Chubby》是关于分布式系统中的协调服务的深入探讨,尤其聚焦于Google的Chubby服务。Chubby是一个分布式锁服务,它解决了在分布式环境中多个节点间资源分配和同步的问题,类似于操作系统...

    云计算与大数据处理--4.doc

    云计算与大数据处理是现代信息技术领域的重要组成部分,它们在推动数字化转型和企业创新方面发挥着关键作用。以下是这两个领域的核心知识点: **云计算部分** 1. **云计算定义**:云计算是一种基于互联网的计算...

    分布式系统与云计算复习资料2

    - MapReduce、Chubby和BigTable是Google云计算平台的一部分,而EC2属于Amazon的云计算服务。 21. GFS特点: - GFS采用中心服务器模式,不采用边缘服务器模式,且数据不缓存在客户端。 22. GFS实现原因: - 在...

    移动云计算导论复习资料整理.doc

    - Google的云计算平台包括并行数据处理的MapReduce、分布式锁Chubby和结构化数据表BigTable等技术,但不包括亚马逊的EC2弹性云计算服务。 - MapReduce是一种处理海量数据的并行编程模型,适合并行处理的应用程序。...

    深度剖析云计算背后采用的具体技术.doc

    【深度剖析云计算背后采用的具体技术】 云计算是一种革命性的计算模式,它通过互联网提供按需访问的共享计算资源和服务。在早期发展阶段,各种规模和类型的提供商纷纷推出基于云计算的应用,其中包括了像亚马逊、...

    云计算基础课件-Hadoop:Google云计算的开源实现 .ppt

    ### 云计算基础课件-Hadoop:Google云计算的开源实现 #### Hadoop简介 Hadoop是一个由Apache基金会维护的开源框架,旨在提供一个高效、可靠且可扩展的分布式计算环境。它能够利用大量的普通硬件(而非昂贵的专业...

    1-云计算复习题.pdf

    云计算是信息技术领域的一个重要概念,它涉及虚拟化、并行计算、分布式计算、网络技术和软件服务等多个方面。以下是对云计算相关知识点的详细说明: 1. **虚拟化**:虚拟化技术是云计算的基础,它允许将物理资源...

    The-Chubby-lock-service-for-loosely-coupled-distributed-systems-zh_cn:Google论文《The Chubby lock service for loosely coupled distributed systems》的中文翻译

    The-Chubby-lock-service-for-loosely-coupled-distributed-systems-zh_cnGoogle论文《The Chubby lock service for loosely coupled distributed systems》的中文翻译状态翻译中一起翻译欢迎有精力的同学参加翻译,...

    [PPT]《云计算》教材配套课件14-总结与展望

    4. **开源云计算技术**: - Hadoop:包含HDFS和MapReduce,是开源的分布式计算框架。 - HDFS:Hadoop分布式文件系统,类似于GFS。 - HBase:基于Hadoop的分布式NoSQL数据库,类似于Bigtable。 - Eucalyptus:...

    [PPT]《云计算》教材配套课件1-云计算技术概述

    **云计算技术概述** 云计算是一种基于互联网的计算方式,它通过共享大规模分布式计算资源,如硬件、软件和服务,来实现高效能、高可用性和低成本的计算。这种计算模型颠覆了传统IT架构,使得用户无需直接拥有和管理...

    [PPT]《云计算》教材配套课件13-云计算理论研究热点

    在技术原理部分,书中提到了Google的GFS、MapReduce、Bigtable、Chubby和App Engine,这些都是Google云计算平台的核心组成部分。亚马逊AWS则包括Dynamo、EC2、S3、SQS、SimpleDB和CloudFront等服务,涵盖了存储、...

    云计算课件

    ### 云计算基础知识与关键技术 #### 一、云计算概述 云计算是一种通过互联网按需提供计算资源和服务的方式,包括软件、硬件和存储资源等。它让用户无需了解底层技术细节就能享受便捷的服务,大大降低了企业及个人...

    云计算期末试题.doc

    4. **云计算服务模型**:在IaaS计算实现机制中,系统管理模块的核心功能包括负载均衡、节点运行状态监视、节点环境配置等,其中负载均衡是确保服务高可用性的重要手段。 5. **云计算架构**:云计算体系结构通常包括...

    Google云计算三大论文中文版

    - Chubby锁服务:Bigtable依赖Chubby提供分布式一致性,确保数据的一致性和完整性。 3. **MapReduce:大型集群上的简单数据处理**: - 并行计算模型:MapReduce是一种编程模型,用于处理和生成大规模数据集,它将...

    Google云计算应用场景分析

    该分析旨在探究 Google 云计算技术架构的组成部分,包括分布式文件存储 GFS、并行数据处理模型 MapReduce、分布式锁 Chubby 和结构化数据表 BigTable。这些组件之间的调用关系和作用机理将被深入探讨。 一、Google ...

Global site tag (gtag.js) - Google Analytics