移动云计算可行性研究_第1页
移动云计算可行性研究_第2页
移动云计算可行性研究_第3页
移动云计算可行性研究_第4页
移动云计算可行性研究_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于移动互联网的云计算 PaaS 平台的研究一、立项依据移动互联网已成为继大型机、小型机、个人电脑、桌面互联网之后的第五个技术发展周期,移动互联网正逐渐渗透到人们生活、工作的各个领域,短信、铃图下载、移动音乐、手机游戏、视频应用、手机支付、位置服务等丰富多彩的移动互联网应用迅猛发展,正在深刻改变信息时代的社会生活。知名投行摩根斯坦利近期发布的分析报告预测称,移动互联网的发展速度要快于桌面互联网,并且其规模将未来几年内迅速超越桌面互联网。图 1.摩根斯坦利移动/桌面互联网发展对比分析根据投行摩根斯坦利的报告全球 3G 用户普及率已经达到 20%,跨过了“高科技的裂谷”,有可能迎来新的发展高峰期。

2、图 2. 摩根斯坦利 3G 用户规模分析随着3G 网络的加速部署,国内移动互联网的用户规模也呈现快速成长的态势,截至2010年 6 月,中国移动互联网用户规模已达 2.77 亿。与此同时,移动互联网的市场规模也得到了迅速扩大。根据艾瑞咨询发布的中国移动互联网市场数据显示,2009 年中国移动互联网市场规模已达到 147.8 亿,进入快速发展阶段。以 Iphone AppStore 为代表的移动应用平台目前下载量已经过亿,各类 App 应用已经达到 6.5 万,而国内的如移动Mobile Market 等各类应用数目也已近万。移动互联网应用也朝着多样化和多媒体化发展。图 3.3G 智能手机应用比

3、例但由于移动设备本身存在的局限性(计算存储能力有限,更重要的是电池容量有限),在很大程度上限制了应用的发展。而此时云计算凭借强大的计算能力和庞大的存储空间恰能解决移动设备的局限性问题,而且随着技术的发展,越来越多的应用会向网络化发展,云计算的出现无疑为其提供了理想的后台承载平台。一方面,从应用者角度来说,利用云计算技术可以突破移动设备的资源瓶颈,极大扩展移动应用的使用范围。另一方面,从开发者角度来说,利用云计算技术,能在相当程度上解决移动设备多样性和访问量落差较大等问题。因此,云计算技术会是移动互联网发展的必然选择。此外,利用云计算后台作为中介,可以将移动互联网和桌面互联网连接在一起,真正实现

4、广义上的互联互通。移动云计算不仅是未来发展的重要方向,而且具有重大社会经济意义。构建移动云计算平台不仅可以支撑移动应用的发展,进一步拉动移动互联网经济,而且可以通过云计算平台这个中介,将电子商务与移动互联网,将开发者与使用者,将社会与个人,将企业与个人,将个人与个人之间的关系全部打通,进入全民参与互联网的新阶段,全面提升国家的信息化水平。二、国内外研究现状和发展趋势纯粹应用于移动互联网的云计算方面,目前国内外均未做出较大涉及,但可以参考桌面互联网云计算,对移动云计算做出大致分析。目前云计算主要分为三个方向:IaaS(Infrastructure as a Service)基础架构即服务、Paa

5、S(Platform as a Service)平台即服务、SaaS(Software as a Service)软件即服务。分别由企业界的亚马逊、Google、S 三家公司推动。下面就从这几个方向进行分析:(一) IaaS:IaaS,也即将硬件设备等基础资源封装成服务供用户使用。此方向最早由亚马逊推出,并实现商业化运营。随后 IBM 和EMC 又推出了公共云和私有云这两个概念。实际上,亚马逊云也就是所谓的公共云。而在私有云方面则是 IBM 和EMC 在不遗余力的推动中。(1) 公共云:公共云泛指部署在公共计算平台中,对公共开放的云计算平台。在这一方向中,主要以亚马逊为主。图 4.亚马逊云计算

6、技术服务体系从技术层面上分析,亚马逊云最底层技术是虚拟机技术(KVM/Xen)目前云计算技术的基石。在其之上是 Eucalyptus 云计算管理软件。亚马逊提供的各种服务也就是在这些系统基础上实现的。Eucalyptus 包含五个主要组件 Cloud Controller (CLC)、Cluster Controller (CC)、Node Controller (NC)、Walrus (W)、Storage Controller (SC) ,它们能相互协作共同提供所需的云服务。这些组件使用具有 WS-Security 的 SOAP 消息传递安全地相互通信。其拓扑图如下:图 5. Eucaly

