(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf_第1页
(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf_第2页
(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf_第3页
(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf_第4页
(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机应用技术专业论文)基于数据邮递的并行传输技术研究.pdf.pdf 免费下载

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

文档简介

摘要 随着信息化技术的不断发展,行业内部和行业间的业务数据量呈几何级数递 增,海量数据的传输与处理难题成为制约信息化产业扩大的瓶颈。本文以 m o b i l i n k 技术为基础,采用了计算机集群及并行处理技术,将多个传输任务采 用多台传输处理机分工并行传输方式,解决了海量数据传输处理上的瓶颈,在很 大程度上解决了异构数据库系统间数据传输不兼容的问题。通过对q o s 多播路由 算法实现了目标智能路由,在节点间建立数据邮递链路,有效地均衡网络负载, 提高网络资源利用率,从而实现了大型网络系统中异构数据库信息系统间任意节 点的安全、快捷数据交换。 关键词:m o b i l i n k 计算机集群并行q o s 路由 a b st r a c t w i t ht h ec o n s t a n td e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , t h eq u a n t i t i e so f t r a n s a c t i o np r e s e n t 星哆o m e t r i ci n c r e a s ei nb o t hi n n e ri n d u s t r ya n di n t e r - i n d u s t r i e s ,t h e p r o b l e m so fm a s sd a t a t r a n s m i s s i o na n dt r a n s a c t i o nc a u s et h e b o t t l e n e c ko f m u l t i p l y i n gi n f o r m a t i o ni n d u s t r y t h i sp a p e rt h a ti sb a s e do nm o b i l i n kt e c h n o l o g y a n dm a k e su s eo fc o m p u t e rc l u s t e ra n dp a r a l l e lt e c h n i q u e ,u s i n gm u l t it r a n s m i s s i o n p r o c e s s o rs e p a r a t e l yt r a n s m i s s i o nf o r m s ,s o l v e st h eb o t t l e n e c ko ft h em u l t i t a s k i n g m a s s i v ea m o u n to fd a t at r a n s m i s s i o n t og r e a te x t e n t ,s o l v i n gt h ei n c o m p a t i b i l i t yo f d a t at r a n s m i s s i o na m o n gi s o m e ro fd a t a b a s es y s t e m b a s e do nq o sm u l t i c a s tr o u t i n g a l g o r i t h mi m p l e m e n t sa i m so ni n t e l l i g e n tr o u t e r ,e s t a b l i s h m e n to fd a t ad e l i v e r yl i n k b e t w e e nn o d e s ,a sw e l la se f f i c i e n t l ye q u a l i z e sn e t w o r kl o a d s ,r a i s e st h eu s er a t i oo f n e t w o r kr e s o u r c e s ,s ot h a ti m p l e m e n t st h ed a t ae x c h a n g es a f e l ya n df a s tb e t w e e nt w o n o d e sa m o n gi s o m e r i s md a t a b a s eo fl a r g en e t w o r ks y s t e m s k e yw o r d s :m o b iii n k o i u s t e rp a r a il e i o o s r o u t i n g 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,基于数据邮递的并行传输技术 研究是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文 中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰 写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以 明确方式标明。本人完全意识到本声明的法律结果由本人承担。 作者签名:鏖壅姿硌三月望日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论 文版权使用规定”,同意长春理工大学保留并向中国科学信息研究所、中国 优秀博硕士学位论文全文数据库和c n k i 系列数据库及其它国家有关部门或 机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权长 春理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索, 也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者签名: 逸翌覃年生月4 日 指导导师签名: 年互月挈日 1 1 研究目的和意义 第一章绪论弗一早骚记 当今时代,作为信息载体的大量数据要进行频繁的交互,在不同领域、区域, 其交互的总量在不断增多,频率不断加快。网络的应用与通信已经遍及许多应用 领域,给各行各业带来了巨大的经济效益和社会效益,特别是在金融、电信、邮 政等行业,数据的实时处理和批量发送是其非常重要的工作,因此数据通信的方 法和效率也成为许多研究开发人员非常重视的问题。 国内外现有的数据、信息交换软件都是基于点对点串行传输技术,发送端和 接收端建立相应的发送队列和接收队列实现数据交换。一方面,在大型、分布式 网络系统中数据存储节点数目巨大,使用现有的数据、信息交换软件无法建立传 输链路,为了实现多节点间数据互传需建立数目巨大的点对点传输队列,所需消 耗的系统资源巨大。同时,由于建立庞大的传输队列造成的系统频繁故障和维护 困难,致使多节点间数据互传几乎无法完全实现。另一方面,分布式网络中的某 些数据汇集节点需传输数据量过大,由于串行传输时间过长和网络稳定性差,在 数据汇总节点经常发生传输等待、网路阻塞和系统死锁等现象,导致传输系统瘫 痪。 本文研究的基于数据邮递的并行传输技术通过目标智能路由及数据转发技 术,在广域网络中大型、分布式系统节点间建立数据邮递链路,实现任意节点间 安全、快捷的数据交换,为广域网络中各业务系统整合与集成、电子商务与电子 政务建设提供数据交换支撑依据。 1 。2 国内外研究现状 近几年,国外数据、信息交换软件( 消息中间件) 市场主要被两大国外厂商 i b m 和b e a 垄断,他们在银行、证券、电信等高端行业以及1 1 r 等行业中得到广 泛应用。前者凭借其在1 9 9 9 年推出的应用服务器w e b s p h e r e ,扎根金融、证券 等行业;后者则是一家专门致力于中间件开发的公司,其应用服务器产品 w e b l o g i c 在美国市场占有率超过6 0 ,在国内电信及证券行业占据主要地位。国 内流行的消息传输中间件,如i b m 公司的i b m m q s e r i e s 、东方通公司的t o n g l i r t k 、 b e a 公司的m e s s a g e q 等,i b m 公司消息传输中间件市场占领导地位n 】。 目前,国外的数据、信息交换软件占领着国内数据传输领域的主要市场份额, 但仍存在许多技术缺陷。在传输承载能力方面,由于采用的是串行处理技术,如 i b m 公司的i b m m q s e r i e s 和b e a 公司的m e s s a g e q 等,当每次传输数据过大时 传输耗时巨大,由于网络稳定性差,容易造成传输中断;当需要多用户间数据交 换时( 如数据汇总) ,经常发生传输等待、网络阻塞和系统死锁等现象,导致传 输系统瘫痪。在传输功能方面,国内外流行的消息中间件还不具备独立传输功能, 数据打包解包、数据压缩加密、传输过程监控等工作需另外编制程序完成,存在 着需要二次开发、传输内容发生变动时修改困难、系统运行不稳定、维护工作量 大等问题嘲。 1 3 主要工作和组织结构 本文探索实现海量数据传输并行处理技术的原理与方法,突破目前现有国外 消息中间件采用的串行处理方式,通过计算机并行集群和并行数据缓冲池同步技 术大大提高数据传输系统的承载能力和传输效率。 通过对目标智能路由及数据转发技术的深入研究,在广域网络传输节点间建 立数据邮递链路,突破现有国外消息中间件采用的点对点消息队列方式的传输模 式,避免了建立大量消息队列造成的资源消耗和维护困难。针对网络q o s ,提出 了扩展的d i j k s t r a 算法以及多约束蚁群算法,实现了目标智能路由,有效均衡网 络负载,提高网络资源利用率。此项技术能够支撑广域范围、大规模分布式系统 节点间实现多目标数据互传,为我国数据、信息交换软件产品与国外产品竞争提 供关键技术创新优势。 本论文共分六章,各章组织如下: 第一章:给出了课题研究的目的、意义、研究现状,以及论文的组织结构。 第二章:对s y b a s e 公司的几种数据复制技术进行分析对比,重点介绍了 m o b i l i n k 传输机制。 第三章:介绍了几种可扩展的并行计算体系结构,并着重对计算机集群技术 进行了多方面的介绍。 第四章:介绍了多约束q o s 路由问题以及q o s 路由算法,并对用于q o s r 的四种智能优化算法进行了分析对比。 第五章:提出数据邮递的概念,提出了满足多约束q o s 路由的扩展d i j k s t r a 算法,和有利于均衡网络负载的多约束蚁群算法,以实现目标智能路由,提高了 网络资源利用率,并能与传统路由算法良好共存,具有较好的性能和自适应性。 第六章:对全文工作进行总结,提出了需要进一步研究的问题和下一步的工 作目标。 2 第二章m o bilin k 技术传输机制 数据复制又称数据同步。就是在物理上完全不同的数据库之间共享数据。当 应用程序在任一数据库中修改共享数据时,就会将所做的更改传播到复制系统中 的其他数据库。可以使用不同的方法并通过多种渠道传播所做的更改,这样,既 保持了数据的完整性,又允许各种灵活的复制设置。 2 1 数据复制技术 s y b a s e 有三种复制技术。m o b i l i n k 、s q lr e m o t e 和r e p l i c a t i o ns e r v e r 【3 】。 m o b i l i n k 是一种基于会话的技术,用来在中心统一数据库和大量远程数据 库间进行双向数据复制。支持多种统一数据库服务器,其中包括非s y b a s e 数据 库。远程站点的管理和资源要求已降到了最低限度,因此,非常适于各种移动数 据库。每个同步会话结束后,这些数据库就会保持一致。 s q lr e m o t e 是一种基于消息的技术,用于双向事务复制。这种技术适用于 统一数据服务器和大量远程数据库之间的双向复制。远程站点的管理和资源要求 已降到了最低限度,因此,非常适合于移动数据库。此系统是基于消息的系统。 根据体系的不同,统一数据库和远程数据库间通常的延迟时间为几秒钟、几分钟 或几个小时。 r e p l i c a t i o ns e r v e r 是一种基于连接的技术,用于双向事务复制。非常适于使 用高速网络连接的少量企业数据库间进行的复制,通常每个站点有一个管理员。 在这类系统中,有可能将延迟时间缩短到几秒钟。如表2 - 1 所示。 表2 - 1 三种复制技术的比较 复制技术传播方法统一数据库系统网络保持事务完整远程站 特性性的方式点数量 m o b i l i n k 基于会话可以与许多常用的数据库服不定时合并多个已提大量 的复制务器一起使用,包括a s a 、连接交的事务中所 & 蟠e 、o r a c l e 、m i c r o s o f ts q l做的更改 s e r v e r 和i b m d b 2 。 s q l基于消息中心数据库必须a s a 或 不定时 或者复制整个大量 r e m o t e 的复制 s a s e 。 连接事务,或者根 本不进行复制 r e p l i c a t i o n基于连接 a d a p t i v es e r v e ra n y w h e r e 不间断或者复制整个少量 s e r v e r的复制连接 事务,或者根 本不进行复制 本论文中的数据传输平台是一个大型不定时连接的异类数据库之间的数据 复制,采用的是基于会话的m o b i l i n k 数据同步。 2 2m o bilin k 传输结构 m o b i l i n k 是一个基于服务器的同步化引擎,可以通过串行口、t c p i p 、 哪、h o t s y n c 、s c o u t s y n c 或a c t i v e s y n c 连接与远程客户通信。使用像m o b i l i n k 这样的通用同步技术可以极大地削减开发费用,因为m o b i l i n k 能够处理高级的 同步操作,比如瞬象( s n a p s h o t ) 和时间戳同步、主键维持、冲突的检测和解决 等。在服务器端,所有的m o b i l i n k 同步逻辑都是通过使用后台数据库的s q l 的 事件处理的( m o b i l i n k 通过o d b c 连接数据库,所以事实上支持所有的s q l 数 据库) ,通过使用c e r t i c o m 的s s i 椰sp l u s 来支持公钥加密功能( 使用椭圆曲 线加密系统技术h 1 ) 。 m o b i l i n k 是基于会话的同步系统,允许在本地的主数据库与多个远程数据 库之间进行双向同步。m o b i l i n k 传输结构如图2 1 所示。 图2 1m o b i l i n k 传输结构图 以下对传输结构图中的各个部分进行简要地介绍。 统一数据库:统一数据库是用于存储所有数据的,统一数据库内的数据是主 要的同步对象,远程数据库只是统一数据库内的全部数据或是其中的一部分数据 而已。另外,在统一数据库内也有逻辑存在。如何进行数据可同步,如何解决数 据库冲突的问题等都是以程序的形式存储在统一数据库内。 统一数据库服务器:管理统一数据库的服务器或d b m s 。可以是a d a p t i v e s e w e ra n y w h e r e ,也可以是使用o d b c 连接的数据库,如可以使用s y b a s e a d a p t i v es e r v e re n t e r p r i s e ,o r a c l e ,m i c r o s o f ts o ls e r v e r ,i b md b 2 等,但是使 4 用a d a p t i v es e r v e ra n y w h e r e 以外的数据库时,就需要做若干的设定,配置 m o b i l i n k 系统表。 o d b c 连接:m o b i l i n k 同步服务器和统一数据库之间的所有通信都通过一 个o d b c 连接进行。o d b c 使用同步服务器可以使用多种统一数据库系统。 m o b i l i n k 同步服务器:m o b i l i n k 同步服务器( 简称m o b i l i n k 服务器) 是用 于管理m o b i l i n k 的所有处理程序。统一数据库与远程数据库之间并不能直接进 行联机。m o b i l i n k 服务器就成了这两者的接口,用来作为数据存取的中介,并 控制与管理处理程序。 n e t w o r k :m o b i l i n k 服务器与远程服务器可以通过各种通讯协议进行通讯, 如可以使用序列联机( a c t i v e s y n c ,h o t s y n c ) 或是t c p i p ,唧等协议。 m o b i l i n k 客户端:m o b i l i n k 客户端可分为两种,分别是a d a p t i v es e r v e r a n y w h e r e 和u l t r a l i t e 数据库。关于同步处理的逻辑部分,虽然已经是存储在统 一数据库内,但是在客户端内也需要进行设定。在客户端的设定中,主要包括 m o b i l i n k 用户( u s e r ) 、发布( p u b l i c a t i o n ) 、订阅( s u b s c r i p t i o n ) 。 m o b i l i n k 用户是远程数据库的识别码,在每个远程数据库中各自设定不同 的m o b i l i n k 用户。 发布是远程数据库中用于标识要同步数据的数据库对象,由标识要同步的表 和列的项组成;依据发布的设定,可以上传数据。 订阅是一种数据库对象,在远程数据库中作为发布和m o b i l i n k 用户之间的 链接,从而使发布所描述的数据实现同步。即用来设定m o b i l i n k 同步服务器的 地址。 2 3 m o bjlin k 同步过程技术 同步会话是m o b i l i n k 客户端和同步服务器之间的双向数据交换过程。在此 过程中,客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远 程数据库和统一数据库保持相互一致的状态。此过程可分为三个阶段:上传、下 载和确认。同步过程如图2 2 所示。 5 图2 2m o b i l i n k 同步过程不意图 下面对传输过程进行简要地介绍。 1 将远程数据库的数据上传至m o b i l i n k 服务器上。同步是开始于远程客户 端的。具体而言,当m o b i l i n k 客户端开始执行同步时,远程站点上的m o b i l i n k 客户端就会上载自上次同步成功后对远程数据库所作的更改。于是,m o b i l i n k 同步服务器作为上传数据的接收方,在接收到这些数据时开始更新主数据库,进 行一系列的数据项的增加、删除、修改等操作。所有的更改将在一次事务中完成 应用。此后,m o b i l i n k 同步服务器将提交该事务。 2 将m o b i l i n k 同步服务器的数据下载至远程客户端。m o b i l i n k 客户端将自 动对下载流进行处理,删除旧行、插入新行以及更新已更改的行。所有的更改将 在远程数据库中的一个事务中完成应用。此后,m o b i l i n k 同步服务器将提交该 事务。 3 有一个可选的下载确定。m o b i l i n k 客户端将一个简短确认消息发送给 m o b i l i n k 同步服务器。该消息让同步服务器知道客户端已经接收并处理了所有 下载的更改。作为响应,同步服务器将提交始于第2 步的下载事务。 当m o b i l i n k 远程数据库打开与m o b i l i n k 同步服务器的连接时,同步过程 就此开始。同步期间,远程站点的m o b i l i n k 客户端将上载自上次同步以来对远 程数据库所作的更改。m o b i l i n k 同步服务器在收到这些数据时开始更新主数据 库,然后将所有相关的更改发送回远程站点。 2 4m o bilin k 传输日志文件 日志文件( l o gf i l e s ) 是包含系统消息的文件,包括内核、服务、在系统上 6 运行的应用程序等。在计算机系统中,日志是不可缺的一部分,无论是在操作系 统、数据库系统还是在一般的应用系统中,日志文件的帮助都是举足轻重的。 m o b i l i n k 传输日志文件能够帮助我们分析解决问题,保证参照完整性,自动校 验等等。 1 将输出记录到文件中。记录输出将发送到m o b i l i n k 同步服务器窗口中。 此外,可以使用- 0 选项将输出发送到一个日志文件中。以下命令将输出发送到 名为m l s r v 1 0 9 的日志文件中:d b m l s r v 9 0m l s r v 1 0 9 c 。 2 参照完整性与同步。所有m o b i l i n k 客户端在把下载流并入远程数据库时 将确保参照完整性。m o b i l i n k 客户端自动删除所有违反参照完整性的行,防止 下载事务出现故障。如果m o b i l i n k 客户端必须显式删除行以维护参照完整性, 则会提供通知。对于a d a p t i v es e r v e ra n y w h e r e 客户端,d b m l s y n c 将在日志中写 入一个条目。 3 在向统一数据库中上载行时可能会发生冲突。在同步的下载阶段,远程数 据库中不会出现冲突。如果下载的行中包含一个新的主键,则该行的值将插入到 新的一行。如果该主键与一个现有行的主键相匹配,则会更新该行中的值。如果 两个用户修改不同远程数据库中相同的行,则当这两行中的第二个到达 m o b i l i n k 同步服务器时将出现冲突。在冲突发生时,应定义一个过程以计算正 确值,或至少使用日志文件记录冲突。 4 自动校验。事务日志应用下载文件之前,d b n l l s v n c 会扫描远程数据库的 事务日志,并构建必须上载的所有更改的列表。仅在下载文件不包含任何会影响 具有必须上载的更改的行时,d b m l s y n c 才会应用该下载文件。 5 配置重定向器配置文件。要配置w e b 服务器与m o b i l i n k 同步服务器之 间的通信,必须在w e b 服务器所在的计算机上编辑r e d i r e c t o r c o n f i g 文件。检查 日志文件看重定向器是否记录了请求。 可以控制m o b i l i n k 传输日志文件的大小,并指定当文件大小达到其最大值 时的文件操作。使用o n 选项,可以指定使用扩展名o l d 重命名日志文件时的文 件大小,然后使用原始文件名来开始新的文件。使用o s 选项,可以指定使用基 于日期和顺序编号的新文件名来开始新日志文件时的文件大小。使用o t 选项, 日志文件的内容在消息发送之前被删除。 2 5m o bilin k 性能 m o b i l i n k 性能的主要体现是在于m o b i l i n k 同步的吞吐量。在同步吞吐量问 题上讨论影响性能的关键因素以及优化方法。 2 5 1 影晌m o b i l i n k 同步吞吐量性能的关键因素 任何系统的整体性能,通常都会受限于系统中某一点的瓶颈。在这里以 m o b i l i n k 同步的吞吐量为例来讨论一下影响整体性能的关键性因素。以下就六 个方面来说明限制同步吞吐量可能产生瓶颈的点。 1 统一数据库的性能m o b i l i n k 脚本的执行速度对于m o b i l i n k 具有特殊的 重要性。多个工作线程可以同时执行多个脚本,因此,为获得最佳吞吐量,在同 步脚本中要避免数据库的争用。 2 m o b i l i n k 与统一数据库进行通信的带宽。 3 运行m o b i l i n k 的计算机的速度。如果运行m o b i l i n k 的计算机的处理速 度缓慢,或没有足够的内存可供m o b i l i n k 工作线程和缓冲区使用,m o b i l i n k 的 执行速度就可能成为同步的瓶颈。如果工作线程和缓冲区获得适当的物理内存, 则磁盘速度对m o b i l i n k 服务器的性能几乎没有什么影响。 4 m o b i l i n k 的工作线程数。线程的数目越少,涉及的数据库连接就越少, 统一数据库争用的机会就越小,操作系统的开销也越小。然而,线程数目过少可 能会导致客户端等待空闲工作线程,而与统一数据库连接过少将不足以实现高效 重叠。 5 客户端与m o b i l , i n k 通信的带宽。对于慢速连接( 如通过拨号或广域无线 网实现的连接) 而言,网络可能会导致客户端和m o b i l i n k 的工作线程对数据传 输的等待。 6 客户端处理速度。因为下载时由于写入行和索引而需要更多的客户端处理 量,所以客户端处理速度过慢在下载过程中比上载过程中更容易成为瓶颈。 2 5 2 调优m o b i l i n k 同步吞吐量性能 获得m o b i l i n k 最优同步吞吐量的关键是同时并高效地执行多个同步过程。 要启动多个共存的同步,m o b i l i n k 将为每个同步指派一个工作线程。工作线程 接收客户端上载的更改并将其应用于统一数据库。然后工作线程从统一数据库读 取更改并将其下载到客户端。每个工作线程通过同步脚本使用到统一数据库的单 个连接以便应用和读取更改。需要从以下三个方面来考虑同步吞吐量的性能。 1 争用 最重要因素是避免同步脚本中的数据库争用。同其他多个客户端使用数据库 的情形一样,当客户端同时访问数据库时,希望将数据库争用降到最低。每个同 步都必须修改的数据库行可能导致争用的增加。例如,如果脚本中包含自动增加 的计数器,那么对该计数器的更新操作就有可能成为瓶颈。 下图显示了下列内容: 到统一数据库的连接池,如c 1 至c n 所示 8 许多同步请求,如s 1 至s n 所示 m o b i l i n k 工作线程,如w l 至w n 所示 统一服务器 图2 3m o b i l i n k 同步发生争用的示意图 如果同步请求数多于工作线程数,多出的请求将排队等待直到某个工作线程 完成同步后再次变为可用。可以控制工作线程和连接的数目,但m o b i l i n k 总会 确保每个工作线程至少拥有一个连接。如果连接数多于工作线程数,多出的连接 将空闲下来。多出的连接可能会对多个脚本版本有用,这一点将在下面进行讨论。 2 工作线程数 除了同步脚本中的争用以外,影响同步吞吐量的最重要的因素就是工作线程 的数目。工作线程的数目将控制可以同时进行的同步的数目。 测试对于确定工作线程的最佳数目十分重要。 工作线程数的增加将允许出现更多重叠的同步并因此增加了吞吐量,但也会 增加资源和重叠同步之间的数据库争用,故而增加了单个同步花费的时间。随工 作线程数目的增加,由单个同步更加耗时所产生的成本将逐渐超出由共存同步数 目的增加所产生的收益,此时添加更多的工作线程反而降低了吞吐量。可以通过 实验确定所处环境中工作线程的最佳数目。 对于上载,在性能测试中表现出,当工作线程数目相对较少( 绝大多数情况 下,3 至1 0 个工作线程) 时,可以得到最佳的吞吐量。浮动量取决于下列因素: 统一数据库的类型、数据量、数据库模式、同步脚本的复杂性和使用的硬件。导 9 致出现瓶颈的通常原因是:在统一数据库中同时执行上载脚本的s q l 的各工作 线程之间的争用。 对于下载,工作线程的最佳数目取决于客户端到m o b i l i n k 连接的带宽和客 户端的处理速度。对速度较慢的客户端而言,获取最佳的下载性能需要较多的工 作线程。这是因为下载比上载涉及更多的客户端处理和更少的统一数据库处理。 对于a d a p t i v es e r v e r a n y w h e r e 客户端而言,由于工作线程不必等待客户端 进行下载,因此消除下载确认( 但不禁用可选的下载缓冲) 可以减少用于下载的 工作线程的最佳数目。但此方法对u l t r a l i t e 客户端几乎不起任何作用,因为 u l t r a l i t e 客户端在接收下载时才进行下载,而不进行缓冲。 m o b i l i n k 为获得最佳下载吞吐量和最佳上载吞吐量提供了两个选项。可以 指定工作线程的总数以便优化下载吞吐量。也可以对同时执行上载的工作线程数 加以限制以便优化上载的吞吐量。 - w 选项控制工作线程的总数。缺省为5 。 w u 选项限制可以将上载同时应用于统一数据库的工作线程的数目。缺省 情况下,所有工作线程都可以同时执行上载,但这样做可能导致在统一数据库中 出现严重的争用现象。使用、阳选项,可以在仍使较大数目的工作线程优化下载 和接收上载的同时,减少争用情况的发生。硼选项仅在其指定的数目少于工作 线程的总数时才起作用。 3 m o b i l i n k 数据库连接 m o b i l i n k 将为每个工作线程创建一个数据库连接。可以使用c n 选项指定 m o b i l i n k 创建一个较大的数据库连接池,但是,如果m o b i l i n k 并不需要关闭 连接或使用不同的脚本版本,多余的连接就将空闲下来。 在两种情况下m o b i l , i n k 会关闭一个数据库连接并打开一个新的连接。第一 种情况是发生错误时。第二种情况是,如果客户端请求同步脚本版本,但所有可 用的连接都没有使用该同步版本。 如果有多个同步版本,最好将最大的池连接数设置为多于缺省工作线程的数 目( 缺省值为两者相等) 。这样在每次请求不同的同步版本时,m o b i l i n k 将无需 关闭和打开一个新的数据库连接。 如果通常使用多个脚本版本,则可以通过增加连接数以减少需要m o b i l i n k 关闭和打开连接的次数。如果连接数为工作线程数与版本数的乘积,将完全不需 要关闭和打开连接。 下面的命令行给出了对具有两个脚本版本的m o b i l i n k 进行调优的示例: d b m l s r v 8 - c ”d s n - - a s a8 0s a m p l e - w5 一c n1 0 因为数据库连接的最大可用数目为脚本版本数与工作线程数的乘积,所以可 将c n 设置为1 0 ,以确保无需为适应同步版本而关闭和打开数据库连接。 1 0 对具有三个脚本版本的m o b i l i n k 进行调优的示例: d b m l s r v 8 一c ”d s n = a s a8 0s a m p l e ”- w7 - e l l2 1 2 6 小结 m o b i l i n k 技术一种基于发布订阅方式的异步消息中间件技术。本章对 s y b a s e 的几种数据复制技术进行了分析对比,拟采用基于会话的m o b i l i n k 技术 完成数据复制。对m o b i l i n k 技术的传输结构、同步过程、传输日志等做了较详 细的介绍。以m o b i l i n k 客户端在建立m o b i l i n k 用户的基础上完成单向的同步 发布同步预订,m o b i l i n k 同步服务器只需要处于启动的状态,使m o b i l i n k 客户 端通过m o b i l i n k 同步服务器来进行同步。这种基于日志、以事务为基础的同步 过程方式,在保证信息安全、可靠、有效、快速地传输,使用地简洁、方便等方 面的优势是突出的。 第三章计算机集群及并行处理技术 3 1 可扩展的并行计算体系结构 在计算机系统体系结构发展过程中的几种主要类型中,每种体系结构的差别 在于互联技术、节点的复杂度和耦合程度的不同。在集群计算和分布式系统中, 以下这三种体系结构是比较具有代表性的。 1 无共享体系结构 无共享体系结构是目前大多数集群采用的方式。集群的每一个节点都是完整 独立的操作系统和硬件设备集合,都是独立的p c 或者工作站。节点之间通过局 域网或者开关阵列以松藕合的方式连接起来,彼此分享节点的部分甚至全部可用 资源:c p u 、内存、磁盘、加设备等等,以形成一个对外单一、强大的计算机 系统。无共享体系结构如图3 1 所示。 图3 1 无共享体系结构 2 共享磁盘体系结构 共享磁盘体系结构的节点基本上仍是独立的计算机,没有或者不使用本地的 磁盘文件系统。分布式文件系统正是这类体系结构的应用体现。常见的n f s 、 a f s 或者g f s 都属于这类范畴。而硬件上的解决方案常常是通过共享磁盘阵列 或者s a n 来实现。该体系结构主要能够解决区域存储空间的容量问题,通过构 造单一的虚拟文件系统,提供给整个集群一个巨大的存储设备。尤其在一些高可 用的场合,共享磁盘阵列常常能够解决文件系统容错和数据一致等可靠性问题。 共享磁盘体系结构如图3 2 所示。 1 2 图3 2 共享磁盘体系结构 3 共享存储器体系结构 从实现的难度来讲,不论是硬件制造的复杂性,还是软件的实现难度,共享 存储器体系结构都大大超过了其他几类体系结构的实现。实现这类体系结构的集 群系统有d s m ( 分布式共享存储集群) 、n u m a ( 非均匀存储器存取结构) 、 c c n u m a 等技术。在这类体系结构中,可以将多个节点的计算资源集合在一起, 形成一个内存空间一致的单一系统。共享存储器体系结构如图3 3 所示嘲嘲。 图3 3 共享存储器体系结构 3 2 集群技术 3 2 1 集群的产生 对集群的研究起源于集群系统的良好性能可扩展性( s c a l a b i l i t y ) 。提高 c p u 主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统 性能的提供是有限的。后来人们通过增加c p u 个数和内存容量来提高性能,于 是出现了向量机、对称多处理机( s m p ) 等。但是当c p u 个数超过某一阂值时, 像s m p 这些多处理机系统的可扩展性就变的极差。主要瓶颈在于c p u 的、访问 内存的带宽并不能随着c p u 个数的增加而有效增长。与s m p 相反,集群系统的 性能随着c p u 个数的增加几乎是线性变化的。几种计算机系统的可扩展性如图 3 4 所示。 系 统 性 能 系统 图3 4 几种计算机系统的可扩展性 在集群系统成为主流应用之前,企业级用户构建高性能信息应用系统时,一 般是在两种计算体系中进行选择的,一种是基于主机的计算体系,另一种是基于 客户机服务器的集群型计算体系。前者具有良好的可伸缩性、可靠性和高性能, 但价格昂贵,而且用户花费巨资购买的主机系统不可避免地包含一些并不需要的 功能,造成资源的浪费;后一种体系虽然允许用户根据实际需要逐步增加硬件系 统,但这种系统毕竟不是真正意义上的集群,缺乏必要的可用性和管理性。而集 群本身就具有高性能、可扩展性、高吞吐量和高性价比。因为集群技术使用户可 以以较低的成本获得标准技术( 商用硬件和软件) 来改进他们的计算机处理能力。 3 2 2 单一系统映像 如果一群互联的计算机被设计成看起来好像统一的资源,这就是单一系统映 像( s s i ) 口1 。s s i 可以在不同的层次实现。比如,内存通道技术拈3 ,通过“集群 内部节点地址空间映射 的方式在节点间提供虚拟共享内存,使用户可以将集群 看成一个大的共享内存,从而在硬件层实现了s s i 。 需要指出的是,一个通用的s s i 需要考虑很多地方,如资源管理和调度。本 论文涉及的集群不是一个通用的s s i ,而只针对网络服务这一领域,因此,没有 涉及过于复杂的方面。本文所讨论的集群技术具有这样的特征: 1 4 1 在应用态,所有的编程接口a p i ( 尤其是套接字接口) 与同种类的操作系 统保持兼容。 2 系统内部自动支持多节点联机工作。 3 总体性能随集群系统中协同工作的计算机数目呈线性增长。 4 易于管理,多机联合无需特殊的配置。 5 针对网络应用实现优化,尽可能采用简单可靠的方式。 3 2 3 集群类型 最常见的三种集群类型包括高性能科学集群、负载均衡集群和高可用性集 群。 1 高性能科学集群 科学集群是并行计算的基础。通常,科学集群涉及为集群开发的并行应用程 序,以解决复杂的科学问题。科学集群对外就好像一个超级计算机,这种超级计 算机内部由十至上万个独立处理器组成。但它却使用商业系统,并且在公共消息 传递层上进行通信以运行并行应用程序。 2 负载均衡集群 负载均衡集群为企业需求提供了更实用的系统,使负载可以在计算机集群中 尽可能平均地分摊处理。负载通常包括应用程序处理负载和网络流量负载。这样 的系统非常适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承 担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载 均衡。对于网络流量负载,当网络服务程序接受了太多的入网流量,无法迅速处 理时,网络流量就会发送给在其他节点上运行的网络服务程序。 3 高可用性集群 考虑到计算机硬件和软件容易发生错误,高可用性集群的目的主要是为了使 集群的整体服务尽可能可用。如果高可用性集群中的主节点发生了故障,那么这 段时间内将由从节点代替。从节点通常是主节点的镜像,所以当它代替主节点时, 可以完全接管其身份,因此使系统环境对于用户来说是一致的。 在集群的这三种基本类型之间,经常会发生混合与交杂。可以发现高可用性 集群也可以在其节点之间均衡用户负载。同样,也可以从要编写应用程序的集群 中找到一个并行集群,在节点之间执行负载均衡。从这种意义上来讲,集群类别 的划分是一个相对的概念,不是绝对的。 3 。3 集群系统的网络调用 当前,集群系统的网络调用标准主要有套接字和远程过程调用( r p c ) 。套 接字是当前的工业标准,是一种通用的通信抽象,当前许多的标准通信服务和高 层专用通信协议可以很容易的在套接字上建立。而远程过程调用( r p c ) 是分布 式客户机朋艮务器应用程序事实上的标准,是一种更高级级别的通信抽象,最初 的消息传递就是建立在该通信抽象上的。 3 3 1t g p 、u d p 及其套接字 口是互联网网络层事实上的标准,提供单个分组到单步距离主机的不可靠 传输。在i a n 和集群之前,口就已经被提出了,而那时人们并没有认识到将口 直接曝光到应用级的潜在优点。两种基本的通信服务质量( q o s ) 称为“连接 和“数据流 ,用两种不同的球之上的附加层来实现,即传输层控制协议( t c p ) 和用户数据报( u d p ) 。 t c p 、u d p 和口是在网络世界中非常重要并且非常有价值的协议:尽管并 非是国家或者国际标准,却是因特网中事实上的标准。然而,由于它们是在很多 年前被设计出来的,t c p 和u d p 没有预期到现在需要通过l a n ( 有时候,集群 用城域网( m a n ) 和w a n 连接) 进行快速互连的集群计算应用程序。因此, 当这些协议被用于一些现代应用程序( 例如,分布式应用程序互连,同步多媒体 数据流传输,相通数据到多个目的地的传输) ,就显现出了不足。对于集群应用, 我们认为协议应该提供机制,分布式应用程序应该建立策略。但t c p 、u d p 都 实现了协议定义而非应用程序定义的固定策略,机制嵌入了策略,两者无法分开。 t c 口和u d p i p 可以用相同的应用程序编程接口( a p i ) ,即伯克利套接字, 用于应用程序级。和口类似的是,套接字的提出远远早于人们意识到特定网络 抽象对通信性能、可扩展性以及代码优化的影响。实际上套接字的设计目的是提 供友好的u n i x 版本抽象:网络被当作一个字符设备,套接字是与该设备相关的 文件描述符。套接字和口协议组的成功归功于用途的一般性以及与其它已有抽 象的相似性。 3 3 2 远程过程调用( r p c ) 套接字接口是当前的工业标准,是通信的通用抽象。遗憾的是,其抽象级别 太低。尽管所有的标准通信服务和更高级专用协议( 例如,e m a i l 的s t m p 协议) 可以很容易地在套接字之上建立,仍然需要更高级并且仍然通用的抽象。如今的 r p c 是分布式客户机朋匣务器应用程序事实上的标准。与套接字和p 相似,r p c 的成功主要归功于其友好性和通用性,而非其效率。通过调用合适参数的过程来 请求服务。被调用的服务也可以返回一个结果。而且在异构环境下,一个主要的 困难是应付不同的数据格式,从而在网络中不同系统上表示相同的数据类型。 r p c 隐藏了任何格式的差别,从而提供了异构分布式系统的透明性。 1 6 3 4 集群系统的消息传递 3 4 1 并行虚拟机( p v m ) 和消息传递接口( m p i ) 当r p c 被分布式客户机服务器应用程序的开发团体当作是一个标准时,并 行程序员的大型团体尚未包含进来。这是因为那时传统的并行计算机比用网络互 连的单处理器建立起来的分布式系统要强得多,二者根本无法相比。然而,联网 计算机对于教育或原型建立用途来说是一个低成本的并行平台。因此,基于可用 的r p c 机制,分布式平台上消息传递和并行程序管理的通用系统从应用程序级 开始发展。 并行虚拟机( p v m ) m 是第一个这样的消息传递系统,建立了事实上的并行 编程标准。p v m 为进程提供了易于创建进程和进程间通信的编程接口,再加上 基本应用程序管理的实时系统。p v m 在大多数普通类型的分布式内存的系统上, 也就是一般的球网络,以及共享内存系统和m p p 上运行得都很好。这保证了 p v m 程序到任何并行系统最广泛的可移植性。并且,p v m 进程可能会质疑p v m 实时系统有关本地处理器的计算能力,这将大大有助于设计自平衡的并行应用程 序。p v m 的流行以及低效大部分应归功于其实时管理系统。 消息传递接口( m p i ) n 是消息传递并行程序的另一个标准。m p i 比。p v m 提供了更大更通用的例程集合,但不提供任何实时管理系统。实际上,m p i 的流 行应该归功于其现有实现与p v m 相比更加有效,而不是它的丰富编程接口。 3 4 2 活动消息 活动消息1 与经典的发送一接收模型略有不同。它是单边通信范例,也就说, 不管发送方何时发送一条消息,不管接收方进程当前正在进行什么动作,都要交 换消息,在另一方一般不需要接收操作。 活动消息的目标是减少通信开销对应用程序性能的影响。活动消息的特殊语 义可以消除消息在通信路径上对大量暂存的需要,因此显著的加速了通信。有了 合适地硬件支持,也很容易把通信和硬件结合起来。 在传统的发送一接收系统中,传递到目的节点的消息可能需

温馨提示

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

评论

0/150

提交评论