《云计算》学习笔记3——Google的云计算原理与应用(分布式锁服务——Chubby)

合集下载

第3章 云计算平台

第3章 云计算平台

阿里云服务平台-1
阿里云服务器(Elastic Compute Service,简称ECS)是一种简单高效、处理能力可弹性伸缩的云计 算服务,能够帮助用户快速构建更稳定、更安全的应用,提升运维效率,降低IT成本,使企业更 专注于核心业务创新。 批量计算服务(Batch Computing Service,简称BatchCompute)是一种适用于大规模并行批处理作 业的分布式云服务。BatchCompute支持并发规模的海量作业,由系统自动完成资源管理、作业调 度和数据加载,并按实际使用量计费。
Google云计算平台核心技术-7 6. Dapper监控系统 Google设计了Dapper监控系统。Dapper能对几乎所有的Google后 台服务器进行监控,并将海量的监控信息记录汇集在一起产生有 效的监控信息。
Dapper监控信息的汇总需要经过以下三个步骤: (1)将区间的数据写入到本地的日志文件。 (2)将所有机器上的本地日志文件汇集在一起。 (3)将汇集后的数据写入到BigTable存储库中。
Amazon云平台-1
Amazon的云计算服务主要包括:弹性计算云服务EC2、简单存储服务S3、 简单数据库服务SimpleDB、简单队列服务SQS、弹性MapReduce服务、内 容推送服务CloudFront、移动服务、安全服务和身份服务等。这些服务涉 及云计算的方方面面,用户可以根据自己的需要选用一个或多个,而且 所有这些服务都是按需获取计算资源,具有极强的可扩展性和灵活性。
专有网络(Virtual Private Cloud,简称VPC)支持用户基于阿里云构建出一个隔离的网络环境,并 对该虚拟网络进行配置,包括选择自有IP地址范围、划分网段、配置路由表及网关等。
弹性伸缩(Auto Scaling,简称AS)是一种根据用户的业务需求和策略,对弹性计算资源进行经济 地自动调整的管理服务。阿里云平台的AS机制能够在业务增长时自动增加ECS实例,并在业务下 降时自动减少ECS实例。

关于云计算的读书笔记

关于云计算的读书笔记

关于云计算的读书笔记云计算,这个在当今科技领域中频繁出现的词汇,正以其强大的影响力改变着我们的生活和工作方式。

在阅读了相关的书籍和资料后,我对云计算有了更深入的理解和认识。

云计算,简单来说,就是将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。

它就像是一个超级强大的计算工厂,用户不再需要自己购买昂贵的硬件设备和软件,只需要通过网络连接,就能按需使用各种计算资源。

云计算的特点十分显著。

首先是超大规模。

云计算的服务器数量众多,能够提供强大的计算能力。

这使得处理海量数据变得轻而易举,无论是大型企业的数据分析,还是科学研究中的复杂计算,都能在云计算平台上高效完成。

其次是虚拟化。

用户无需关心具体的硬件设施,只需要关注自己所需要的服务。

这就好像你在住酒店,不需要关心酒店的电路、管道是如何铺设的,只需要享受舒适的房间和服务。

再者是高可靠性。

云计算采用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,即使个别服务器出现故障,也不会影响整体的服务。

另外,通用性和高可扩展性也是其重要特点。

云计算不针对特定的应用,能够同时支撑不同的应用运行,并且可以根据用户的需求轻松地扩展和收缩资源。

云计算的服务模式主要有三种:IaaS(基础设施即服务)、PaaS(平台即服务)和 SaaS(软件即服务)。

IaaS 提供服务器、存储和网络等基础设施服务,用户可以在上面部署和运行自己的操作系统和应用程序。

就好比你租了一个空房子,里面的装修和布置都由你自己来决定。

PaaS 则提供了平台环境,包括操作系统、数据库、中间件等,用户可以在这个平台上开发、测试和部署自己的应用。

这类似于你租了一个带基本装修的房子,你只需要添置家具和软装就能入住。

SaaS则直接为用户提供了应用程序,用户可以通过网络使用这些应用,无需自己安装和维护。

比如你直接入住了一个设施齐全、服务周到的酒店。

云计算的应用场景非常广泛。

Google云计算原理

Google云计算原理

引言概述:云计算作为当今信息技术领域的热点技术之一,在现代社会中,已经成为了各行各业不可或缺的一部分。

作为全球最大的互联网公司之一,Google的云计算平台在业界有着极高的声誉。