7、ptus 拓扑图a)Cloud Controller (CLC)在 Eucalyptus 云内,这是主要的控制器组件,负责管理整个系统。它是所有用户和管理员进入 Eucalyptus 云的主要入口。所有客户机通过基于 SOAP 或 REST 的 API 只与 CLC 通信。由 CLC 负责将请求传递给正确的组件、收集它们并将来自这些组件的响应发送回至该客户机。这是 Eucalyptus 云的对外 “窗口”。b)Cluster Controller (CC)Eucalyptus 内的这个控制器组件负责管理整个虚拟实例网络。请求通过基于 SOAP 或 REST 的接口被送至 CC。CC 维护有关运

8、行在系统内的 Node Controller 的全部信息,并负责控制这些实例的生命周期。它将开启虚拟实例的请求路由到具有可用资源的 Node Controller。c)Node Controller (NC)它控制主机操作系统及相应的 hypervisor(Xen 或最近的 KVM,很快就会支持 VMWare)。必须在托管了实际的虚拟实例(根据来自 CC 的请求实例化)的每个机器上运行 NC 的一个实例。d)Walrus (W)这个控制器组件管理对 Eucalyptus 内的存储服务的访问。请求通过基于SOAP 或 REST 的接口传递至 Walrus。e)Storage Controller

9、 (SC)Eucalyptus 内的这个存储服务实现 Amazon 的 S3 接口。SC 与 Walrus联合工作,用于存储和访问虚拟机映像、内核映像、RAM 磁盘映像和用户数据。其中,VM 映像可以是公共的,也可以是私有的,并最初以压缩和加密的格式存储。这些映像只有在某个节点需要启动一个新的实例并请求访问此映像时才会被解密。通过 Eucalyptus 这样的云管理系统也就实现了对虚拟机的申请调配和管理,从而满足可伸缩性等的要求。其实所谓公共云,也就是通过虚拟化技术对服务器资源进行抽象和分割成若干虚拟机器,提供给公众使用,以实现服务器资源的最大化利用。其技术核心思想是 Scalability

10、( 可伸缩性), 满足大规模计算节点(Webhosting)的快速部署和资源回收。(2) 私有云:私有云泛指部署在企业内部,为某一公司所私有的云计算平台,旨在整合其公司内部 IT 资源的云计算系统。在这一领域内,主要由IBM 和VMware 为主。IBM 的云计算解决方案,包括物联网云,分析云,平台云,IDC 云,开发测试云,基础架构云,一个能够快速部署云计算环境的设备,也就是 CloudBurst,并结合 IBM在各个行业累计的经验,使其能帮助各类企业和机构解决其所需计算资源的问题。可以看到 IBM 的云计算方案就是通过虚拟化技术将其在各个领域内的产品线和积累的各行各业的经验整合到一块,从而

11、形成一整套解决方案(比如通过虚拟器件技术进行整合)。在 VMware 的云计算解决方案中,应用方面主要以桌面虚拟化为主(如 VMware View),更多的是基于自身虚拟化技术的底层云计算管理系统(如 vSphere,vCloud)。其中桌面虚拟化技术是当前发展最快的,也是最具应用前景的技术。桌面虚拟化是指将计算机的桌面进行虚拟化,以达到桌面使用的安全性和灵活性。它是一种基于服务器的计算模型,并且借用了传统的瘦客户端 的模型,但是让管理员与用户能够同时获得两种方式的优点:将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够获得完整 PC 的使用体验。用户可以通过瘦客户端,或者类似的设备在

12、局域网或者远程访问获得与传统 PC 一致的用户体验。图.VMware View 架构图VMware View 使用虚拟化切断了桌面和关联的操作系统、应用程序和硬件之间的联系。通过将桌面操作系统、应用程序和用户数据封装到相互隔离的层次,此解决方案允许 IT 人员独立地更改、更新和部署每个组件,从而获得更高的业务灵活性并缩短响应时间。最终获得的访问模型将更加灵活,能够提高安全性、降低运营成本和简化桌面管理。主要分为以下几个部分:a)VMware InfrastructureVMware Infrastructure 是 VMware View 的基础性管理系统,主要实现对托管虚拟桌面的服务器的管理

