《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)

上传人:Co****e 文档编号:53723961 上传时间:2018-09-04 格式:PPT 页数:54 大小:4.55MB
返回 下载 相关 举报
《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)_第1页
第1页 / 共54页
《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)_第2页
第2页 / 共54页
《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)_第3页
第3页 / 共54页
《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)_第4页
第4页 / 共54页
《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)》由会员分享,可在线阅读,更多相关《《云计算(第二版)》教材配套课件4—第二章Google云计算原理与应用(3)(54页珍藏版)》请在金锄头文库上搜索。

1、电子工业出版社云计算(第二版)配套课件,解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作,第2章 Google云计算原理与应用,云计算(第二版)购买网址: 当当网 京东商城,姊妹力作实战Hadoop购买网址: 当当网 京东商城,提 纲, Google文件系统GFS 分布式数据处理MapReduce 分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控基础架构Dapper Google应用程序引擎,设计目标及方案选择 Megastore数据模型 Megastore中的事务及并发控制 Megastore基本架构 核心技术复制

2、 产品性能及控制措施,在互联网的应用中,为了达到好的可扩展性,常常会采用NoSQL存储方式。但是从应用程序的构建方面来看,传统的关系型数据库又有着NoSQL所不具备的优势。 Google设计和构建了用于互联网中交互式服务的分布式存储系统Megastore,该系统成功的将关系型数据库和NoSQL的特点与优势进行了融合,设计目标及方案选择,可用性实现了一个同步的、容错的、适合远距离传输的复制机制。引入Paxos算法并对其做出一定的改进以满足远距离同步复制的要求,可扩展性 借鉴了数据库中数据分区的思想,将整个大的数据分割成很多小的数据分区,每个数据分区连同它自身的日志存放在NoSQL数据库中,具体来

3、说就是存放在Bigtable中,设计目标,一种介于传统的关系型数据库和NoSQL之间的存储技术,尽可能达到高可用性和高可扩展性的统一,数据分区和复制,数据分区和复制,Megastore中,这些小的数据分区被称为实体组集(Entity Groups)。 每个实体组集包含若干实体组(Entity Group,相当于分区中表的概念),而一个实体组中又包含很多的实体(Entity,相当于表中记录的概念)。 从图中还可以看出单个实体组支持ACID语义,实体组集之间只具有比较松散的一致性。每个实体组都通过复制技术在数据中心中保存若干数据副本,这些实体组及其副本都存储在NoSQL数据库(Bigtable)中

4、,设计目标及方案选择 Megastore数据模型 Megastore中的事务及并发控制 Megastore基本架构 核心技术复制 产品性能及控制措施,Megastore数据模型,传统的关系型数据库是通过连接(Join)来满足用户的需求的,但是就Megastore而言,这种数据模型是不合适的,主要有以下三个原因: (1)对于高负载的交互式应用来说,可预期的性能提升要比使用一种代价高昂的查询语言所带来的好处多 (2)Megastore所面对的应用是读远多于写,因此好的选择是将读操作所需要做的工作尽可能地转移到写操作上 (3)在Bigtable这样的键/值存储系统中存储和查询级联数据(Hierarc

5、hical Data)是很方便的,Megastore数据模型怎么设计?,Google设计了一种能够提供细粒度控制的数据模型和模式语言 同关系型数据库一样,Megastore的数据模型是在模式(schema)中定义的且是强类型的(strongly typed) 每个模式都由一系列的表(tables)构成,表又包含有一系列的实体(entities),每实体中包含一系列属性(properties) 属性是命名的且具有类型,这些类型包括字符型(strings)、数字类型(numbers)或者Google的Protocol Buffers。这些属性可以被设置成必须的(required)、可选的(opti

6、onal)或者可重复的(repeated,即允许单个属性上有多个值),数据模型实例,照片共享服务数据模型实例,图中表Photo就是一个子表,因为它声明了一个外键; User则是一个根表。一个Megastore实例中可以有若干个不同的根表,表示不同类型的实体组集,图中实例还可以看到三种不同属性设置,既有必须的(如user_id),也有可选的(如thumbnail_url); 值得注意的是Photo中的可重复类型的tag属性,这也就意味着一个Photo中允许同时出现多个tag属性,索引(Index),Megastore索引分成两大类:局部索引(local index)和全局索引(global in

7、dex) 局部索引定义在单个实体组中,作用域仅限于单个实体组( 如PhotosByTime ) 全局索引则可以横跨多个实体组集进行数据读取操作( 如PhotosByTag )Megastore还提供了一些额外的索引特性: STORING子句(STORING Clause) 可重复的索引(Repeated Indexes) 内联索引(Inline Indexes),Bigtable中数据存储情况,表中不难看出Bigtable的列名实际上是表名和属性名结合在一起得到,不同表中实体可存储在同一个Bigtable行中,设计目标及方案选择 Megastore数据模型 Megastore中的事务及并发控制

8、 Megastore基本架构 核心技术复制 产品性能及控制措施,Megastore中的事务及并发控制,Megastore三种方式的读,分别是current、snapshot和inconsistent 其中current读和snapshot读总是在单个实体组中完成 对于snapshot读,系统取出已知的最后一个完整提交的事务的时间戳,接着从这个位置读数据 inconsistent读忽略日志的状态直接读取最新的值,Megastore中的事务及并发控制,Megastore事务中的写操作采用了预写式日志(Write-ahead Log) 一个写事务总是开始于一个current读以便确认下一个可用的日志