本文将重点介绍Google云计算原理的相关内容,包括其架构、安全性、可扩展性以及机器学习等方面,旨在使读者对Google云计算平台有更深入的了解。

正文内容:一、Google云计算架构1.数据中心架构a.Google数据中心规模及分布情况b.数据中心的层次结构和组成元素c.数据中心网络架构及其优势2.虚拟化技术a.介绍Google在虚拟化领域的最新技术和发展b.虚拟机管理及资源调度c.虚拟化在Google云计算中的作用和优势3.分布式存储系统a.Google文件系统(GFS)的原理和优势b.分布式文件系统和对象存储的比较c.实现大规模数据处理的分布式文件系统架构二、Google云计算平台的安全性1.数据隔离与保护a.数据隔离的重要性及Google的解决方案b.访问控制和身份认证机制c.数据加密和解密技术2.系统和网络安全性a.Google网络安全架构的特点和设计原则b.服务器和虚拟机的安全管理c.防火墙和入侵检测系统的应用3.数据备份和恢复a.Google云计算平台的数据备份策略b.容错和故障恢复机制c.数据冗余和镜像技术的应用三、Google云计算平台的可扩展性1.水平扩容a.数据中心资源的动态调整和分配b.网络和存储的动态扩容策略c.负载均衡和自动扩展机制2.弹性计算a.弹性资源管理和优化b.虚拟机的自动迁移和负载均衡c.弹性计算的成本效益和应用案例3.可用性和可靠性a.服务水平协议(SLA)的实现和管理b.系统冗余和容错技术在Google云计算中的应用c.故障预测和自动恢复机制四、Google云计算平台上的机器学习1.云端机器学习平台a.机器学习在云计算平台中的应用场景b.Google云计算平台提供的机器学习服务和工具c.云端机器学习算法和模型的训练与部署2.数据处理和分析a.大规模数据处理和分析的需求b.Google云计算平台支持的大数据处理工具和框架c.数据流处理和实时分析的实现原理3.与机器学习a.深度学习和的关系b.GoogleTensorProcessingUnit(TPU)的介绍和应用c.机器学习在Google云计算平台上的最新进展五、总结通过对Google云计算原理的详细介绍,我们可以看到Google 在云计算领域的核心竞争力和创新能力。

google云计算体系架构

google云计算体系架构

Chubby
25
并行计算基础
摩尔定律正在走向终结…
单芯片容纳晶体管的增加,对制造工艺提出要求 CPU制造18nm技术,电子泄漏问题 CPU主频已达3GHz时代,难以继续提高
散热问题(发热太大,且难以驱散) 功耗太高
未来的发展:多核
26
什么样的问题适合并行计算?
斐波那契序列(Fibonacci) X
<World 1> <China 1> <Si-tech 1>
<World 1> <China 1> <Si-tech 1>
Reduce
<Hello 3> <Bye 3> <World 2> <China 2> <Si-tech 2>
34
MapReduce容错机制
背景
MapReduce设计初衷:由普通PC组成的集群来处理超大规模的 数据,所以有效的错误保障机制是必不可少
在下一章将具体介绍GAE具体的应用
10
Google 云计算SaaS
3. 隶属SaaS的Google云计算
提供在线“Word、Excel、PPT” 提供在线MAP 提供在线日历管理 ……
11
Google如何实现云?
Google云计算平台技术架构
分布式文件系统 Google Distributed File System

并行数据处理 MapReduce

分布式锁 Chubby
第 二
结构化数据表 BigTable
章 详
Google云计算应用
细 介
MapReduce BigTable

Google_云计算三大论文中文版

Google_云计算三大论文中文版

Google_云计算三大论文中文版Google公司是全球最大的搜索引擎和云计算服务提供商之一。

Google的云计算架构和算法在业界受到广泛关注,其通过一系列论文来介绍这些技术,并分享了它们的最佳实践。

本文将针对Google公司发表的三篇云计算论文(论文名称分别为《MapReduce:Simplified Data Processing on Large Clusters》、《The Google File System》、《Bigtable: A Distributed Storage System for Structured Data》),进行分类讲解,以帮助读者更好地了解云计算领域的相关技术。

一、MapReduce:Simplified Data Processing on Large ClustersMapReduce论文是Google公司云计算领域中的重要代表作之一,它的作者是Jeffrey Dean和Sanjay Ghemawat。

MAPREDUCE是一种大规模数据处理技术,其主要目的是在一个大型集群中分Distribute and Parallel Execution(分布式和并行执行)处理任务。