13、、分组、备份及负载均衡等功能。b)View ComposerView Composer 是 VMware View 解决方案的新组件,它使用 VMware 链接克隆技术快速创建与主映像共享虚拟磁盘的桌面映像,从而节省磁盘空间和简化管理。c)ThinAppVMware ThinApp 应用程序虚拟化软件是无代理解决方案,通过将应用程序隔离并封装为 EXE 或 MSI 文件将其从操作系统分离出来。ThinApp 通过从共享网络驱动器流式传输大型应用程序简化了应用程序的升级和修补,并降低了虚拟桌面的存储需求。私有云技术,实际上是通过虚拟化技术对服务器资源进行整合,并在此基础上实现各类应用。在私有云领

14、域,主要分为两个方向:一种是 IBM 主导的利用虚拟化技术对各类应用进行整合;另一种是 VMware(微软,Citrix)为主的,以虚拟化为基础的桌面虚拟化技术。不论“公共云”还是“私有云”,IaaS 的核心在于对IT 资源的统一虚拟化整合和管理。在“公共云”中,更侧重于可伸缩性。在私有云中,更注重具体业务实现。可以说,IaaS是云计算的基石。(二) PaaS:PaaS(平台即服务),也即将云计算平台作为开发/运行环境提供给用户使用。这一领域中主要以 Google 的 GAE 为主。在 Google 技术体系中主要以 GFS、MapReduce 和 BigTable 为主。(1) GFS:GF

15、S 是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。GFS 设计的初衷是在不稳定(可信)机器之上实现稳定(可信)计算。因为 Google的服务器群是相对廉价的稳定性较差的服务群,总会存在服务器失效的问题,因此 Google 就采取“数量替代质量”方案,通过不同机器上多处备份,重复执行(至少有 3 处备份)。在此基础上 Google 又根据自身应用的特性和技术环境加入大数据文件处理优化等一系列功能。在低端服务器群上实现了高可靠性、可扩展性和可用性。GFS 文件系统为分布式结构,主

16、要由一个 master 和大量的chunkserver 构成,体系结构如下图所示:图 5.GFS 体系结构Master 为GFS 的控制和神经系统,Master 保存着三类元数据(metadata):文件名和块的名字空间、从文件到块的映射、副本位置。它也控制一些系统级别的活动,比如文件块租约管理、无关联文件块的垃圾收集以及子结点间的文件块合并。主节点使用心跳信息,不时地与各个子节点进行联系,发出指令并且收集这些子节点的状态信息。文件被分割成固定大小的块(chunk)。每个文件块由不变的且全局唯一的 64位块标识唯一确定,这个标识由主节点在块被创建的时候指派。子结点把文件块作为普通Linux 文

17、件存储在本地磁盘上,并且根据块标识以及字节范围读取或写入块数据。为了可靠性,同一个块会在多台子结点上进行冗余存储,默认情况下存储三个副本,用户可以为不同的文件名字空间指定不同的冗余级别。连接到各个应用程序的 GFS 客户端(Client)代码通过文件系统 API 与主节点和子结点进行通讯,代替应用程序读取和写入数据。客户端从主节点进行元数据操作,读取数据块操作则直接去子结点完成。(2)MapReduce:在Google 中由于有 HDFS 文件系统的支持,数据是分布在各个节点上的,为了避免大量数据在网络上的传递,Google 在各节点上读取自己节点的数据进行处理,从而实现了“计算向存储的迁移”

18、。这也是 MapReduce 思想的由来。具体来讲,MapReduce 分为两个部分 Map(映射)和 Reduce(化简)。其结构如下:图.MapReduce 结构图映射(Map)操作就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。在这里,实际上就是将任务分发给各个节点进行处理,然后将处理完的结果发到一个新的存储区域中。化简操作指的是对一个列表的元素进行适当的合并。在这里,就是将 Map 处理完的结果进行进一步归并处理。MapReduce 通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一

19、个预设的时间间隔,主节点记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。化简操作工作方式很类似,但是由于化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要操作的数据尽可能近的节点上。(3)BigTable:Bigtable 是一个分布式的结构化数据存储系统,它主要用来处理海量数据:通常是分布在数千台普通服务器上的 PB 级的数据。Bigtable 包括了三个主要的组件:链接到客户程序中的库、一个 Master 服务器和多个T

20、ablet 服务器。针对系统工作负载的变化情况,BigTable 可以动态的向集群中添加(或者删除)Tablet服务器。其主要架构图如下:图.BigTable 架构图Master 服务器主要负责以下工作:为 Tablet 服务器分配Tablets、检 测新加入的或者过期失效的 Table 服务器、对 Tablet 服务器进行负载均衡、以及对保存在 GFS 上的文件进行垃圾收集。除此之外,它还处理对模式的相 关修改操作,例如建立表和列族。每个 Tablet 服务器都管理一个 Tablet 的集合(通常每个服务器有大约数十个至上千个Tablet)。每个 Tablet 服务器负责处理它 所加载的Ta

