




免费预览已结束,剩余56页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于云计算的虚拟银行海量数据存储设计The design of the massive data storing system for E-bank based on the cloud computing- 1 -基于云计算的虚拟银行的海量数据存储的设计摘 要随着谷歌公司的五篇关于公司服务器构架论文的发表,世界掀起一片云计算的研究热潮,紧随其后微软,亚马逊,IBM,雅虎,阿帕奇公司等国际IT巨头纷纷投入巨资参与云计算的研究。本论文的主要工作是在基于云计算理论的基础上设计适合JEPAY台湾JePay公司虚拟银行数据特点的云存储系统,系统的设计工作主要分为两个方面:一个方面是设计能够为银行数据库提供文件支持的分布式文件系统。对于当前的云计算系统,因为文件只能写入不能修改,不能为银行提供数据支持。我们的工作就是在底层构架能够满足银行数据要求的分布式系统,意思表达不够明确传统的分布式数据库的扩展性是不够灵活的,比如他们在动态的增减节点时付出的代价很大,并且他们把这种情况当作一种错误处理,严重影响系统的性能和扩展。在论文中我们参考了Hadoop的构架以后设计了能够弥补以上缺点的系统,同时使系统保持了云计算平台的优势。工作的另一个方面是在我们构架的分布式文件系统的基础上设计我们的数据库管理系统,相对于云计算而言分布式数据库的技术是比较成熟的,也正因为如此他们不能很好的和基于云计算的文件系统很好的兼容,我们的工作是利用已经成熟的分布式数据库的技术在我们的云存储文件系统上面构架相应的数据库管理系统,因为我们的系统是针对JEPAY虚拟银行的,所以我们的系统设计是基于关系数据模型的,在设计中主要包括如下几个方面:系统的查询,事务处理,目录管理,容错处理,和安全性等等。全文字数要求在400左右关键字:云计算; 虚拟银行; 海量数据; HADOOPThe design of the massive data storing system for E-bank based on the cloud computingAbstract With the five papers published by the google about the googles server architecture, the research of the cloud computing becomes more and more popular .followed with it, Microsoft, Amazon, IBM, Yahoo, Apache, etc. of international IT companies have invested heavily involved in giant cloud computing research. In this paper, the main task is the designing of cloud stroming system fix to the data of the bank based on the theory of the cloud computing. Design work is divided into two main areas:The first is to design a distributed file system to suport the database of the bank. for the current cloud computing system,the files stored on them could be writen but could not been update or edit. Which could not meet the require of the database of bank. its work is to design a distributed file system in the bottom of the framework to meet th require of the data of bank. Addition ,the traditional distributed database is not flexible enough to expand, such as the increase or decrease the node dynamic. The cost is relatively large, and they face this case as a form of error handling, serious impact on system performance and the Department of The expansion of EC. it analyzes the Hadoop framework, and design system make up for the short comings of the system, the system security Holders of the advantages of cloud computing platform.Another aspect of the work is to design the database manage system for the bank based on the distribute file system designed before. Compare to the cloud computing ,the distribute database is relatively mature, it is precisely for this reason they can not merge the cloud computing system very well. its work is to use the maturely distribute system to to design the framework of the corresponding database management system above our distribute file sytem. because our system is targeted at banks ,so our system design is based on the relationship Data model, in the design include the following main aspects: the system of information, transaction processing, directory management, fault-tolerant,and security and so onKey Words:cloud computing; E-bank; massive data; Hadoop目 录摘 要IAbstractII引 言- 1 -1 绪论- 2 -1.1 项目背景- 2 -1.2 国内外现状及发展趋势- 3 -1.3 本文工作及章节安排- 4 -2 关键技术- 5 -2.1分布式系统模型简介- 5 -2.1.1 Google的GFSgfs论文- 5 -2.1.2 Apache的Hadoop- 7 -2.1.3 Memcaehed- 8 -2.1.4 Amazon的Simp1eDB- 9 -2.1.5 1BM的B1ueC1oud- 10 -2.1.6 PeertoPeer- 11 -2.1.7 NAS- 13 -2.2 存储算法- 14 -2.2.1 GoogIe的 B1gTabIe- 14 -2.2.2 NFS- 14 -2.2.3.AFS- 15 -2.3 一致性方案- 17 -2.3.1 一致性算法Paxos- 17 -2.3.2 Google一致性解决方案Chubby- 17 -3 需求分析- 21 -3.1 功能需求- 21 -3.1.1 客户查询功能- 21 -3.1.2 事务处理功能- 21 -3.1.3 数据备份功能- 22 -3.1.4 日志保存功能- 22 -3.1.5 客户识别功能- 22 -3.2 安全需求- 22 -3.2.1 数据保密性需求- 23 -3.2.2 数据完整性和一致性需求- 23 -3.2.3 数据可用性需求- 23 -3.2.4 对系统状态变化跟踪需求- 23 -3.3 性能需求- 24 -3.3.1 容错性- 24 -3.3.2 高服务质量- 24 -3.3.3 最小代价- 24 -3.3.4 高性价比- 25 -3.3.5 易维护性- 25 -3.4 可扩展性需求- 25 -3.4.1 系统规模的可扩展性- 26 -3.4.2 系统功能扩展性:- 26 -3.5 系统目标- 26 -3.5.1 数据存储的本地性和近地性- 26 -3.5.2 控制数据的适当冗余- 26 -3.5.3 工作的负载平衡- 27 -3.5.4节点的自治性- 27 -3.6 分析总结- 27 -4 系统设计- 28 -4.1 云存储文件系统的设计(基于google解决)- 28 -4.1.1 网络节点构架设计- 28 -4.1.2 文件块分片设计- 29 -4.1.3 文件块存储策略及副本策略设计- 30 -4.1.4 文件块更新算法设计- 32 -4.1.5文件块恢复策略设计- 32 -4.2数据库管理系统的设计(基于分布式解决)- 32 -4.2.2 事务处理模块设计- 32 -4.2.3 事务故障的恢复- 32 -4.2.4 并发事务处理及封锁协议设计- 32 -4.2.5 目录存储与管理设计- 32 -4.2.6 负载平衡算法设计- 32 -4.3 安全模块设计(参考文献分布式数据库环境下安全策略研究)- 32 -4.3.1 数据加密设计- 32 -4.3.2 身份认证设计- 32 -4.3.3 访问控制设计- 32 -4.3.4 安全检测与反映- 32 -5 关键算法实现- 32 -5.1 数据分片算法实现- 32 -5.2 负载平衡算法实现- 32 -5.3 客户地址跟踪算法实现- 32 -6 结论- 32 -6.1 总结- 32 -6.2 不足- 32 -6.3 展望- 32 -参考文献错误!未定义书签。引 言随着Internet技术的快速发展,电子商务和网络商业如雨后春笋般快速兴起,银行金融业务进一步扩大和发展。以此为背景,虚拟银行应运而生。作为银行业一种新的经营方式,虚拟银行1正在以一种迅猛的势头和传统银行抢占客户资源,其经营策略可谓一浪高过一浪,虚拟银行已经成为银行金融业发展的必然趋势。一个成功的虚拟银行必须要有让客户钟情于它的理由,服务质量将是连接客户与虚拟银行成功与发展的桥梁,如何提供优质的服务,已经成为各个虚拟银行业务的公司发展的主要话题,正在这个时候,以提供优质数据和计算服务而闻名的云计算2来临了,云计算是网格计算3,分布式计算4和并行计算5的升级。但是他不是简单的集合,而是一种革新。它的到来必将为我们计算机网络的发展掀开新的一页,那么能否让云计算这个充满活力的新生儿来为我们的虚拟银行提供数据支持呢? 回答当然是肯定的。云计算自从05年谷歌公司公开发表自己的论文以来,给我们的IT行业带来了巨大的冲击文献6,谷歌公司在云计算应用方面无疑是具有巨大领先优势的。各大IT业的巨头随后都成立了自己的云计算研究中心,并且投巨资参与云计算的发展,先是亚马逊公司的EC27的出现,它已经成为亚马逊公司收入的一个重要支柱,随后微软推出自己的云计算平台live mesh平台。IBM推出自己的蓝云。在这其中有一个引人注目的项目走进人们的视野,那就是hadoop8项目,自从阿帕奇公司收购hadoop项目以后继续了先前的开源模式,并且得到了雅虎的资金支持。Hadoop的出现为广大的云计算爱好者和程序员提供一片新的天地。正是因为各大公司的牵头,并且云计算本身又具有巨大的成本和性能优势,所以业界内预测人类的第四次科技革命即将到来,而云计算则是此次革命的导火索。那么根据市场导向,要想在未来的商业中立于不败之地就必须重视云计算,像虚拟银行这种命运和数据管理息息相关的公司就更加应该把握市场导向,用最低的成本和最优质的服务保持公司的竞争力。而每个公司不可能都构架自己的云平台,这样不仅浪费成本,同时技术上也不能达标,那么一个针对银行的云平台的将可能服务多个银行企业。鉴于以上情况和台湾台湾JEPAY公司的虚拟银行的要求我们决定,在市场大潮还没来临之前研究并设计一个针对虚拟银行的云存储平台,它是最新的云计算理论和成熟的适合银行的关系数据模型的结合。它的开发必将为虚拟银行服务质量和生命力的提升注入新的血液。1 绪论1.1 项目背景虚拟银行:可以理解为专门针对网上客户开设的一个银行,他主要的业务是为网上的客户提供转账,资金管理,交易等等的平台。在当今计算机和网络迅猛发展的时代,网络已经渐渐成为人们生活不可缺少的一个部分,不管是工作,购物娱乐都和网络挂上千丝万缕的关系,自1995年10月加拿大皇家银行在美国建立世界上第一个网上银行以来网上银行在世界范围内迅速发展。1996年,招商银行在国内率先推出网上银行概念,随后国内各大商业银行相继加入了网上银行业务的角逐。经过十年的发展,睡着国内银行网上业务的扩大和推广,我国的网上客户规模快速增长:06年用户规模7100万,07年的网上银行交易总规模达到245.8万亿元。随着人民币业务开始对外资银行全面开放,网上业务必将成为一个更广阔的市场。但是当今的网上交易仍然处于一个非常混乱的状态,每个实体银行为了争取客户都开设了自己的网上银行可以和自己的银行帐号挂钩,一个客户通常不止在一个银行有业务,当他们需要资金流动时就面临一个很大的问题,如何方便快捷安全的在网上管理自己的资金,统一的管理自己的资金和各种信息。正是在这种需求上我们设计E-Bank(虚拟银行)系统,作为一个信息时代的系统它首先需要满足对客户的高质量的服务和海量的数据存储,这就需要一个良好的数据存储系统,但是目前的分布式系统大多具有一定的局限性,只能被动的提供访问而不能主动的根据客户的行为改进服务质量,第二,他们的扩展性不够好,他们增减节点复出的代价太高,并且不够灵活。在这个方面云计算为我们提供了很好的参考模型,云计算概念的提出为我们的问题解决提供了契机,随着google公司关于自己云架构的五篇标志性论文的发表,人们在计算机和网络发展方向上找到了新的方向,云计算之所以如此被人们看好是因为它有很好的扩展性,很好的性价比,对客户透明,很强的自动管理和优化资源分配的能力,并且提供必要的数据冗余和容错机制,也有很好的一致性机制保证数据的完整性,但是他们存储的大多是非结构化的数据,并且就目前的研究进展来看,云存储还只能面向一次写入多次读取的数据,对于常更新的数据没有很好的解决方案。在当今技术环境下,银行最成熟的数据存储模型仍然是关系数据模型,所以如何才能把两种优势结合起来,让我们既要拥有云存储平台的各种优势,又能方便的为我们的虚拟银行提供良好的服务,只有这样才能让我们的虚拟银行在未来的竞争中处于有利地位。进一步考虑,在未来市场中云计算成为市场的发展方向,以后的各种公司类型分为如下几种,一类是提供云服务的公司,他们利用自己巨大的资金和技术优势在全世界的范围提供自己的服务就像现在的电力公司一样,这样的公司全世界并不是很多,现在来看像google,IMB,微软,亚马逊,惠普,ORCALE在以后成为云服务提供商的可能性很大,另外一种类型的公司就像现在的工厂用电一样享受这些公司提供的服务,并且按需支付,而不像现在这样这样公司需要自己架设自己的服务器自己管理自己提供安全保证,这就是原来公司自己发电一样落后,那么一个针对银行这种特殊群体的需求而提供服务的云平台在未来将成为可能,这样可以把银行从海量的数据保存和安全防护中解放出来,有利于银行精力集中在业务上面。这行在云存储平台上架构我们的关系模型的数据库就是本文需要讨论和解决的问题。更进一步考虑此项目甚至可以扩展为未来为银行专门提供计算和存储服务的平台。1.2 国内外现状及发展趋势网上支付宝的出现对于网上交易和资金管理是一个里程碑。它提出了第三方平台的概念,也为我们在网上进行安全交易和资金管理提出了接口,但是它不能满足我们我们管理网上财产的需求,各个银行之间的转账还不够方便,过程繁琐,手续复杂,对于我们的其他虚拟财产的管理没有提供良好的扩展接口,比如Q币的各种游戏货币,同时也没有面向证券,股票等等的服务,但是这项业务恰恰是人、人们体会网络方便的指标之一。我们的虚拟银行虽然开始简单,但是它是一个具有良好扩展性的平台,我们的目标是一边开发一边扩展它的业务,这就更加要求有一个良好的可扩展性的数据支持平台。云计算的一个主要用途就是存储数据。利用云存储,数据被存放到多个第三方的服务器上,而不是像传统的网络数据存储那样存放在专用的服务器上。存储数据时,用户看到的是一个虚拟的服务器,也就是说,看起来数据好像是以特定的名称存放在某一特殊的地方,但在现实中,那个地方并不存在。这只是一个假名,用来指示云中划分出来的虚拟空间。实际上,用户的数据可以存储在构成云的任何一台或多台电脑上。因为云动态的管理可用的存储空间,实际的存储位置可能每天甚至每分钟都不相同。但是,尽管位置是虚拟的,用户所看到的数据位置是“固定的”,事实上,他可以管理自己的存储空间,就好像它是连接到自己的电脑一样。云存储同时具有经济和安全方面的优势。从经济上说,虚拟的云资源通常比那些连接到个人电脑或网络的专用物质资源更便宜。至于安全,由于数据被复制到多台物理机器上,存储在云里的数据不受意外删除或硬件崩溃的困扰。由于始终保留数据的多个副本,即使一台或多台机器进入脱机状态,云仍然能够继续正常运行。如果一台机器崩溃了,数据就会被复制到云中的其他机器上。目前,我们正处在云计算革命的初期阶段。尽管已经有许多可用的云服务,更多的有趣的应用仍在开发之中。也就是说,今天的云计算正在吸引着整个计算行业最优秀、最大的企业,他们都希望建立基于云来赢利的商业模式。正如本章前面讨论过的,也许目前正在拥抱云计算模式的最引人注目的公司是谷歌。看到的,谷歌提供了一组功能强大的基于web的应用,他们都通过其云架构对外服务。无论你是需要基于云的文字处理(谷歌文档)、演示软件(谷歌演示文稿)、电子邮件(Gmail),还是日历/日程安排功能(谷歌日历),谷歌都有提供。而且最重要的是,谷歌为它的所有基于web的应用都提供了相互之间的接口,为了用户的利益,这些云服务相互关联。其他大公司也参与了云服务的开发。例如,微软提供了 Windows Live web 应用套件以及 LiveMesh 计划,该计划承诺将各种类型的设备,数据和应用连接到一个公共的基于云的平台。亚马逊推出了弹性计算云(EC2)服务,用来为应用开发人员提供以云为基础的可调整的计算能力。IBM已经成立了一个云计算中心,用来向客户提供云服务和研究。许多较小的公司也都推出了自己的基于 web 的应用,他们主要(但不完全)利用云服务的协作特性。Hadoop原本由Lueene的子项目Nuteh发展出来,成为Lucene的子项目,Hadoop是Google的GFS9和MapReduce10的一个java实现,用于大规模分布式存储和计算。最近Hadoop被提升为Apache的顶级项目,还有yahoo一直的支持,可见Hadoop的前途相当光明。HDFS11是Hadoop的文件系统也是其他hadoop功能的基础,它既保持了当初google的架构的完整性,有根据自身的特点作出一些改进,它根据自己检测到的资源把文件分配合理的分配到各个节点上,既要保证文件的安全,有保证文件更新是付出更小的代价,这样的模式有利于我们在此基础上实现我们的目标针对我们的特定的要求和需求进行更有针对性的设计。这样的优势使得hadoop在众多分布式存储和计算技术中脱颖而出,hadoop的各方面都比较切合我们的项目需求,这使其成为解决方案的主要参考架构。1.3 本文工作及章节安排论文主要结构如下:(1) 绪论,本章介绍当今云计算的市场和科技前沿情况。(2) 相关技术的理论研究,本章对系统在开发过程中使用的关键技术进行概述,如谷歌的技术,Hadoop的技术,亚马逊的技术以及P2P技术等等。(3) 需求分析,本章介绍了系统功能需求,安全需求和系统目标。(4) 系统设计,本章首先从数据库设计和界面设计两方面来进行系统的概要设计,然后给出了系统主要模块的详细设计,包括类图设计和序列图设计。(5) 关键算法实现,本章给出部分关键算法的实现方案。(6) 结论,本章对系统整体构建工作的总结,并且指出系统的不足和有待完善的地方系统的下一步研究和开发提供基础。2 关键技术2.1分布式系统模型简介在本文中分布式系统12主要指分布式软件系统 (DistributedSoftwareSystems),支持分布式处理的软件系统。与并行系统类似的是,分布式系统的设计目的也是为了将计算复杂的大任务划分为若干个计算量稍小的任务进行处理,然后通过一系列调度算法汇总得到最终的计算结果。但与并行计算不同的是,分布式系统要处理的任务相互之间有独立性,上一个任务包的结果未返回或者是结果处理错误,对下一个任务包的处理几乎没有什么影响。因此,分布式的实时性要求不高,而且允许存在计算错误。分布式系统包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。本小节将对现有的一些比较有影响力的分布式系统或分布式计算应用逐一进行介绍。2.1.1 Google的GFSGoogle文件系统 (GoogleFileSystem-GFS)被设计用来满足Google迅速增长的数据处理需求。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能,可伸缩性,可靠性以及可用性。然而,Google在设计并实现其GFS时所考虑的目标和以往的分布式文件系统又有着一些不同的地方,具体表现在:首先,组件失效不再被认为是意外,而被看作是正常的现象。这个文件系统包括几百甚至几千台普通廉价部件构成的存储机器,又被相应数量的客户机访问。组件的庞大数量和参差不齐的质量状况使得在任何给定时间,某些组件无法工作,而某些组件无法从他们的目前的失效状态恢复是常见的情况。除此之外,应用程序bug造成的问题,操作系统bug造成的问题,人为原因造成的问题,甚至硬盘、内存、连接器、网络以及电源失效造成的问题都是需要考虑的组件失效问题。所以,常量监视器,错误侦测,容错以及自动恢复系统必须集成在系统中。其次,按照传统的标准来看,单就Google网页搜索来看其存储的文件就己经非常巨大。数G的文件非常寻常。每个文件通常包含许多应用程序对象,比如web文档。传统情况下快速增长的数据集在容量达到数TB,对象数达到数亿的时候,即使文件系统支持,处理数据集的方式也就是笨拙地管理数亿KB尺寸的小文件。所以,设计预期和参数,如I/O操作和块尺寸都要重新考虑。第三,在Google大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据。对文件的随机写是几乎不存在的。一般写入后,文件就只会被读,而且通常是按顺序读。很多种数据都有这些特性。有些数据构成数据仓库供数据分析程序扫描,有些数据是运行的程序连续生成的数据流,有些是存档的数据。有些数据是在一台机器生成,在另外一台机器处理的中间数据。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性保证的焦点。第四,应用程序和文件系统的协同设计提高了整个系统的灵活性。例如,GFS的设计者放松了对GFS一致性模型的要求文献,这样不用加重应用程序的负担,就大大的规约了文件系统的设计。他们还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。论文后面还会对这些问题的细节进行讨论。为了不同的应用,Google已经部署了许多GFS集群13。最大的一个,拥有超过1000个存储节点,超过300T的硬盘空间,被不同机器上的数百个客户端连续不断的频繁访问着。一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问,如图2.1,这些机器通常都是普通的Linux机器,运行着一个基于用户层的服务进程。如果机器的资源允许,而且运行多个程序带来的低稳定性是可以接受的话,可以很简单的把块服务器和客户端运行在同一台机器。图2.1 GFS的结构2.1.2 Apache的HadoopHadoop最早是作为一个开源搜索引擎项目Nutch的基础平台而开发的,后来随着项目的进展,Hadoop被作为一个单独的开源项目进行开发,目前的最新版本已经是0.19.114。Hadoop作为一个开源的软件平台使得编写和运行用于处理海量数据的应用程序更加容易。Hadoop是MapRedueegoogle论文的开源实现,它使用了Hadoop分布式文件系统(HDFS,见图2.2)。MapReduce将应用切分为许多小任务块去执行。出于保证可靠性的考虑,HDFS会为数据块创建多个副本,并放置在群的计算节点中,MapReduee就在数据副本存放的地方进行处理。Hadoop是由Java编写的,该项目己到得yahoo的全面支持,项目的领袖Dougcutting从2006年一月开始己经被Yahoo全职雇用于此项目中。作为一个分布式系统平台,Hadoop具有以下一些优势:(1) 可扩展性:Hadoop可以可靠的存储和处理Petabytes级别的数据。(2) 经济性:Hadoop将数据分布到由廉价Pc机组成的集群中进行处理,这些集群可以由成千上万个节点组成。(3) 有效性:通过数据分发,Hadoop可以在不同的节点上并行处理数据。这使得数据处理过程大大提速。(4) 可靠性:Hadoop自动维护一份数据的多个拷贝并自动将失败的计算任务进行重新部署。2.2 HDFS架构示意图2.1.3 并发控制发展现状数据库的重要特征是它能为多个用户提供数据共享。数据库管理系统必须提供并发控制机制15来协调并发用户的并发操作以保证并发事务的隔离性和数据库的一致性。并发控制不仅是集中式数据库的技术,同时也是分布式数据库的技术,分布式数据库的事务并发控制更为复杂。分布式并发控制研究成果,其中主要的方法有以下几种:(1) 封锁方法封锁方法是最常用的并发控制方法。它的基本思想是:要求一事务在对一数据对象进行操作前必须先申请该数据对象的封锁(Lock),获准后才进行操作。如果该数据对象已经被其他事务封锁,且操作方式冲突,那么该事务必须处于等待状态,直到该数据对象被释放为止。确切的控制则由封锁类型决定,封锁方法通过规定相应的加锁原则和封锁相容机制实现冲突操作的可串行化调度。基于封锁的解决方案中,最有名的是两段锁协议,两段锁能确保可串行性,但是该协议基于一定的假设。两段锁(Two-phase Locking)是大多数商业数据库系统实现的并发控制机制16。许多学术界研究表明2PL整体性能优于非加锁并发控制机制。但随着面向对象数据库(OODBS)和实时数据库(RTDBS)应用范围的扩大和存取数据的增多,传统的用于关系数据库(RDB)中的2PL并发控制机制在这些实际系统应用中有其局限性,系统整体性能降低。面向对象技术和实时系统的复杂性使得数据库管理系统在维护数据资料的一致性和实时性方面也非常复杂。为了提高2PL机制的性能,在其基础上纷纷提出了改进办法和新的并发控制协议。提出了等待升级协议、实时锁协议PTL,OZGUR Ulusoy提出的并发控制协议强调资源预报。(2) 基于时间戳的并发控制方法:基本思想是:利用系统内唯一的事务时标和数据对象上记录的最新读和写的时标来保证数据库及事务所得结果的一致性。每个事务在被激活时分配一个时标,这个时标可以唯一标识一个事务和事务的激活次序。该方法最大优点是事务不会出现中断,因而不会发生无限期的等待,所以不存在死锁现象。缺点是:首先,它是采用重启的方法作为保持事务全局顺序的基本手段,重启意味着要退回到事务的原始起点。因此对特别是长事务代价是比较大的;其次,在冲突发生比较多的情况下,启动次数过多会导致大量的浪费;再次,在分布式系统中维护一个全局统一的时标并不容易。(3)乐观技术:在乐观技术中,事务执行期间不进行检查,直到它们达到提交点再进行确认是否已发生冲突。若发生,则终止事务并重新启动。该技术适合在事务冲突极少的数据库环境中。乐观并发控制法具有不阻塞、无死锁等优点。由于冲突的解决是在事务接近结束时进行的,因此可以得到更多的信息以决定解决冲突的方法。但是,由于冲突检测太迟,往往会使一些即将结束的事务夭折,造成重新启动的代价高。以上是基本的分布式并发控制方法,为了提高系统的可用性,可靠性及存取效率,分布式数据库中经常存放多个数据项的副本,因此,增加了并发控制的复杂度。对于多副本的分布式数据库并发控制的研究也有很多研究成果,主要的方法如下: 读封锁一个;写封锁所有。对读操作,只申请对某一副本的S锁,对写操作,要申请对所有副本的X锁。加锁协议如下:读在任一副本上加S锁;写在所有副本上加X锁;保持所有锁到全局事务结束(EOT)。上述协议可以发现并拒绝对数据的冲突访问。当两个事务都写同一数据时,由于两个事务对每个副本都要申请X锁,必然发生冲突,两个事务对同一数据一读一写时,则必然在一个副本上发生X锁与S锁的冲突。 大多数封锁。无论是写操作还是读操作都要对大多数(大于半数)副本申请X锁或S锁。加锁协议如下:读对过半数的副本加S锁;写对过半数的副本加X锁;保持所有锁到EOT。不管读-写冲突,还是写-写冲突,两个事务加锁的总和一定大于N。 主副本封锁。定某个场地上的副本为主副本,所有的读写操作均申请对主副本的封锁。每个数据都指定一个节点,负责对其封锁的控制,此节点称为该数据的主节点。当要申请这个数据的锁时,不管它有多少副本和副本位于何处,一律到该数据的主节点申请。由于锁申请由主节点统一管理,多副本的封锁就简单得如单副本一样,如果事务发生在主节点,则封锁的通信开销可以免去。主节点一般选在使用该数据最多的节点。2.1.4 Amazon的Simp1eDB在软件行业中云计算 (Cloudcomputing)的领域在近几年的发展相当迅速。Amazon于2007年底推出了simpleoB17的Beta,这是一个对结构化数据进行实时查询的认触b服务。SimpleDB是对Amazon其他计算服务如S3和EC2的补充。S3解决海量数据(非结构化)托管问题,EC2解决企业计算问题,SimpleDB则针对结构化数据查询的解决方案,目前己经能够提供数据库的一些核心功能。就在Alllazon推出SimpleDB不到一个月前IBM也公布了他们的 BlueCloud的雏形。对于将一些软件应用从实用私有的基础设施转换到利用通用的计算资源,两者都可能会起到很大的作用。SimPleDB不是一个关系型数据库。它是建立在一种类似于散列表的模型上的。它提供了CRUD(Create,Read,update,delete,即我们常说的“增、删、改、查”)操作和一种查询语言。对普通用户来说,你不再需要针对数据库的复杂的维护工作,也就是可以不用数据库管理员(DBA)了。SimpfeDB针对的用户是那些只需用简单的关系型数据的Web项目,传统的RDBMS功能复杂,但是很多小项目其实只是用到一些核心的功能(CRUD)而已。SimPleDB作为一个基于 Webserviee的“在线”,数据库,具有以下一些特点:(1) 使用简单:AmazonSimPleDB规约了传统的通过关系型数据库集群才能达到的查找和查询功能访问,同时去除了其他的一些复杂性和无用的数据库操作。simpleDB服务通过一系列简单的API调用实现快速的数据的添加、获取和编辑操作。通过WebService的方式来实现上述的这些功能也消除了维护和扩展这些操作的复杂性。(2) 灵活性:借助于 AmazonsimpleDB,无需为存储数据进行预先的数据格式定义,在需要时间但添加新属性到自己的 AmaxonSimPteDB数据集即可,simPleDB系统会自动索引存储的数据。这种无序事先定义存储策略的能力给开发人员在开发应用程序时提供了极大的灵活性。(3) 可扩展性:AmazonSimPleDB通过添加“域”的方式方便的适应数据存储或访问量的增长。在simpleDB的Beta版本发布时,一个单独的域被限制在10GB的容量大小,一个用户最多允许创建不超过100个域。随着simPleDB的不断发展,在今后的版本中这个限制也将逐渐得到放宽。(4) 快速:AmazonSimPleDB为研怂b应用程序提供了快速、高效的数据存储和访问。 可靠为了防止数据丢失或无法访问的情况发生,所有的己被索引的数据都采取冗余存储在多个不同的服务器和数据中心的方案。2.1.5 1BM的B1ueC1oudIBM 的“蓝云”18计算平台是一套软、硬件平台,将 Internet 上使用的技术扩展到企业平台上,使得数据中心使用类似于互联网的计算环境。“蓝云”大量使用了 IBM 先进的大规模计算技术,结合了 IBM 自身的软、硬件系统以及服务技术,支持开放标准与开放源代码软件。“蓝云”基于 IBM Almaden 研究中心的云基础架构,采用了Xen19,20和 PowerVM21 虚拟化软件,Linux 操作系统映像以及 Hadoop 软件(Google File System 以及MapReduce 的开源实现)。IBM 已经正式推出了基于 x86 芯片服务器系统的“蓝云”产品。 “蓝云”计算平台由一个数据中心、IBM Tivoli 部署管理软件(Tivoli provisioning manager)、IBM ivoli 监控软件(IBM Tivoli monitoring)、IBM WebSphere 应用服务器、IBM DB2 数据库以及一些开源信息处理软件和开源虚拟化软件共同组成。“蓝云”的硬件平台环境与一般的 x86 服务器集群类似,使用刀片的方式增加了计算密度。“蓝云”软件平台的特点主要体现在虚拟机以及对于大规模数据处理软件Apache Hadoop的使用上Hadoop 是开源版本的 Google File System 软件和 MapReduce 编程规范。 (1) “蓝云”计算平台中的虚拟化技术 “蓝云”软件的一个重要特点是虚拟化技术的使用22 。虚拟化的方式在“蓝云”中有两个级别,一个是在硬件级别上实现虚拟化,另一个是通过开源软件实现虚拟化。硬件级别的虚拟化可以使用 IBM p 系列的服务器,获得硬件的逻辑分区 LPAR(logic partition)。逻辑分区的 CPU 资源能够通过 IBM Enterprise Workload Manager 来管理。通过这样的方式加上在实际使用过程中的资源分配策略,能够使相应的资源合理地分配到各个逻辑分区。p系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU)。Xen则是软件级别上的虚拟化,能够在Linux基础上运行另外一个操作系统。 虚拟机是一类特殊的软件,能够完全模拟硬件的执行,运行不经修改的完整的操作系统,保留了一整套运行环境语义。通过虚拟机的方式,在云计算平台上获得如下一些优点:其一, 云计算的管理平台能够动态地将计算平台定位到所需要的物理节点上,而无须停止运行在虚拟机平台上的应用程序,进程迁移方法更加灵活;其二, 降低集群电能消耗,将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上,从而能够关闭空闲的物理节点,达到节约电能的目的;其三,通过虚拟机在不同物理节点上的动态迁移,迁移了整体的虚拟运行环境,能够获得与应用无关的负载平衡性能;其四,在部署上也更加灵活,即可以将虚拟机直接部署到物理计算平台上,而虚拟机本身就包括了相应的操作系统以及相应的应用软件,直接将大量的虚拟机映像复制到对应的物理节点即可。 (2)“蓝云”计算平台中的存储体系结构 “蓝云”计算平台中的存储体系结构对于云计算来说也是非常重要的,无论是操作系统、服务程序还是用户的应用程序的数据都保存在存储体系中。“蓝云”存储体系结构包含类似于 Google File System 的集群文件系统以及基于块设备方式的存储区域网络 SAN。 在设计云计算平台的存储体系结构时,不仅仅是需要考虑存储容量的问题。实际上,随着硬盘容量的不断扩充以及硬盘价格的不断下降,可以通过组合多个磁盘获得很大的磁盘容量。相对于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是一个更重要的问题,因此需要对多个磁盘进行同时读写。这种方式要求将数据分配到多个节点的多个磁盘当中。为达到这一目的,存储技术有两个选择,一个是使用类似于Google File System的集群文件系统,另一个是基于块设备的存储区域网络 SAN 系统。 在蓝云计算平台上,SAN 系统与分布式文件系统(例如 Google File System)并不是相互对立的系统,SAN 提供的是块设备接口,需要在此基础上构建文件系统,才能被上层应用程序所使用。而Google File System正好是一个分布式的文件系统,能够建立在 SAN 之上。两者都能提供可靠性、可扩展性,至于如何使用还需要由建立在云计算平台上的应用程序来决定,这也体现了计算平台与上层应用相互协作的关系。2.1.6 PeertoPeer80年代以前的计算机是众多用户共享一个主机,计算资源是集中的,80年代以后PC机出现,计算资源从集中走向分布。互联网本身的是分布的、自治的,结点是对等的。WWNV网出现,引进客户机一服务器结构,客户机结点使用浏览器访问存储的网站上服务器中的内容,出现了不对等的模式。对等连接peertopeer(P2P) 23模式的出现,互联网重新回归本性,集中的服务器业务模型再次变成分布的,每一个用户终端既是客户机又是服务器。对于分布式系统的研究者来说,对P2P网络的拓扑结构以及基于P2P的一些典型应用的分析和研究,可以从中借鉴P2P在网络拓扑和资源存储、调度上的一些设计精髓。P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者 (Server),又是资源(服务和内容)获取者(Client)。P2P系统一般要构造一个非集中式的拓扑结构,在构造过程中需要解决系统中所包含的大量结点如何命名、组织以及确定结点的加入/离开方式、出错恢复等问题。根据拓扑结构的关系可以将PZP研究分为4种形式24:中心化拓扑(Centralized Topology)、全分布式非结构化拓扑(Decentralized Unstructured Topology)、全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络)和半分布式拓扑(Partially Decentralized Topology)。其中,中心化拓扑最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,这是第一代P2P网络采用的结构模式。值得注意的是,Hadoop的底层分布式文件系统所用的HDFs(Hadoop DistributedFilesystem)从网络拓扑的角度来看,非常类似于P2P网络中的中心化拓扑结构HDFS采用主/从结构。P2P技术的特点体现在以下几个方面:(1) 非中心化(Decentralization:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。(2) 可扩展性(scalability):在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。(3) 健壮性(Robustness):P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。P2P网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整。(4) 高性能/价格比(Performance):性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。(5) 隐私保护 (Privacyprotect):在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术馆装修安全合同样本
- 肾性脑病护理个案
- 2024清远工贸职业技术学校工作人员招聘考试及答案
- 2024涞水县职业技术教育中心工作人员招聘考试及答案
- 2024湖南省水利水电建设工程学校工作人员招聘考试及答案
- 2024湖北省实验幼儿师范学校工作人员招聘考试及答案
- 免熏蒸胶合板托盘生产线项目可行性研究报告-立项备案
- 电工基础考试模拟题(附答案)
- 运动解剖学测试题与答案
- 房屋赎回借款合同书版
- 2025年职业指导师专业能力测试卷:职业指导服务与心理咨询
- 2025-2030中国化妆棉行业市场深度调研及发展策略研究报告
- 【版】(4月4日)清明守规平安同行- 清明节假期安全教育主题班会 高中主题班会课件
- 2024年安庆迎江区招聘社区工作人员考试真题
- 2025年长春汽车职业技术大学单招职业技能测试题库必考题
- 血小板减少怎预防出血
- 2025年湖南省长沙市一中教育集团中考一模数学试题(原卷版+解析版)
- 口腔科感染控制策略与措施实施指南
- 2024年金华市义乌市机关事业单位聘用人员招聘笔试真题
- 海上施工安全培训
- 雾化吸入疗法合理用药专家共识(2024版)解读
评论
0/150
提交评论