MapReduce将计算逻辑分解成两个部分- Map阶段和Reduce阶段。

在Map阶段,数据被按键提取;在Reduce阶段,数据被收集以计算结果。

这两个阶段可以在许多物理节点上并行执行,大大提高了计算效率。

此外,该论文引入了GFS分布式文件系统,为MapReduce提供了强大的文件系统支持。

二、The Google File SystemGFS是由Sanjay Ghemawat、Howard Gobioff和Shun-TakLeung共同编写的一篇论文。

它旨在解决分布式文件系统上的问题,以应对Google的大规模数据集和两台甚至三台以上的机器发生故障的情况。

GFS可以处理超过100TB以上的数据集,加速数据读取和写入,处理大规模数据存储集群。

(完整word版)移动云计算导论复习资料整理

(完整word版)移动云计算导论复习资料整理

移动云计算导论复习资料1选择题1。

云计算是对( D )技术的发展与运用A. 并行计算B网格计算C分布式计算D三个选项都是2。

将平台作为服务的云计算服务类型是( B )A。

IaaS B.PaaS C。

SaaS D。

三个选项都不是3。

将基础设施作为服务的云计算服务类型是( A )A. IaaSB.PaaSC.SaaSD.三个选项都不是4. IaaS计算实现机制中,系统管理模块的核心功能是( A )A。

负载均衡 B 监视节点的运行状态C应用API D. 节点环境配置5. 云计算体系结构的( C )负责资源管理、任务管理用户管理和安全管理等工作A。

物理资源层 B. 资源池层C。

管理中间件层 D. SOA构建层6。

云计算按照服务类型大致可分为以下类(A、B、C )A。

IaaS B。

PaaS C. SaaS D。

效用计算7. 下列不属于Google云计算平台技术架构的是( D )A. 并行数据处理MapReduce B。

分布式锁ChubbyC。

结构化数据表BigTable D.弹性云计算EC28。

( B )是Google提出的用于处理海量数据的并行编程模式和大规模数据集的并行运算的软件架构.A. GFSB.MapReduce C。

Chubby D.BitTable9。

Mapreduce适用于( D )A。

任意应用程序B。

任意可在windows servet2008上运行的程序C。

可以串行处理的应用程序 D. 可以并行处理的应用程序10。

MapReduce通常把输入文件按照( C )MB来划分A. 16 B32 C64 D12811. 与传统的分布式程序设计相比,Mapreduce封装了( ABCD )等细节,还提供了一个简单而强大的接口.A。

并行处理B。

容错处理C。

本地化计算 D. 负载均衡12。

( D )是Google的分布式数据存储于管理系统A。

GFS B. MapReduce C。

Chubby D.Bigtable13. 在Bigtable中,( A )主要用来存储子表数据以及一些日志文件A。

《云计算技术与应用》在线考试复习题及参考答案

《云计算技术与应用》在线考试复习题及参考答案

《云计算技术与应用》在线考试复习题及参考答案第一题问题:请简要解释云计算的定义和主要特点。

参考答案:云计算是指通过互联网等网络进行数据的存储、管理和处理的一种计算方式。

其主要特点包括:1. 虚拟化:云计算利用虚拟化技术将计算资源进行抽象和隔离,实现资源的灵活分配和利用。

2. 弹性扩展:云计算可以根据实际需求动态地调整计算资源的规模,实现按需分配和释放。

3. 高可用性:云计算通过数据的冗余备份和多节点部署,提供高可用性的计算服务。

4. 资源共享:云计算通过多租户的方式,将计算资源共享给多个用户,提高资源利用率和经济效益。

5. 自助服务:云计算提供自助式的服务请求,用户可以根据需要自主选择和配置所需的计算资源。

第二题问题:请列举云计算的三种部署模式并简要说明其特点。

参考答案:云计算的三种部署模式分别是:公有云、私有云和混合云。

1. 公有云:公有云是由云服务提供商建立和管理的云平台,为广大用户提供公共的计算资源和服务。

其特点是可按需使用,无需自行构建和维护基础设施,但安全性和隐私性相对较低。

2. 私有云:私有云是由用户自行建立和管理的云平台,用于满足特定组织或企业的需求。

其特点是具备较高的安全性和隐私性,但需要投入较大的成本和资源进行建设和维护。

3. 混合云:混合云是公有云和私有云的混合部署模式,将公共云和私有云相互连接起来,形成统一的云计算平台。

其特点是可以按需扩展计算资源,同时兼顾安全性和灵活性。

第三题问题:请简述云计算的优势和挑战。