21、blet 的读写操作,以及在Tablets 过大时,对其进行分割。和很多 Single-Master 类型的分布式存储系统类似,客户端读取的数据都不经过Master 服务器:客户程序直接和 Tablet 服务器通信进行读写操作。由于 BigTable的客户程序不必通过Master 服务器来获取Tablet 的位置信息,因此,大多数客户程序甚至完全不需要和Master 服务器通信。在实际应用中,Master 服务器的负载是很轻的。以上是Google 内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式程序的调度器,分布式的锁服务等一系列相关的云计算服务平台。可以看到

22、Google 技术之核心就是“分散和整合”将数据分散,将计算分散之后再进行统一整合。在此之上,Google 建立了自己的PaaS 平台GAE,GAE(Google App Engine)是一个由 Python(Java)应用服务器群、BigTable 数据库及 GFS 数据存储服务组成的平台,它能为开发者提供一体化的、提供主机服务器及可自动升级的在线应用服务。GAE 利用沙盒将不同的应用程序隔离在一个与网络、服务器硬件、操作系统和物理位置无关的安全、可靠、稳定的环境中。应用程序只能通过提供的网址抓取和电子邮件服务访问互联网中的计算机。综上,在 PaaS 领域主要是为软件开发者提供在线开发(运行

23、)平台。实际上,PaaS是一种在大规模集群之上构建的分布式操作系统。其技术核心是分布式存储计算,难点是大规模集群(不可信节点)的管理技术。(三) SaaS:SaaS 即将软件以服务的形式提供给用户使用,或者说这是一种在线软件的使用形式。目前可以分为两个方向:一个主要由微软推动的以 C/S 架构为主的“云+端”方向。另一个是由 S 和Google 推动的以B/S 架构为主的在线软件方向。但这两个方向均是由 SOA 技术发展而来的。SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的

24、接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。它一方面将系统模块化,分成不同的功能模块。另一方面,通过松耦合将各个模块组成一体。SOA 主要由三个标准构成:SOAP(Simple Object Access Protocol,简单对象访问协议)、WSDL(Web Services Description Language,Web 服务描述语言)、UDDI(Universal Discovery Description and Integration,通用服务发现和集成协

25、议)。WSDL 用来描述服务; UDDI 用来注册和查找服务;而 SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP 是Web 服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可 以在 UDDI 注册表(registry)查找服务,取得服务的 WSDL 描述,然后通过SOAP 来调用服务。SaaS 的技术核心,也即利用 SOA 技术将服务模块化。将主要的运算模块向云后台迁移,而将前台展示部分保留在“端”中。整体上国外在云计算方面起步早,而且凭借在虚拟化和分布式计算等研究的深厚积淀,在云计算相关的各个领域都有突破,且发展较快。下图是 OpenCrowd 公司对

26、云计算作的全景图,基本涵盖了国外在云计算方面的方方面面。图.OpenCrowd 云计算全景图在国内目前还处于起步阶段,现在主要以政府投资建设云计算数据中心为主。在云计算各个方面都进行相关的科研研究和商业探索。在科研方面,政府性的研究主要虚拟化研究为主,主要基于开源虚拟机平台 Xen 和KVM为主,主要的研究方向有 8 个:虚拟计算系统的架构研究,单维系统资源的虚拟化研究,多维系统资源虚拟化,桌面虚拟化研究,虚拟计算系统的安全、受信、隔离等研究,虚拟化系统估计研究,基于虚拟化的高性能计算的研究以及应用虚拟化仿真系统研究等等。在商业方面,主要以世纪互联的 CloudEx、阿里巴巴的阿里云和移动的

27、BigCloud 为主。世纪互联是中国最早的IDC 服务商之一,是目前中国规模最大的电信中立互联网基础设施服务提供商。其云计算平台 CloudEx 目标定位非常明确,也即提供与 Amazon 云计算类似的 IaaS 服务。不过,由于世纪互联的云计算还带有强烈的主机租用的特点,要想完全进行云计算还需要在技术进行很大的改进,或者与相关企业进行技术资源的整合。不过世纪互联也代表了一批此类企业进军云计算的模式。阿里巴巴在云计算方面的优势在于其庞大的商务资源,因此其云计算平台特别侧重于电子商务应用。这也是阿里云不同于亚马逊的资源服务和谷歌的统一服务平台之处。在实现方式上,阿里云似乎更类似于 PaaS,开