9、位置。提交操作将数据变更聚集到日志,接着分配一个比之前任意一个都高的时间戳,然后使用Paxos将数据变更加入到日志中 协议使用了乐观并发(Optimistic Concurrency):尽管可能有多个写操作同时试图写同一个日志位置,但只会有1个成功,读:获取最后一次提交的事务的时间戳和日志位置,完整事务周期,应用逻辑:从Bigtable读取且聚集数据到日志入口,提交:使用Paxos达到一致,将个入口追加到日志,生效:将数据更新到Bigtable中的实体和索引,清除:清理不再需要的数据,Megastore中的事务机制,消息队列机制 消息能够横跨实体组 每个消息都有一个发送和接收实体组 如果两个实

10、体组是不同的,则传输将是异步 特点 规模:声明一个队列后可以在其他所有的实体组上创建一个收件箱 支持两阶段提交 增加竞争风险,不鼓励使用,Megastore中的事务机制,设计目标及方案选择 Megastore数据模型 Megastore中的事务及并发控制 Megastore基本架构 核心技术复制 产品性能及控制措施,Megastore的基本架构,Megastore中三种副本 完整副本:Bigtable中存储完整的日志和数据 见证者副本:在Paxos算法执行过程中无法产生一个决议时参与投票 只读副本:读取最近过去某一个时间点一致性数据,Megastore的基本架构,Megastore中提供快速读

11、(Fast Reads)和快速写(Fast Writes)机制 快速读 如果读操作不需要副本之间进行通信即可完成,那么读取的效率必然相对较高 利用本地读取(Local Reads)实现快速读,能够带来更好的用户体验及更低的延迟 确保快速读成功的关键是保证选择的副本上数据是最新的。为了达到这一目标,引入了协调者的概念 协调者是一个服务,该服务分布在每个副本的数据中心里面。它的主要作用就是跟踪一个实体组集合 协调者的状态是由写算法来保证,快速写 Megastore采用了一种在主/从式系统中常用的优化方法。如果一次写成功,那么下一次写的时候就跳过准备过程,直接进入接受阶段 Megastore没有使用

12、专门的主服务器,而是使用leaders leader主要是来裁决哪个写入的值可以获取0号提议 优化:提交值最多的位置附近选择一副本作为leader 客户端、网络及Bigtable的故障都会导致一个写操作处于不确定的状态,设计目标及方案选择 Megastore数据模型 Megastore中的事务及并发控制 Megastore基本架构 核心技术复制 产品性能及控制措施,复制的日志,预写式日志,当日志有不完整的前缀时我们就称一个日志副本有“缺失”(Holes) 图中099的日志位置已经被全部清除;100的日志位置被部分清除;101的日志位置被全部副本接受;102的日志位置被获得;103的日志位置被副

13、本A和C接受,副本B则留下了一个“缺失”;104的日志位置则未达到一致性,数据读取,数据读取,数据读取过程: 本地查询(Query Local) 发现位置(Find Position) 本地读取(Local Read) 多数派读取(Majority Read) 追赶 (Catchup) Paxos将会促使绝大多数副本达成一个共识值 达到一种分布式一致状态 验证(Validate) 查询数据(Query Data),数据写入,数据写入完整过程 : (1)接受leader:请求leader接受值作为0号提议(快速写方法),若成功,跳至步骤(3) (2)准备:将值替换成拥有最高提议号的那个值 (3)

14、接受:请求剩余的副本接受该值,如果大多数副本拒绝这个值,返回步骤(2) (4)失效:将不接受值的副本上的协调者进行失效操作 (5)生效:将值的更新在尽可能多的副本上生效。如果选择的值和原来提议的有冲突,返回一个冲突错误,协调者的可用性,协调者在系统中是比较重要的协调者的进程运行在每个数据中心。每次的写操作中都要涉及协调者,因此协调者的故障将会导致系统的不可用,Megastore使用了Chubby锁服务,为了处理请求,一个协调者必须持有多数锁。一旦因为出现问题导致它丢失了大部分锁,协调者就会恢复到一个默认保守状态,除了可用性问题,对于协调者的读写协议必须满足一系列的竞争条件,设计目标及方案选择

15、Megastore数据模型 Megastore中的事务及并发控制 Megastore基本架构 核心技术复制 产品性能及控制措施,可用性分布情况,可用性分布情况,Megastore在Google中已经部署和使用了若干年,有超过100个产品使用Megastore作为其存储系统 从图中可以看出,绝大多数产品具有极高的可用性(99.999%)。这表明Megastore系统的设计是非常成功的,基本达到了预期目标,产品延迟情况分布,应用程序的平均读取延迟在万分之一毫秒之内,平均写入延迟在100至400毫秒之间 避免Megastore的性能下降,可采取以下三种应对方法(可能结合使用): (1)重新选择路由使

16、客户端绕开出现问题的副本 (2)将出现问题副本上的协调者禁用,确保问题的影响降至最小。 (3)禁用整个副本,平均延迟的分布,需要指出:Megastore已经是Google相对过时的存储技术。Google目前正在使用的存储系统是Spanner架构,Spanner的设计目标是能够控制一百万到一千万台服务器,Spanner最强大之处在于能够在50毫秒之内为数据传递提供通道,基本设计目标 Dapper监控系统简介 关键性技术 常用Dapper工具 Dapper使用经验,用户将一个关键字通过Google的输入框传到Google的后台,在我们看来很简单的一次搜索实际上涉及了众多Google后台子系统,这些子系统的运行状态都需要进行监控,广泛可部署性,不间断的监控,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 商业贸易

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号