参考答案:云计算的优势包括:1. 成本节约:云计算通过资源共享和弹性扩展,可以降低组织和个人的计算成本。

2. 灵活性和可扩展性:云计算可以根据实际需求动态地调整计算资源的规模,提供灵活的计算能力。

3. 高可用性和容灾性:云计算通过数据冗余备份和多节点部署,可以保证计算服务的高可用性和容灾能力。

4. 资源共享和协同工作:云计算可以将计算资源共享给多个用户,提高资源利用率和协同工作的效率。

Google云计算原理

Google云计算原理

Google云计算原理Google云计算原理1.介绍1.1 概述Google云计算是一项基于云计算技术的服务,用户可以通过互联网访问Google云上的各种计算资源和服务,包括计算、存储、数据库、机器学习等。

1.2 优势- 弹性扩展:Google云计算支持根据需求动态扩展计算资源,以适应不同的业务需求。

- 可靠性:Google拥有全球范围的数据中心,提供高可用性和持久性的计算资源。

- 安全性:Google云计算提供多重安全保护措施,包括数据加密、身份验证和访问控制等,确保用户数据的安全。

- 灵活性:Google云计算提供多种计算模型和编程接口,方便用户根据需求选择最适合的解决方案。

2.计算模型2.1 虚拟机实例- 虚拟机实例是最基本的计算资源,用户可以根据需求创建和管理虚拟机实例,自定义大小、操作系统和软件配置等。

- 虚拟机实例的计费方式有按需计费和预付费两种模式,用户可以根据实际需求选择适合的计费方式。

2.2 容器- 容器是一种轻量级的计算单元,可以在不同的环境中运行,比如虚拟机、物理机或者云平台。

- Google提供的容器服务(Google Kubernetes Engine)可以帮助用户管理和调度容器,实现高效的容器化部署。

2.3 服务器无状态函数- 服务器无状态函数是一种无需预留或管理服务器的计算模型,用户只需要编写函数代码并到云平台,即可在需要时触发函数执行。

- Google提供的服务器无状态函数服务(Google Cloud Functions)可以自动扩展和管理函数实例,提供快速、无缝的函数执行环境。

3.存储服务3.1 对象存储- 对象存储是一种提供可扩展、高可用性的存储服务,用户可以将文件以对象的形式存储在云上,通过HTTP或者HTTPS访问。

- Google提供的对象存储服务(Google Cloud Storage)可以用于存储和管理各种类型的数据,包括图片、视频、日志文件等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、分布式锁服务今天,要接触有些难理解的知识点了,这也许就是涉及到当时赵致琢老师强调的在中国没人能有资格讲和讲得清的一块—分布式算法。

说实话,这块看了两遍了,到现在还不敢说自己人懂了一半啊·!ChubbyØGoogle设计的提供粗粒度锁服务(???)的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题——一种建议性的锁(相信看过《UNIX环境下高级编程》的人对建议性的锁这个名词不会陌生),而不是一种强制性的锁:具有更大的灵活性ØGFS使用Chubby选取一个GFS主服务器ØBigtable使用Chubby指定一个主服务器并发现、控制与其相关的子表服务器ØChubby还可以作为一个稳定的存储系统存储包括元数据在内的小数据ØGoogle内部还使用Chubby进行名字服务(Name Server)想像一下,要在大规模集群的条件下,保证所有指令和数据的一致性(即:在初始状态相同情况下,要求各结点接收到同样相同指令,且最终状态一致)会遇到什么样的困难?——这也许正是分布式算法要发挥作用的境地,很多时候设计的算法根本不可能会是十全十美。

Chubby中即要用到Paxos算法1、Paxos算法试想想:该方案存在什么缺陷????试图由以下三点来保证数据的一致性:(1)决议只有被proposers提出后才能批准(2)每次只批准一个决议(3)只有决议确定被批准后learners才能获取这个决议系统的约束条件:p1:每个acceptor只接受它得到的第一个决议p1表明每个可以接收到多个决议,为区分,对每个决议进行编号,后得到的决议编号要大于先到的编号;p1不是很完备!!(??一个问题可能是:对于每个结点,其收到的所谓第一个编号是否都是一样??)P2:一旦某个决议通过,之后通过的决议必须和该决议保持一致P1+P2——>P2a:一旦某个决议V得到通过,之后任何acceptor再批准的决议必须是VP2a和P1是有矛盾的!(我的理解是:有可能这个V不是某个结点收到的第一个决议)P2a——》P2b:一旦某个决议V得到通过,之后任何proposer再提出的决议必须是VP1和P2b保证条件(2),彼此之间不存在矛盾。