28、放自己的一些核心数据和业务接口给第三方调用,让更多的独立软件开发商和开发团队参与进来,快速构建起庞大、共赢的在线软件生态链。移动的 BigCloud 是基于开源技术(Hadoop&KVM)建造的实验性云计算平台,这一平台带有明显的试水作用,未来移动会采用哪种架构目前还不清晰。但从移动的用户背景和技术布局(如 M-Market 等)来看,移动云平台更侧重与移动互联网进行结合,这也是未来云计算发展的一个非常大的方向。在 SaaS 方面,国内目前成功的应用还偏少,主要以八佰客(友商网、伟库网)为主的商业软件、瑞星/360 为主的系统软件以及各类在线音乐视频播放器为主。值得一提的是积木网()正在以类似

29、虚拟桌面的形式将各类在线应用做一个整合,这或许也会是未来发展的方向。综上,国内云计算还处于探索阶段,以大规模建设数据中心为主,整体技术力量还偏弱,但在云计算的各个领域已开始发力。凭借国内巨大的商业前景和技术积累,有理由相信国内 IT 领域能在这一波技术浪潮中迎头赶上。三、拟解决的关键科学问题和主要研究内容由于用户习惯和手机性能等多方面原因,在移动互联网中主要以客户端的 App 应用为主。本课题也即主要研究支撑 App 应用的移动云计算 PaaS 平台。而在移动互联网中存在以下特点:1)应用程序种类繁多,且数目较大。据统计在 Apple 的App Store 中已有 12 大类,5 万多种应用,

30、随着技术的发展有越来越多的应用向网络化发展。2)访问量庞大,且起伏较大。由于移动互联网用户量庞大,而且访问的随机性较强,造成访问量起伏较大的情况。3)文件格式多样,大小不一,而且总体数目庞大。在移动互联网中,由于存在多种多样的应用,而且每种应用的文件都会有些差异,造成文件多样性较大。4)移动操作系统多种多样,且标准不一。目前移动设备中存在大量操作系统平台,而且标准常常不一致,如何对众多平台提供统一的接口也是一个较大的问题。针对以上问题,本研究的主要研究内容也即借鉴Google 的分布式存储计算思路,结合移动互联网的特点,构建适合于移动互联网应用的云计算平台。具体主要分为以下几个部分:(1) 分

31、布式存储模型的构建。在 Google 中常常是 GB 级的大文件,而在移动应用中更多的是数目庞大但单个数据量较小的文件,文件格式多样,而且对文件的读写将更加频繁。如何对 GFS 进行改进将是本研究中的重点也是难点。(2) 分布式计算模型的构建。Google 为了避免大量数据在网络上的传递,利用 MapReduce 实现了计算向存储的迁移,这种方式在处理 TB 级的海量数据上有很大的优势。但在移动互联网中,会面对许多不同的需求,有数据密集性的也有计算密集性的,还有计算和数据同时密集的,在利用 MapReduce计算模型时会受到很大限制。如何构建适合移动互联网的分布式计算模型将是另一个研究重点。(

32、3) 高弹性计算的实现。由于在移动互联网中,访问量会呈现较大起伏,而在 GAE 中实际是利用的应用虚拟化技术对各个应用进行有效隔离。传统弹性计算的实现是借助于系统虚拟机实现的,如何在应用虚拟化中实现对应用的弹性分配对未来的研究是一个较大的课题。(4) 较大数目应用的管理。由于移动互联网中应用种类繁多,数目较大,如何对这些应用进行高效管理,并实现不同应用和不同用户之间数据存储和计算的隔离,这也是需要解决的重要课题。(5) 大规模节点的管理。在移动云计算平台中的节点规模是十分巨大的,而且单个节点的失效概率比较大,这就要求系统能对所有节点进行有效监控和协调,及时对节点失效故障做出迅速的报警,并将故障

33、的详细情况向管理节点汇报,作出相应的数据和计算迁移操作,保证系统的连续运行。因此,对大规模不可信节点的管理也是未来研究的一个重点。综上所述,在本课题中我们基于移动互联网的特色,结合 Google 等在相关领域内的研究工作,重点解决分布式存储/计算模型的构建,特别是 GFS 在移动云计算平台的优化,另外针对大规模节点和应用的管理也是未来研究的重点。四、总体研究方案根据上述分析,本课题将结合 Google 的GFS、MapReduce 和Big Table 以及虚拟化技术等进行深入研究,具体思路如下:1) 利用多级 BigTable 对应用程序进行管理。将每个应用程序以及为其分配的节点等信息均存储