但是P2b很难通过一种技术手段来实现它,因此提出了一个蕴涵P2b的约束P2cP2b——》P2c:如果一个编号为n的提案具有值v,那么存在一个“多数派”,要么它们中没有谁批准过编号小于n的任何提案,要么它们进行的最近一次批准具有值v决议通过的两个阶段:准备阶段:proposers选择一个提案并将它的编号设为n,然后将它发送给acceptors中的一个―多数派‖。

Acceptors收到后,如果提案的编号大于它已经回复的所有消息,则acceptors 将自己上次的批准回复给proposers,并不再批准小于n的提案(那么,可以问问:如果小于它已经回复的所有消息呢?这个思考之后,对算法的流程就有个印象——但似乎这样一想,这中间的延迟倒很是个问题,看来,这个算法还是未弄懂!!)批准阶段:当proposers接收到acceptors 中的这个―多数派‖的回复后,就向回复请求的acceptors发送accept请求,在符合acceptors一方的约束条件下,acceptors收到accept 请求后即批准这个请求解决一致性问题算法:为了减少决议发布过程中的消息量,acceptors将这个通过的决议发送给learners的一个子集,然后由这个子集中的learners去通知所有其他的learners;特殊情况:如果两个proposer在这种情况下都转而提出一个编号更大的提案,那么就可能陷入活锁。

此时需要选举出一个president,仅允许president提出提案2、Chubby的系统设计Chubby中还添加了一些新的功能特性;这种设计主要是考虑到以下几个问题:1、开发者初期很少考虑系统的一致性,但随着开发进行,问题会变得越来越严重。

单独的锁服务可以保证原有系统架构不会发生改变,而使用函数库很可能需要对系统架构做出大幅度的改动2、系统中很多事件发生是需要告知其他用户和服务器,使用一个基于文件系统的锁服务可以将这些变动写入文件中。

有需要的用户和服务器直接访问这些文件即可,避免因大量系统组件之间事件通信带来系统性能下降3、基于锁的开发接口容易被开发者接受。

虽然在分布式系统中锁的使用会有很大的不同,但是和一致性算法相比,锁显然被更多的开发者所熟知Paxos算法实现过程中需要一个“多数派”就某个值达成一致,本质上就是分布式系统中常见的quorum机制;为保证系统高可用性,需要若干台机器,但使用单独锁服务的话一台机器也能保证这种高可用性Chubby设计过程中一些细节问题值得关注:在Chubby系统中采用了建议性的锁而没有采用强制性的锁。

两者的根本区别在于用户访问某个被锁定的文件时,建议性的锁不会阻止访问,而强制性的锁则会阻止访问,实际上这是为了方便系统组件之间的信息交互另外,Chubby还采用了粗粒度(Coarse-Grained)锁服务而没有采用细粒度(Fine-Grained)锁服务,两者的差异在于持有锁的时间,细粒度的锁持有时间很短3、Chubby中的Paxos算法(个人疑问:从上面来看,似乎上面给我们的启发是——我们无需在整个系统的每个环节保持数据和指令的一致性,只需其操作日志是一致,那么说明其操作一致??)ØChubby设计者借鉴了Paxos的两种解决机制:给协调者指派序号或限制协调者可以选择的值F指派序号的方法–(1)在一个有n个副本系统中,为每个副本分配一个id ,其中0≤ir≤n-1。

则副本的序号,其中k的初始值为0 ("则副本的序号,其中k的初始值为0 "这句话可能写得有点问题,这里没看懂)–(2)某个副本想成为协调者之后,它就根据规则生成一个比它以前的序号更大的序号(实际上就是提高k的值),并将这个序号通过propose消息广播给其他所有的副本–(3)如果接受到广播的副本发现该序号比它以前见过的序号都大,则向发出广播的副本返回一个promise消息,并且承诺不再接受旧的协调者发送的消息。

如果大多数副本都返回了promise消息,则新的协调者就产生了F限制协调者可以选择的值–Paxos强制新的协调者必须选择和前任相同的值ØChubby做了一个重要优化来提高系统效率—在选择某一个副本作为协调者之后就长期不变,此时协调者就被称为主服务器(Master)F客户端的数据请求由主服务器完成,Chubby保证在一定时间内有且仅有一个主服务器,这个时间就称为主服务器租约期(Master Lease)F客户端需要确定主服务器的位置,可向DNS发送一个主服务器定位请求,非主服务器的副本将对该请求做出回应Ø Chubby对于Paxos论文中未提及的一些技术细节进行了补充,所以Chubby的实现是基于Paxos,但其技术手段更加的丰富,更具有实践性4、Chubby文件系统Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统,它所有的操作都是在文件的基础上完成ØChubby最常用的锁服务中,每一个文件就代表一个锁,用户通过打开、关闭和读取文件,获取共享(Shared)锁或独占(Exclusive)锁Ø选举主服务器过程中,符合条件的服务器都同时申请打开某个文件并请求锁住该文件Ø成功获得锁的服务器自动成为主服务器并将其地址写入这个文件夹,以便其他服务器和用户可以获知主服务器的地址信息ØChubby的文件系统和UNIX类似F例如在文件名―/ls/foo/wombat/pouch‖中,ls代表lock service,这是所有Chubby文件系统的共有前缀;foo是某个单元的名称;/wombat/pouch则是foo这个单元上的文件目录或者文件名Ø Google对Chubby做了一些与UNIX不同的改变F例如Chubby不支持内部文件的移动;不记录文件的最后访问时间;另外在Chubby 中并没有符号连接(Symbolic Link,又叫软连接,类似于Windows系统中的快捷方式)和硬连接(HardLink,类似于别名)的概念Ø在具体实现时,文件系统由许多节点组成,分为永久型和临时型,每个节点就是一个文件或目录。

节点中保存着包括ACL(Access Control List,访问控制列表)在内的多种系统元数据o5、通信协议故障处理客户端租约过期Ø客户端向主服务器发出一个KeepAlive请求(上图1)Ø如果有需要通知的事件时则主服务器会立刻做出回应,否则等到客户端的租约期C1快结束的时候才做出回应(图2),并更新主服务器租约期为M2Ø客户端接到回应后认为该主服务器仍处于活跃状态,于是将租约期更新为C2并立刻发出新的KeepAlive请求(图3)Ø宽限期内,客户端不会立刻断开其与服务器端的联系,而是不断地做探询,当它接到客户端的第一个KeepAlive请求(图4)时会拒绝(图5)Ø客户端在主服务器拒绝后使用新纪元号来发送KeepAlive请求(图6)Ø新的主服务器接受这个请求并立刻做出回应(图7)如果客户端接收到这个回应的时间仍处于宽限期内,系统会恢复到安全状态,租约期更新为C3。

如果在宽限期未接到主服务器的相关回应,客户端终止当前的会话主服务器出错正常情况下旧的主服务器出现故障后系统会很快地选举出新的主服务器,新选举需要经历以下九个步骤:(1)产生一个新的纪元号以便今后客户端通信时使用,这能保证当前的主服务器不必处理针对旧的主服务器的请求(2)只处理主服务器位置相关的信息,不处理会话相关的信息(3)构建处理会话和锁所需的内部数据结构(4)允许客户端发送KeepAlive请求,不处理其他会话相关的信息(5)向每个会话发送一个故障事件,促使所有的客户端清空缓存(6)等待直到所有的会话都收到故障事件或会话终止(7)开始允许执行所有的操作(8)如果客户端使用了旧的句柄则需要为其重新构建新的句柄(9)一定时间段后(1分钟),删除没有被打开过的临时文件夹——如果这一过程在宽限期内顺利完成,则用户不会感觉到任何故障的发生,也就是说新旧主服务器的替换对于用户来说是透明的,用户感觉到的仅仅是一个延迟Ø系统实现时,Chubby还使用了一致性客户端缓存(Consistent Client-Side Caching)技术,这样做的目的是减少通信压力,降低通信频率F在客户端保存一个和单元上数据一致的本地缓存,需要时客户可以直接从缓存中取出数据而不用再和主服务器通信F当某个文件数据或者元数据需要修改时,主服务器首先将这个修改阻塞;然后通过查询主服务器自身维护的一个缓存表,向对修改的数据进行了缓存的所有客户端发送一个无效标志(Invalidation)F客户端收到这个无效标志后会返回一个确认(Acknowledge),主服务器在收到所有的确认后才解除阻塞并完成这次修改——这个过程的执行效率非常高,仅仅需要发送一次无效标志即可,因为对于没有返回确认的节点,主服务器直接认为其是未缓存6、正确性与性能一致性Ø每个Chubby单元是由五个副本组成的,这五个副本中需要选举产生一个主服务器,这种选举本质上就是一个一致性问题。

相关文档
最新文档