34、在 BigTable 中。这样管理系统就可按每个节点的负载情况、应用程序的访问量等对资源进行调度。2) 改进GFS 以适应移动应用的需求。(GFS 本质上是在Linux 文件系统之上实现新的文件系统)移动应用中文件的特点是文件格式多样,文件大小不一。首先对应用进行分类,将多媒体文件等较大的文件归为一类,其他较小的文件归为一类,针对不同类型的文件分别处理。另外,GFS 实际上是一种主从式的分布式结构,当文件数目过大时,主服务器将不堪重负。为了解决这个问题,可在结构上将部分变为P2P 的结构,并加入Cache 机制。3) 改进 MapReduce。在 Google 中大部分是结构相似的大数据集文件

35、,可分割性较强,很适合利用 MapReduce 计算模型(同时也加入了数量替代质量的冗余性计算)。但在移动应用中会有多种需求,这样对不同的需求就需做出不同的调整,比如对大文件(如多媒体文件)的处理可采用 MapReduce 的方案。对小文件大批量处理时,可将 MapReduce 改为简单的任务分发收集机制,但仍保留其冗余性计算特性。具体实现细节如下:(一) BigTable:Bigtable 是一个稀疏的、分布式的、持久化存储的多维度排序 Map。Map的索引是行关键字、列关键字以及时间戳;Map 中的每个 value 都是一个未经解析的byte 数组。(row:string, column:

36、string,time:int64)-string在Google 中使用URL 作为行关键字,使用网页的某些属性作为列名,网页的内容存在“contents:”列中,并用获取该网页的时间戳作为标识。其中表中的行关键字可以是任意的字符串。对同一个行关键字的读或者写操作都是原子的,这样程序能够较容易的实现对同一个行的并发更新操作。 Bigtable 通过行关键字的字典顺序来组织数据。表中的每个行都可以动态分区。每个分区叫做一个“Tablet”,Tablet 是数据分布和负载均衡调整的最小单位。这样做的结果是,当操作只读取行中很少几列的数据时效率很高,通常只需要很少几次机器间的通信即可完成。在Bigt

37、able 中将列族访问控制的基本单位,列族是列关键字组成的集合。存放在同一列族下的所有数据通常都属于同一个类型(我们可以把同一个列族下的数据压缩在一起)。列族在使用之前必须先创建,然后才能在列族中任何的列关键字下存放数据;列族创建后,其中的任何一个列关键字下都可以存放数据。在Bigtable 中,表的每一个数据项都可以包含同一份数据的不同版本;不同版本的数据通过时间戳来索引。Bigtable 时间戳的类型是 64 位整型。 Bigtable 可以给时间戳赋值,用来表示精确到毫秒的“实时”时间;用户程序也可以给时间戳赋值。如果应用程序需要避免数据版本冲突,那么它必须自己生成具有唯一性的时间戳。数

38、据项中,不同版本的数据按照时间戳倒序排序,即最新的数据排在最前面。针对以上属性,我们结合移动互联网的特点进行改进。在实现中,我们将应用号作为行关键字,而对应用的某些属性作为列名(例如可将应用程序类型以及应用程序所分布节点的 IP 地址等)。(可以借鉴虚拟机中对 VCPU的调度,对应用程序进行管理调度)(二) GFS:在Google 中实现GFS 时主要基于以下假定:系统由经济的、但是经常失败的组件构成。它必须经常监测并检测错误、容错并且能够迅速地从组件失败中恢复。系统存储着适当数目的大文件。几百万个文件,每个文件大约 100MB或者更大。几个GB 大小的文件是最常见的情况,应当能够有效率地处理。必须支持小文件,但是并不需要特别优化。大部分工作主要有以下两种:大量的流读取和少量的随机读取。在大量的流读取中,每个典型的独立的操作读取几百 KB,经常是 1MB 或者更多。同一客户端的连续操作往往发生在邻近的几个文件区域中。少量的随机读取典型地是从任意的偏移位置读取几个 KB 数据。性能敏感的应用程序会成批并且排序读取操作,使得操作是按照文件的前进顺序依次进行,而不是倒回去重新读某一个位置。操作中也会有大量的大规模、对文件的顺序扩展写操作。典型的操作规模与读取操作一致

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论