分布式数据处理

2024-06-14

分布式数据处理(精选12篇)

分布式数据处理 篇1

摘要:本文介绍了分布式数据库数据处理的方式和实现, 针对数据的拆分和整合进行研究, 提出针对RS10数据处理的方案, 以期解决大数据量和并发访问效率的性能问题。

关键词:分布式数据库,数据拆分,数据整合

0 引言

由于数据量和并发访问量的急剧增加, 数据库的连接遇到瓶颈, 大数据量的表访问速度慢、效率低的问题日益突出。对于海量数据的处理, 非关系型数据库使用日益增多, 如何部署分布式数据库, 解决关系数据库和非关系数据库的共同使用以及大数据量的表访问效率低的问题已成为重中之重, 通过把数据拆分到不同的数据库, 在应用层对不同数据源整合的方案, 是解决数据层性能问题的关键。

1 数据拆分

随着网络流量爆发式的增长, 业务拆分势在必行。拆分的业务形成一个个独立的子系统, RS10系统包括生产、物流、财务等子系统, 每个子系统之间耦合度低, 功能模块划分清晰, 数据易于拆分。把生产、物流、财务等子系统的数据从存放在一个数据库服务器上拆分成存放在不同的数据库服务器上, 通过中间数据层框架进行数据整合, 使得业务层访问数据仍像访问单个数据库一样, 不造成任何影响。业务分级与关联是业务划分、信息共享和资源整合的过程, 使用数据层框架解决分布式数据库对业务分级和关联带来的影响。通过分库分表、读写分离, 数据库的性能问题也迎刃而解。

数据拆分就是通过某种特定的条件, 将我们存放在同一个数据库中的数据分散存放到多个数据库 (主机) 上面, 以达到分散单台设备负载的效果。数据拆分同时还可以提高系统的总体可用性, 即使单台设备崩溃之后, 只是总体数据的某部分不可用, 而不是所有数据。

数据拆分根据其拆分规则, 可以分为两种拆分模式。一种是按照不同的表拆分到不同的数据库 (主机) 之上, 这种拆分称之为数据的垂直拆分;另外一种则是根据表中的数据的逻辑关系, 将同一个表中的数据按照某种条件拆分到多台数据库 (主机) 上面, 这种拆分称之为数据的水平拆分。

1.1 垂直拆分

数据的垂直拆分也称纵向拆分, 数据库是由很多个数据块组成, 我们垂直地将这些数据块拆开, 将它们分散到多台数据库主机上面。

一个架构设计较好的应用系统, 其总体功能肯定是由很多个功能模块所组成的, 而每一个功能模块所需要的数据对应到数据库中就是一个或者多个表。不同功能模块的数据存放于不同的数据库主机, 可以容易避免跨数据库的连接存在。

垂直拆分的架构, 如图1所示。垂直拆分的优点表现在:

1) 数据库的拆分简单明了, 拆分规则明确;

2) 应用程序模块清晰明确, 容易整合;

3) 数据维护方便易行, 容易定位。

垂直拆分的缺点则表现在:

1) 部分表关联无法在数据库级别完成, 需要在程序中完成;

2) 访问及其频繁且数据量超大的表依然存在性能瓶颈;

3) 事务处理相对更加复杂。

1.2 水平拆分

水平拆分主要是将某个访问及其频繁的表再按照某个字段的某种规则来分散到多个表中, 每个表中包含一部分数据。

数据的水平拆分是按照数据行的拆分, 将表中的某些行拆分到一个数据库, 而另外的某些行拆分到其他的数据库中。为了我们容易判定各行数据放在数据库中, 拆分需要按照特定的规则来进行。如根据公司号或者用户编码等进行拆分。

基于用户的编码进行数据水平拆分, 如图2所示。

水平拆分的优点表现在:

1) 表关联基本能够在数据库端全部完成;

2) 不存在超大型数据量和高负载的表;

3) 事务处理相对简单;

水平拆分的缺点则表现在:

1) 切分规则相对更为复杂, 很难抽象出一个满足整个数据库的切分规则;

2) 后期数据的维护难度有所增加, 人为手工定位数据更困难;

3) 应用系统各模块耦合度较高, 对数据的迁移拆分造成一定的困难。

1.3 联合拆分

在实际的应用场景中, 系统的业务逻辑比较复杂, 系统负载比较大, 无法通过单独的一种数据拆分方式来实现, 需要两种拆分方法结合使用, 分布式数据库应采用垂直拆分与水平拆分联合使用, 如图3所示。

联合拆分的优点:

1) 可以充分利用垂直拆分和水平拆分各自的优势而避免各自的缺陷;

2) 让系统扩展性得到最大化提升;

联合拆分的缺点:

1) 数据库系统架构比较复杂, 维护难度更大;

2) 应用程序架构也相对更复杂。

2 数据整合

数据库在经过垂直和 (或) 水平拆分被存放在不同的数据库之后, RS10系统最大的问题是访问业务数据, 让业务数据得到较好的整合, 因此, 存在两种解决方案:

第一种方案, 在每个子系统中配置和管理需要的数据源, 直接访问各个数据库, 在每个子系统内完成数据的整合;

第二种方案, 使用数据层框架来统一管理所有的数据源, 数据库集群对每个子系统透明。

针对RS10, 我们采用第二种解决方案来实现数据的整合。

3 分布式数据库层架构

在选择通过数据库的中间代理层来解决数据的拆分和整合方案之后, 我们选取开源的Amoeba框架, 在它基础上开发出适合RS10的数据拆分和整合方案。

Amoeba是一个基于java开发的, 专注于解决分布式数据库数据源整合的开源框架, 可用来监视、分析或者传输他们之间的通讯信息, 实现连接路由、Query分析、Query过滤和修改、负载均衡以及基本的HA机制等。

所有客户端请求都是通过这个中间层, 然后经由中间层进行相应的分析, 判断出是读操作还是写操作, 然后分发到相应的数据库服务器上, 我们基于这个框架来实现和部署RS10的分布式数据库, 架构图如图4所示。

Amoeba能解决RS10以下问题:

1) RS10分库分表以及拆分之后数据的整合;

2) 提供了数据拆分规则, 降低拆分规则给数据库带来的影响;

3) 减少了数据库与客户端的连接数, 用户只访问自己需要的数据;

4) 通过中间层代理, 实现读写分离。

基于这个开源框架我们能开发出同时连接不同的数据库的数据源为前端应用程序提供服务, 我们通过Amoeba框架分析Query语句, 根据Query语句中所请求的数据来自动识别Query语句的数据源是什么类型数据库, 在哪个物理主机上面, 然后选择特定的JDBC驱动和相应协议连接后台数据库。

通过数据的垂直和水平拆分, 增强数据库的整体服务能力, 通过数据层框架解决数据拆分和整合, 使数据库很容易扩展, 只需要增加廉价的PC服务器, 即可线性增加数据库集群的整体服务能力, 从而实现分布式数据库的部署和扩展。

4 结束语

目前, 关于分布式数据库系统数据处理的研究很多, 针对RS10大数据量的性能以及并发访问效率低的问题, 基于Amoeba框架, 对大数据量的表进行拆分, 对集中式部署的数据库采用分布式部署, 有效的解决数据量大、并发访问效率低的问题。分布式数据库对数据的拆分和整合是最关键的环节, 只有充分解决这个问题, 分布式数据库才能得到有效地使用。

参考文献

[1]http://info.52z.com.[EB/OL.]

[2]MySql数据切分及整合方案—IT科技以人为本[J], 2009.

[3]王玉奎.通用高性能网络棋牌游戏服务端的研究和设计[D].武汉理工大学, 2011.

分布式数据处理 篇2

Twitter已经从以往的数据存储开发经验中提出一个名为 Gizzard的Scala框架,让用户可以更方便地创建自定义容错、分布式数据库,Twitter给出了一个名为“Rowz”的示例,方便用户上手,

Twitter还公布了Gizzard的完整代码。有了Gizzard,初创公司和小公司就可以更好更快地处理大量数据,从而利用更少的资源满足用户需 求。

项目主页:www.open-open.com/lib/view/home/1339141537578

分布式数据库技术应用研究 篇3

关键词:分布式;数据库;管理;数据

中图分类号:TP315 文献标识码:A文章编号:1007-9599 (2011) 07-0000-02

Application Research of Distributed Database Technology

Chen Xiangping

(Shengli Oilfield Company Dongxin Oil Production Plant,Dongying257000,China)

Abstract:With the development of computer network technology,distributed database technology is more widely used.This paper discusses the design is based on B/S structure of the integrated management information system the application of distributed database technology,and in the application process the principles of database design,structure and mechanism.

Keywords:Distributed;Database;Management;Data

分布式数据库技术是过去十几年中最重要的计算机发展成果之一。到八十年代中期,已出现了不少商品化的分布式数据库系统,如计算机公司等。尽管这些系统还不算完全成熟,但由于它们至少已经实现了分布和重复数据的透明管理、依靠分布式事务处理提高系统可靠性、依靠交叉查询和内部查询并行机制改善系统性能以及更容易和廉价的系统扩展,因而可以断定今后大多数组织将转向分布式数据库管理,集中式数据库系统将成为历史的过客。

一、分布式数据库结构模型

通常情况下,分布式数据库结构模型如图1所示。具体特征是:分布式数据库由分散在不同地域上的局部数据库和全局调度数据库两个强力自治的数据库功能实体有机合成。其中,局部数据库的设计实现多要配置集中式数据库管理系统(DBMS)和数据库(DB)。使用局部数据库主要完成用户专用数据存取的控制与更新,因此,各个局部数据库的有较强独立性;另外,局部数据库能够至少分享和执行一个全局调度数据库(节点中心库)所提供的全局应用功能,这种全局应用功能主要包括:远程信息检索调阅、公用信息随机存贮等[1]。

作为全局调度数据库多要配置分布式数据库管理系统(DDBMS)和数据库(DB)。该数据库部分主要完成数据库信才良的全局调度,并具体执行全局查询检索策略和并发应用管理策略。这里,全局查询检索策略主要完成用户查询语句转换和将其转变为一系列的可行数据库操作;并发应用管理策略主要完成数据库并发操作环境下的数据库操作管理与控制,并主要包括并发事务的排队处理与封锁管理等技术设计实现。

图1分布式数据库结构模型

从图1中可以看出:DDBMS主要包括网络数据字典、网络数据库管理、全局逻辑映射等功能实体;DBMS主要包括本地数据库管理、局部逻辑映射、存贮模式等功能实体。DBMS和DDBMS均应通过操作系统(OS)完成数据库的存贮访问与透明操作。

在分布式数据库开发设计过程中,网络数据字典至关重要,它不仅存有系统所需有关对象的描述信息和控制信息,以使系统能把用户对数据的高级查询转换成对相应存贮对象的低级操作,而且还应完成维护与管理功能,诸如数据分布、结构、使用和访问控制等维护和管理功能等。

关于分布式数据库中全局调度数据库与局部数据库的信息交互主要依靠两个条件支撑:1.利用全局逻辑映射与局部逻辑映射相接口,具体解决数据库结构转换和地域分片定位处理。2.数据库分布式功能实现与计算机网络环境设置密切相关,因此,作为分布式数据库的网络环境必须具有下述功能特性针对全局查询检索策略的优化设计,应对信息传输路径的优化选择提出可靠服务。针对网络数据管理,应在网络通信软件和数据库管理软件之问备有网络存取进程的必要接口服务。

二、分布式数据库技术在系统体系结构中的应用

(一)数据管理现状

由于生产管理需要,公司总部与各分公司之间经常要进行数据传递,公司总部需要动态掌握各分公司的日常生产数据。由于公司总部与各分公司处于不同城市,在业务上它们处理和存储各自的数据,如何处理分散的数据,实现公司总部与分公司数据更新同步,确保数据一致性、避免数据存储冲突是目前亟待解决的问题。

(二)数据库设计的基本原则

从全局应用的角度出发,将这些数据库自下而上构成分布式数据库系统,实现全局数据的完整性和一致性,各分公司仍然存放本公司的数据,总公司的数据库则存放所有业务数据,并对数据进行完整性和一致性的检查,这种做法虽然有一定的数据冗余,但在不同场地存储同一数据的多个副本,能提高系统的可靠性和可用性,也提高了局部应用的效率,减少了通讯代价。该分布式数据库系统可以在对当前机构影响最小的情况下进行扩充,增加新的分公司时只需增加一个节点就可以了,同时也使得各处理机之间的相互干扰降到最低。

(三)数据存储

分布式数据库系统可以通过复制、分片和复制加分片三种方式存储数据,因为各数据库之间存在一定的数据冗余,又存在着差异,我们使用了复制+分片的方式进行数据存储。

1.数据分片

在分布式数据库系统中,将关系分片,有利于按用户需求组织数据的分布,目前的分片方式有水平分片、垂直分片、导出分片、混合分片等四种。我们根据不同的数据关系采用了不同的分片方式:(1)在总公司与分公司的数据关系中,由于分公司的数据是总公司业务数据的子集,我们采用了水平分片的方式,通过并运算实现关系的重构。(2)在总公司数据库服务器与Web数据库服务器的数据关系中,数据是按照其应用功能来划分的,所以我们采用了垂直分片的方式。

2.数据同步

数据同步方式则根据系统需求使用事务复制和合并复制两种,由于分公司只存放本部门数据,数据管理和分析功能是由总公司的数据库服务器来实现,分公司只需将更新的数据发送到总公司的数据库即可,我们使用事务复制进行业务数据的同步,把分公司的数据库作为出版者和分发者,总公司的数据库作为订阅者,对分公司的数据建立快照代理,并在分发数据库中记录同步状态的信息。每一个使用事务复制的分公司数据库均有自己的日志读取代理,运行在分发者上并连接出版者[2]。分发代理的任务是将分发数据库中保持的事务任务直接推动到订阅者。当推订阅被创建时,每个为立即同步而建立的事务出版物通过自己的分布代理运行在分发者上并与订阅者相连。

(四)利用分布式技术实现事务处理

我们使用MS DTC作为事务管理器来协调各个服务器对事务的处理操作,为了减少网络故障对事务处理的影响,避免分布式事务造成不同服务器间数据的不一致,将分布式事务的处理过程规定为两个阶段,即准备阶段和提交阶段,就是常说的两阶段提交。在进行分布式事务处理时,我们首先在服务器端用Transact SQL脚本程序BEGIN DIS-TRIBUTED TRANSACTION语句启动一个分布式事务,将该服务器作为分布式事务管理服务器,然后脚本程序对连接服务器执行分布式查询或远程服务器上的存储过程,分布式事务管理服务器会自动调用MS DTC,使远程服务器参加分布式事务处理。当脚本程序执行COMMIT TRANSAC-TION、COMMIT WORK、ROLLBACK TRANSAC-TION或ROLLBACK WORK语句时,分布式事务管理服务器将再次调用MS DTC,用它来管理两阶段提交进程,使连接服务器和远程服务器提交或回滚事务。例如在业务系统中,如果主体数据库管理系统发现该数据在有重复录入,则需将该信息插入数据重复记录表中,同时在对应的局部的数据库中将该条记录的状态设为无效。我们在局部的数据库(DBServer1)中建立存储过程update-policy更新数据状态,在主体数据库服务器(DBServer)上执行以下脚本程序,启动一个分布式事务insert-reject系统执行insert-reject事务向DBServer中的reject表插入一条记录,同时更新对应的局部数据库中的对应数据表status字段,该事务使系统数据的完整性得到了保证。

三、结束语

分布式数据库技术引入系统体系结构中的应用后,有效的解决了总体和部分之间数据分散和集中管理的矛盾,实现了数据的共享和交换,有关分布式特性设计与分布式计算机网络环境的强力支撑能力密切相关。分布式数据库技术决非独立存在,它的应用与网络环境密切相关,或说两者正在融于一体。事实证明,分布式技术在远程数据管理中具有不可替代的作用。

参考文献:

[1]邵佩英.分布式数据库系统及其应用[M].北京:科学出版社,2005

[2]刘志敏.Oracle数据库应用管理解决方案[M].北京:电子工业出版社,2002

分布式数据处理 篇4

测井数据是利用井下仪器、地面设备获得的一种测井资料, 利用测井曲线可以预测含有原油的砂体分布, 掌握储层物性参数空间分布规律, 该数据的处理在石油勘探与开发过程中占有重要地位。目前, 测井曲线的处理大多由手工完成, 费工费时。通常, 一条中等规模的测井曲线, 需要10个以上的人时处理, 而国外基于UNIX工作站开发的测井曲线处理系统, 不但操作复杂, 脱离我国实际生产情况, 且价格过于昂贵, 由于此类系统通常采用单机处理模式, 信息检索和处理速度、系统容量低下, 严重制约了油田开发数据处理的进程。因此, 开发基于Windows平台的, 适合我国实际生产需求的分布式测井数据自动处理系统是非常必要的。

1 系统模型

测井数据处理的主要工作是确定石油储层的性质。储集层是指具有储集空间, 储集空间又相互连通的岩层。本系统主要处理的测井参数有储层厚度、孔隙度、油气饱和度、渗透率等等, 图1是经过分析得到的数据流图。其中现场生产单位给出的测井数据分为新老两个系列。

新系列经验公式的变量有:厚度外 (米) ;三側向 (黑) /Rlls;三側向 (红) /Rlld;密度/Den;声波时差/Hac;井径/Cal;微电极 (黑) /Rmg;微电极 (红) /Rmn;自然电位/Sp;伽玛/Gr。

老系列经验公式的变量有:厚度外 (米) ;0.25米/R025;0.45米/R045;三側向 (黑) /Rlls;三側向 (红) /Rlld;声波时差/Hac;井径/Cal;微电极 (黑) /Rmg;微电极 (红) /Rmn;自然电位/Sp。

该系统通过对原始数据读取, 绘制曲线, 将数据导入内存;然后根据分层数据表对原始数据进行读值操作, 得到读值曲线;最后根据经验公式计算出参数数据;在整个过程中, 操作员都可以对当前数据进行处理, 调整预设参数, 人工干预数据的生成过程[2,3,4]。

2 关键技术

2.1 高速分布式并行检索

分布式并行体系结构下的测井数据的检索通常分为两个步骤, 其方法与系统内部结构如图2所示。

(1) 异地检索所要处理的测井曲线所在位置

注意:尽管单个测井曲线数据文件可以被存放在磁带或者硬盘中, 但运算时为了加快处理速度, 通常需要将其导入内存。为此, 在从单机中读出测井数据进行扩散的同时, 硬盘存储该数据的节点自动记录各条曲线的扩散信息 (包括文件名称、曲线名称、源节点、目的节点、目前状态等) ;同时, 由于此类信息的数据项较多, 且使用频繁, 在此采用了“分布式哈希”DHT (Distributed Hash Table) 算法, 计算求得该曲线扩散的目标节点, 并将其主动发布到该节点上;目标节点接到扩散信息后, 将其纳入本地测井曲线记录表中。当其他节点需要该曲线信息时, 首先从本地记录表中检索曲线所在的位置, 如果有对应的记录, 则通过千兆以太网, 从对应节点的内存 (而不是硬盘) 中获得该曲线的最新数据。如果没有该项记录, 则利用曲线的文件名等元数据, 通过DHT算法得出该曲线的扩散记录所在的目标节点;进而向目标节点发出查询信息;目标节点接到信息后, 查询本地记录表, 发送对应的曲线数据给请求节点。这种方法从系统整体上降低了检索的开销。

(2) 测井曲线特定层段的检索

当本地/异地需要从特定曲线中检索层段数据时, 如何从数万条相关记录中检索有用信息一直困扰着研发人员。根据测井曲线自身的特性 (沿y轴反方向生长, 并逐级分层) , 且相同深度包含的层段数据量可能不同 (浅层砂岩通常分层较少, 而深层砂岩可能在数米之内有上百个层段) , 因此本系统采用了二级并行索引的方式解决该问题:第一级索引基于深度构建, 其基本思路是在导入数据时, 在曲线模型中加入深度索引信息;即每读出100米数据, 即标注该100米数据的起始段编号和结束段编号。第二级索引基于层段名建立, 即每当读出名称相同 (中/英文名前缀相同) 的层段数据, 记录其若干连续同名层段中的起始/结束段名以及编号;所有的索引信息以附加信息形式添加在特定曲线数据的尾部, 并且在曲线模型的元数据记录其入口及相关信息。

2.2 分布式数据同步

该系统将有众多的操作员进行数据处理, 可能会出现多个操作员频繁处理同一条记录的情况, 如果不采用分布式数据同步方法保证数据处理的顺序性, 将会导致数据的不一致。本系统采用的分布式同步算法的主要步骤如下:

1) 当编辑曲线的节点需要进入处理特定层段时, 利用“文件名称+曲线名+处理层段名称”, 按照哈希类算法生成仲裁节点标志, 然后向仲裁节点发送请求。

2) 仲裁节点中建立“先进先出”的请求队列, 并按照请求消息到达的先后顺序发送应答给请求节点;当队列头部是连续“读”请求时, 可以同时发送若干应答给多个“读”请求节点;如果队列头部是“写”请求, 则仅仅发送应答给“写”请求节点。至此, 分布式同步问题以本地方法得到了解决。

3) 仲裁节点将携带本地请求队列的应答消息发送给优先级最高的节点;当该节点退出临界区后, 如应答消息中的队列非空, 无需发送释放消息给仲裁节点, 直接转发应答给下一个节点 (也可能是多个“读”节点) ;如此循环, 直到应答消息中的队列为空;应答消息中的队列为空后, 最后一个获得该消息的节点, 退出编辑状态后, 将发送释放消息给仲裁节点。

3 试验与分析

该系统目前已在生产现场得到了应用。生产部门组织了该系统与目前国外某型专用测井数据处理系统的对比试验。其中, 本系统采用4台微机服务器 (CPU 2.8G, 内存1G, 并且可以随时扩容) 作为试验平台;国外专用小型机中有4片CPU, 内存1G, 系统无法扩容。最终的处理时间对比如图3所示。较之国外系统, 本系统的平均处理时间缩短了三分之二以上;国外系统只允许一个操作员控制一条曲线, 整个系统最多只有5个操作员可进入系统;而本系统可以同时容纳20个操作员, 提高了工作效率。

4 结 论

本文给出了基于分布式并行结构的测井数据处理系统, 并描述了该系统实现的关键技术。该系统已经在生产中得到了应用。现场使用证明, 该系统具有良好的扩容性能, 能够减轻计算、通信等负载, 因此具有较高的推广价值。

摘要:针对测井数据处理系统中交互数据检索速度慢等一系列问题, 提出一个专用分布式并行模型。该模型通过分布式并行技术提高数据检索速度, 通过定点同步的方法保证了多用户数据一致性。性能及试验分析表明, 该模型提高了系统的容量和处理速度, 提供了高效的数据一致性维护等服务。

关键词:分布式并行,检索,数据处理

参考文献

[1]王群.矿场地球物理.黑龙江:大庆石油学院出版社, 1999:1-3.

[2]Jose Duato.并行计算机互联网络技术[M].谢伦民, 等译.北京:电子工业出版社, 2004:22-48.

[3]Jie Wu.分布式系统设计[M].高传善, 译.北京:机械工业出版社, 2001:3-16.

[4]张海藩.软件工程导论[M].3版.北京:清华大学出版社, 1998:8-129.

分布式数据库的主要特点 篇5

(1)、数据独立性与位置透明性,数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型.分布透明性的优点是很明显的.有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样.当数据从一个场地移到另一个场地时不必改写应用程序.当增加某些数据的重复副本时也不必改写应用程序.数据分布的信息由系统存储在数据字典中.用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送.

(2)、集中和节点自治相结合。数据库是用户共享的资源.在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行.在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据.这些数据是本场地用户常用的.二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用.因此,相应的控制结构也具有两个层次:集中和自治.分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的DBMS可以独立地管理局部数据库,具有自治的功能.同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。当然,不同的系统集中和自治的程度不尽相同.有些系统高度自治,连全局应用事务的协调也由局部DBMS、局部DBA共同承担而不要集中控制,不设全局DBA,有些系统则集中控制程度较高,场地自治功能较弱。

(3)、支持全局数据库的一致性和和可恢复性,

分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。这是因为全局应用要涉及两个以上结点的数据.因此在分布式数据库系统中一个业务可能由不同场地上的 多个操作组成.例如, 银行转帐业务包括两个结点上的更新操作。这样,当其中某一个结点出现故障操作失败后如何使全局业务滚回呢?如何使另一个结点撤销已执行的操作(若操作已完成或完成一部分)或者不必再执行业务的其它操作(若操作尚没执行)?这些技术要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题.

(4)、复制透明性。用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。

(5)、易于扩展性。在大多数网络环境中,单个数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。

分布式数据库的优点

(1)具有灵活的体系结构 。

(2)适应分布式的管理和控制机构。

(3)经济性能优越 。

(4)系统的可靠性高、可用性好 。

(5)局部应用的响应速度快。

(6)可扩展性好,易于集成现有系统。

分布式数据库的缺点

(1)系统开销大,主要花在通信部分。

(2)复杂的存取结构,原来在集中式系统中有效存取数据的技术,在分成式系统中都不再适用。

(3)数据的安全生和保密性较难处理。

分布式数据处理 篇6

关键词:MySQL;PHP;分布式事务处理

中图分类号:TP311.13

PHP和MySQL是一种比较出色的开放源码软件,这种组合形式已经成为很多人的建站模式。计算机网络的发展需要一个十分强大的数据库做后台,这些系统与系统、数据与数据之间的分布式事务处理利用PHP和MySQL的功能可以做到分段式处理方式,保证了整体数据的完整性,一旦出现问题,通过引入XA概念将PHP和MySQL的程序简化,整体事务由XA来完成,应用程序只负责数据为的处理,从而大大优化了了应用程序的操作方式与成功率。

1 MySQL概念

MySQL是一个管理系统软件,是一种开放源码软件,它的利用程度非常自由。由于软件本身的特点非常明显,快速、成本低且体积小,所以在中小型企业中非常流行。它的功能应用广泛,通过测试证明它非常准确、稳定,完全可以适用于多CPU102 2001.18计算机。MySQL软件是一种核心级多线程资源,可以在不同区域不同平台上进行操作,丰富了set、blob、timestamp等数据类型,可支持多数据库统一查询,为WINDOWS提供ODBC的接口。MySQL的特点不止如此,还有很多技术优点,所以操作者非常喜欢使用该程序软件[1]。

2 PHP的概念

PHP是一个英文缩写名称,即:Hypertext Preprocessor,英文超级本预处理语言的缩写形式,它和ASP都是一种脚本语言,在服务器端嵌入HTML文档,和C语言相似,同样受到广大编程人员的喜爱。PHP的语言形式与多种语言混合,其加杂了C语言、Java、Perl和PHP自带语法,由于PHP是在HTML文档中嵌入程序然后进行执行,所以其效率程度相比CGI更加快速。

PHP功能十分强大并且是免费的开源代码,它本身技术含量低、实用性广、运行快并且还可以跨多种系统中运行,例如:UNIX、WINDOWS、Mac IOS系统[2]。

3 多个数据库的分布式事务处理模式

MySQL中有两种对事务处理的方法,第一种是利用关键字来改变MySQL的自动提交模式,这种方法是由set autocommit=0进行对MySQL的自动提交模式改变,然后将SQL的事务处理完成后提交确认并结束任务。第二种是利用关键字来开始一个事务,确认后再结束事务,也就是是由Begin开始一个事务,直接提交确认完成结束任务。

例:一台ATM自动存取款机,小王想用自己在中国银行的账户转账到交通银行的账户中,这种操作是是利用数据库与数据库中相连接的多个数据库分布式事务处理。数据库中包括账户卡号、余额信息、交易日期、交易类型等信息,是由账户表和日志表进行分别存储。

这种常见分布式事务处理方法如不发生意外,能够一直保持各数据库间的统一性,实现分布式事務处理。可一旦出现意外,如当用户信息传入到数据库服务器中,数据服务器突然死机,服务器还没进行提交,数据库与数据库间将失去联系,无法保证数据的统一性和准确性。或当所有事务处理完成后但数据服务器将操作成功返回给客户时,网络连接突然中断,这同样不能使数据统一,这种情况虽然是服务器操作完成,但是客户认为事务操作失败,但若要检测出哪项事务使任务没有完成,这个过程比较复杂。因此,需要引入两阶段提交协议进行操作,通过PHP和MySQL的分布式事务处理[3]。

4 PHP和MySQL的分布式事务处理的优势

在PHP和MySQL接口连接执行分布式事务时,引入XA概念,PHP和MySQL执行此任务,是将每个服务器上涉及的事务全部提交并返回。根据分段提交方法,在整体事务被执行后。第一阶段,分支事务准备提交时,管理分支的服务器将自动记录分支事务操作,第二阶段事务处理器在准备提交或返回第一阶段的结果时,所有分支同时进行操作,若其中一项分支操作失败,则所有分支操作都被返回。

上文中案例显示,在转账过程中经历多个程序,任何程序环节出现错误则整个交易过程就会失败,在操作过程中,系统将会对操作做出异常情况检测,不管操作成功与否,都需要在第一阶段完成且第二阶段准备就绪后才执行第二阶段,否则数据无法提交[4]。

在实际操作中不可预见任何错误产生将无法挽回,损失严重。所以在处理事务过程中,程序内部需要通知事务提交和返回等事务,如果数据库发生异常,应用程序会检测出数据库的运作进程,并立即使用特殊的编程逻辑弥补此类错误。

上文说到,引入XA概念,PHP和MySQL执行此任务,是将每个服务器上涉及的事务全部提交并返回。引入XA概念的优势是将PHP和MySQL的应用程序简化,事务处理的完整性通过数据库和事务管理器对XA的接口来控制,应用程序无需关心事务的完整性,能更好的对数据库进行处理。分布式事务处理复杂多样,利用与XA的接口处理,全局事务将由事务管理器负责,应用程序只负责提交或返回的操作,这样能够很好的控制多个异地数据库的完整事务处理。

引入XA概念的PHP和MySQL分布式事务处理代码如下:

//初始化账户A和B的数据库连接

$conn24=new MySQLi(“172.16.0.248”,“root”,“”,“test”);

$conn18=new MySQLi(“172.16.0.243”,“root”,“password”,“test”);

//随机生成数字表示存取钱

$account=rand(1,1000);

//生成唯一XA的ID编码

$xid=date(“Ymd”).time();

//lpc开始

$conn24 - >query(“XA START $xid”);

$conn18->query(“XA START $xid”);

5 结束语

综上所述,计算机发展的后备力量是数据库的完整性,数据库建立需要PHP和MySQL,在此基础上增添了分布式应用的操作方法,从而实现了分布式事务处理系统。利用PHP和MySQL建立的完整数据库进行数据的提交与返回操作,避免了应用程序复杂导致的出现异常情况,分布式事务处理一定程度的优化了系统的运行效率,再引入XA的概念,全局事务将由事务管理器负责,应用程序只负责提交或返回的操作,完全不必考虑其它事务处理。

参考文献:

[1]朱国民,贾民平.基于MySQL和VC++的远程状态监测与故障诊断数据库的研发[J].机械制造与自动化,2006(05):127-129-132.

[2]夏玉,宋斌恒.Web Service下的分布式事务处理研究与实现——基于Tomcat、Axis和JOTM[J].计算机应用与软件,2007(05):84-86.

[3]宣振国.基于Mysql的数据库集群设计与实现[D].北京邮电大学,2013.

[4]查小科.分布式并行数据库系统DPSQL中分布式查询和分布式事务的设计与实现[D].电子科技大学,2003.

作者简介:周洁(1979.05-),男,浙江余姚人,教师,讲师,研究方向:PHP语言相关。

分布式数据处理 篇7

目前, 中航工业试飞中心开发的基于C/S, B/S架构体系的飞行试验数据网络处理系统 (FTDPS) 已经解决了海量试飞数据的分布式存储及计算问题[1], 并在重点型号任务的试飞过程中发挥着重要作用。该系统可以处理PCM数据和FCS数据[2], 1553B数据仍然采用单机版处理。随着飞行试验中参试飞机飞行时间、测试参数的不断增加, 总线数据量剧增, 同时试飞工程师的参数处理需求更加多样, 采用现行1553B数据处理方法给每位试飞工程师拷贝数据、处理数据、发送结果等过程耗时达到数小时, 已经严重影响数据处理效率和型号试飞进度。针对这一问题, 本文开发了基于分布式网络的1553B数据处理软件, 使得课题人员在FTDPS的平台上可以根据任务所需个性化定制处理参数、处理时间段及飞行架次等课目。工程实践表明, 本软件极大地提高飞行试验数据的处理效率, 满足了多用户并行处理需求, 保证了型号试飞任务进度。

1 ORACLE数据库设计

单机版的1553B数据处理系统由ICD信息数据库[3]和处理软件2部分组成。将1553B数据处理系统以分布式中间件的形式嵌入到FTDPS系统中, 首要的工作就是在FTDPS的数据库中设计并增加新的ICD信息的ORA- CLE数据库, 完成1553B数据处理系统数据库的网络化升级, 文献[4]已经将ORACLE数据库设计完成, 数据库总体设计如图1所示, 为本文实现与FTDPS的输入输出接口工作, 开发1553B数据处理中间件做好了准备工作。

2 1553B数据处理中间件设计

2.1软件接口设计

开发FTDPS的数据处理中间件, 本软件首先应保证总线参数名称的一致性, 其次要满足系统标准的输入输出接口要求[5]。

2.1.1参数名一致性

参数名称必须能够写入FTDPS数据库的TESTIN-SIDEPARAINFO表中, 测试系统名称为Mini700, 测试数据属性为1553B。参数名称是数据库表的主键, 要求具有惟一性的特点;为了方便用户在浏览器端选择要处理的参数, 参数命名也要符合总线参数特点, 易于用户识别。因此在ICD文件中, 选择总线信号名的规范名称作为数据库中的参数名, 例如A/M1IR/00-00-00, 可以满足参数名称惟一性和易于专业人员识别的需求, 如图2所示。

2.1.2软件接口统一

作为FTDPS的中间件, 标准接口有2个要求:

(1) 软件必须为可执行文件.exe, 带有一个命令行参数, 命令行参数为一个接口文件的名称;

(2) 命令行参数所指的接口文件必须是文本文件格式。所以软件接口统一的工作实质是把原处理程序改写为CONSOLE APPLICATION控制台应用程序, 完成读取图3所示的接口文件, 然后按照FTDPS的输出格式输出。本文以Delphi7.0为软件开发工具[6], 控制台程序关键代码如下:

2.2系统调用软件流程

1553B数据处理软件以分布式中间件的形式嵌入到FTDPS系统中, 按照已约定好的内部接口和整个数据处理系统之间协调通信, 有效快速地进行数据处理, 并准确地将结果信息返回给数据处理系统。客户端计算机需要安装分布式计算Active控件, 主要完成的功能为向系统发出计算请求、与1553B数据处理中间件之间进行信息通信、监控计算过程的状态、接收系统返回的数据。FTDPS系统调用1553B数据处理中间件流程如下:

(1) 客户端计算机 (B端) 首先向调度服务器发出数据处理申请, 同时生成B端接口文件, 调度服务器指定某台分布式计算服务器进行计算;

(2) 计算服务器调用1553B数据处理中间件, 访问存储在磁盘阵列上的原始总线数据文件进行解析计算, 同时将状态信息输出到控制台, 客户端Active X控件通过接口协议捕获并以界面的形式显示给用户。并输出标准格式的文件;

(3) 计算结束后, 结果文件通过Socket方式回传到用户客户端的Active X控件安装目录下。

图4展示了1553B数据处理中间件在FTDPS中的调用流程。图5是客户端Active X控件显示的软件运行状态示意图。其中*.eng文件为LST工程量文件;*.cod为文本文件, 用户可以直接打开2种文件类型进行分析。*.inf文件是FTDPS的接口文件, *.sta文件为本次计算过程的状态文件。

2.3软件设计

根据FTDPS系统调用1553B数据处理中间件的流程, 设计软件的算法如下:

(1) 获取接口文件名称后, 解析接口文件协议, 获取软件要处理的参数、时间段信息, 以及结果文件存放位置等信息;

(2) 访问ORACLE数据库中的ICD数据库, 把所有参数相关的信息读取到结构体数组中;

(3) 读取总线数据文件的时间信息;

(4) 读取处理时间段内总线数据文件中的消息块信息, 与数据库中读取的关键字逐一进行判断, 若相等则表示找到数据中此参数的信息。然后根据MIL-STD-1553B (GJB289A) 数据总线标准[7]中的总线消息收发标准进行计算、解析;同时将数据的时间等计算状态信息输出至控制台;

(5) 根据接口文件协议, 将结果文件传送到服务器指定的存放位置。

算法流程图如图6所示。

3结论

飞行试验数据网络处理系统 (FTDPS) 在型号试飞中发挥着重要作用, 1553B数据处理中间件又是该系统中极为关键的子软件。1553B数据处理软件采用基于Web的分布式中间件技术, 将数据处理软件做成标准化的分布式中间件, 通过标准的接口协议成功地嵌入到FTDPS系统中。本文开发的软件作为FTDPS的1553B数据处理软件, 已经用于某型号4架飞机的飞行试验总线数据处理, 运行情况良好, 数据处理效率满足了海量试飞数据处理的需求, 保障了试飞数据及时高效的处理。

摘要:为了解决当前1553B数据处理单机软件制约海量数据情况下多课题并行处理效率的现状, 在此采用基于Web的分布式中间件技术, 将1553B数据处理软件开发成基于分布式网络的标准数据处理中间件。为保持参数名的惟一性, 以ICD文件中的消息规范名为数据库中的参数名称, 并且编写了该软件与飞行试验数据网络处理系统 (FTDPS) 的标准数据接口文件, 根据分布式中间件的调用流程设计了相应的算法, 最终实现100%1553B数据的网络化并行处理, 极大地提高了总线数据处理效率。

关键词:1553B数据,接口文件,分布式网络,数据处理软件

参考文献

[1]王建军, 党怀义.基于Web的分布式试飞数据处理系统结构设计[J].计算机测量与控制, 2010, 18 (6) :1452-1454.

[2]张阿莉, 许应康, 郭永林.飞行控制总线数据网络化处理软件设计[J].现代电子技术, 2013, 36 (10) :37-39, 44.

[3]夏庆梅, 徐亚军, 熊华刚.航空电子接口控制文件的数据库管理[J].航空计算技术, 2001, 31 (3) :39-40.

[4]刘威, 周嫦娥.1553B网络数据处理系统数据库优化设计[C]//航空试验测试技术交流会议论文集.北京:《测控技术》杂志社, 2011:97-99.

[5]党怀义.ARJ21飞机试飞数据处理系统软件详细设计说明[M].西安:飞行试验研究院, 2006.

[6]周果宏, 罗述谦, 罗起.Delphi程序设计题解、编程技巧与疑难解答[M].2版.北京:清华大学出版社, 2007.

[7]国防科学技术工业委员会.数字式时分制指令/响应型多路传输数据总线[M].北京:国防科学技术工业委员会, 1998.

分布式数据处理 篇8

1.1 项目背景

高分遥感在电子政务地理空间基础信息库建设与服务中的应用示范项目, 是高分重要的应用示范项目, 依托“国家自然资源和地理空间基础信息库”一期工作, 重点解决高分辨率遥感卫星数据与国家自然资源和地理空间基础信息库的融合, 推进高分数据在电子政务地理空间基础信息库的综合应用示范, 形成高分数据及其电子政务应用产品通过共享平台进行分发和共享的机制和格局, 为国家宏观综合决策服务, 包括资源环境综合监测评价、灾后重建规划实施效果监测、区域发展战略研究和区域规划、资源环境领域规划和重大基本建设项目跟踪及效益监测以及海洋资源开发和经济发展的监测工作等, 以及为政府综合部门、业务服务和电子政务业务部门及社会公众服务。

1.2 要求

为满足海量遥感数据的需要, 建设了高分遥感数据集群式生产系统, 该系统具有高效、自动、智能的技术特性, 遥感影像处理的基础支撑平台, 提供统一的数据模型、业务模型接口, 能够支撑起大规模遥感影像的集群式并行自动化处理。

2 遥感影像处理结构层次

遥感影像操作可以划分为三个不同的层次或者类别, 下面就对其进行一一分析。首先为像素级操作, 这是通过一副像素影像产生另外的像素影像, 包括邻域、括点、几何操作等, 很多数据都是有规则、几何、局部。而这种几何操作在进行遥感影像处理时表现为几何校正, 因为装载在飞机、卫星的成像传感器受到飞机姿态、卫星、时间、运动、气候等不同因素的影响, 其摄取的图像可能出现几何畸变的现象, 因此, 要能够完成旋转、重新定位、任意弯曲等操作;其次, 其具有特征性操作的特征, 这也是相关影像产生的特征, 包括区域和线, 常规性的特征包括纹理、形状、三维特征、梯度特征, 一般选择一致的测度, 包括方差、均值来进行处理和描述, 其显示特征区域进行的可行性, 而且, 还具有非局部、象征意义的特性, 在局部区域并行的同时, 还要能够对整体加以处理;再者具有目标级操作的特征, 这是由一系列特征诱发的目标, 并且其信息具有复杂性、象征意义, 一般都是通过相关知识来处理, 从而对影像进行理解、描述、解释。

3 通信和同步

在并行计算期间, 因为不同进程之间需要传输以及调度数据, 因此, 其具有相应的通信开销, 并且这种开销表现为以下不同的方面, 首先为传输等进程之间的数据, 主进程从进程调度、数据传输、任务分配入手。在处理遥感影像时, 需要能够划分影像, 并且将其映射给进程加以处理和计算, 其主要依据就是被划分部门的数据通信量, 三种图像数据划分方式, 如图所示, 其中图1表示水平条带、图2为竖直条带、图3为矩形块, 不同划分的条带边界表现为所要进行的通信数据。在处理不同影像时, 要能够选择不同的划分方式, 像素级的处理并行化分支较小, 进行数据划分时较为简单, 可以结合实际状况来选任何划分方法, 特征处理如线条所示, 按照竖直条带和水平条带来划分, 在目标级、特征级处理期间, 需要结合相应的问题、并行计算支撑环境来选择具体的划分方式。从一定角度来分析, 要想能够达到并行化的要求, 从而让被划分的数据通信量达到最小的要求。

在并行系统执行给定算法期间, 可能会出现个别进程计算需要在其他进程完成之后才能开展, 这时候同步是需要的, 所谓的同步就是在这种状况下顺利使用通信协调技术不受到影响。同步也存在以下两种不同的开销, 包括同步需要所有处理机能够进行相应的检验, 但是, 需要花费相应的时间;其次个别处理器可能为闲置, 等待准许继续续需要计算相应消息。

4 结语

高分遥感在电子政务地理空间基础信息库建设与服务中的应用示范项目, 是高分重要的应用示范项目, 依托“国家自然资源和地理空间基础信息库”一期工作, 重点解决高分辨率遥感卫星数据与国家自然资源和地理空间基础信息库的融合。通过实验不难发现, PC机群上所具有的分布式并行算法优势较为明显, 但是, 其通信开销依然是算法中需要解决的主要问题, 在集群逐渐扩展的影响下, 通信开销开始增长, 这就让并行化程度遭到制约, 选择直接少通信量、通信次的方法则能够降低实际的通信开销, 从而为实现遥感卫星数据和国家自然资源信息库融合奠定坚实的基础。

参考文献

[1]杨海平, 沈占锋, 骆剑承, 吴炜.海量遥感数据的高性能地学计算应用与发展分析[J].地球信息科学学报, 2013 (01) :128-136.

[2]王竹晓, 胡宏, 陈立民, 史忠植.动态描述逻辑推理的并行计算技术[J].计算机研究与发展, 2011 (12) :2317-2325.

[3]马伟锋, 李伟.遥感影像数据并行计算中数据分配策略研究[J].浙江工业大学学报, 2016 (03) :270-274.

分布式数据处理 篇9

随着地理信息系统的不断发展, 空间实体几何数据和属性数据越来越多。特别是现代测绘技术和计算机技术的广泛应用, 使得人们可以对地球实施近乎实时的监测, 这个过程更是产生了海量的数据。但由于应用环境、应用部门不同, 空间数据采集各自为阵, 空间数据具有异地性、异构性特点, 形成数据孤岛, 使空间数据的共享带来极大困难, 严重影响了空间数据的进一步应用。

本文针对空间数据异地分散性的特点, 采用元数据的方式对空间数据进行描述, 研究并设计了一种分布式空间数据共享模型, 并在某省环境科学研究院进行了应用。

1 分布式空间数据的共享模式研究

数据共享有以下三种形态:

复制赠与式:数据所有者将数据发送给需要数据的使用者, 使用者自行保管和维护。

集中共有式:所有可以共享的数据集中保存在公共数据库中, 使用者根据需要自行取用。

分散共享式:数据仍保存在数据所有者的服务器中, 授权给一定范围的用户在需要时提取使用。

针对某省环境科学研究院空间数据的应用具有分散和异构的特点, 数据分布于各业务部门各自的计算机上, 对应各自的应用和管理系统具有不同的结构。既有以数据库方式进行结构化管理的地理信息数据, 也有大量以非结构化文件方式管理的地理信息数据。地理信息数据类型多种多样, 包括图形文档资料、图形表格资料、图形数字照片、GIS数字地图、遥感影像、CAD设计图纸、以及各类图形数据库等。不同部门和不同业务常常采用不同的地理信息系统和数据库管理系统 (如ArcInfo、MapInfo、GeoMedia等, Oracle、SQLServer、DB2等) , 运行于不同的计算机操作系统 (Windows、Unix、Linux等) 。分散异构的数据资源和多样性应用特性, 决定了任何单一的集成或应用系统都难以满足信息共享和集成要求。“分散共享式”可以保留原始数据结构, 在数据所有者的控制和授权下, 进行灵活的数据共享应用。这种方式可以保障数据所有者的权益, 使数据所有者可以放心地将数据提交共享;同时数据所有者有可以负担对数据维护和更新的责任。从资源应用的角度来说, 各数据服务器相当于一个计算机数据网格, 通过计算机网络相连, 形成可以无限扩展的数据资源平台。

2 分布式空间数据共享体系结构

图1显示了在一个多部门机构中采用分布式来进行数据共享的典型框架。每个部门有一台数据服务器来存储本部门的业务数据, 信息中心有一台元数据服务器存储关于机构中所有共享数据的元数据。数据仍然由各个主管部门维护和更新。内部用户能通过局域网访问, 同时外部用户能通过因特网访问。不同部门或不同业务的数据可以由各自的专用服务器存储管理, 通过公共的元数据服务器查询使用, 完美地实现办公数据的交换和信息共享。通过一个集中的元数据服务器, 可以快速地从整个元数据库中查询可用的数据, 数据服务器不必为数据检索服务, 仅需提供数据访问的服务。

针对不同的数据类型, 建立不同的元数据标准数据库, 将相关数据信息存储于分布式数据服务器上, 实现分散异构的数据资源共享管理和流通, 在数据共享平台上搭载现有业务应用和开发新的业务应用系统。

系统的概念结构分为三层:

(1) 数据层

由分布式数据服务器存储管理的各种类型的数据。包括以SDE形式进行存储的空间信息数据库、非空间信息的结构化数据库、非结构化的以文件形式进行存储的数据信息 (包括空间数据和其他业务过程中所产生的各种类型的办公文档、电子报表、数字照片、多媒体文件、GIS数值地图、遥感影像、设计图纸等) 。特别地, 对于空间信息数据, 可以采用ArcSDE进行存储和管理。

(2) 共享管理层

通过对集中元数据和分散数据资源一体化管理、对所有分布式服务器上的数据提供一站式查询检索服务, 在确认用户对特定数据使用授权的条件下, 支持对数据进行远程存取。对GIS地图和影像数据可进行在线格式和投影转换, 用户可以按需要的格式远程取得空间数据。图2为空间数据共享管理系统结构示意图。

(3) 应用层

环境科学的各类应用系统, 在数据提交者对数据已作出授权的情况下, 另一部门数据可共享使用整个系统数据层的全部或部分数据资源。用户既可使用客户端软件 (或者基于IE浏览器) 远程查询并下载所需数据到本地机后, 再通过专业系统进行显示和处理分析;也可以将各应用系统通过应用程序接口, 与共享管理层进行集成, 直接远程共享使用数据层的分布式数据资源。

3 元数据的设计与应用

3.1 元数据的概念与作用

元数据即“说明数据的数据”, 是关于数据和信息资源的描述性信息。它不仅具有按一定标准、格式组织数据, 便于管理、查询、检索的功能, 而且保存了数据的获取时间、更新日期、质量、格式等等信息, 使人们能有效地评价、比较和操作数据, 为数据共享、异构数据的远程访问提供了基础。它屏蔽了数据存储与管理的细节, 数据的使用者只需了解元数据库中的信息就可以完全掌握数据库中的数据情况。随着Internet和Web的迅速发展, 元数据技术逐渐成为异构信息共享与互操作的核心与基础, 成为分布式信息计算的核心技术之一[2]。

信息元数据是信息数据的相关数据的描述性信息。用于描述数据集的内容、质量、表示方式、空间参照系、管理方式以及数据集的其它特征, 是实现空间数据集共享的核心内容之一。

空间元数据的主要作用有[4]:

(1) 确定一套空间数据的存在性及其位置。

(2) 确定一套空间数据的质量、对某种应用的适应性。

(3) 确定获取一套空间数据的手段。

(4) 确定成功地转换一套空间数据的方法和途径。

(5) 确定一套空间数据的存储与表达方法。

(6) 确定一套空间数据的使用方法等。

3.2 元数据的标准

信息元数据必须标准化, 才能真正发挥其支持数据检索、共享与互操作的功能。目前世界上己有一些元数据标准, 其中最主要的有美国联邦数据委员会 (FGDC) 的数字地理空间元数据内容标准 (CSDGM) , 欧洲标准化组织 (CEN/TC287) 的元数据标准和国际标准化组织 (ISO/TC211) 的元数据标准。

3.3 元数据的设计

信息元数据的设计包含两方面的内容:一是纵向描述数据的组织结构;二是横向描述数据的内容。设计的目标是简洁、准确、完备地描述地理信息数据库中的数据, 提供高效的管理和查询机制, 根据要求设计以下元数据库。

信息数据的内容、数据中所包含的信息决定着数据的描述方式, 信息数据按格式与显示表现形式可分为文档数据、遥感影像、矢量地图、栅格地图。它们所包含的信息是不同的。所以, 可将元数据分成影像元数据。矢量信息元数据、栅格信息元数据不同元数据的格式是不同的, 应分别设计。

参考国际上己有的元数据标准, 并结合我国信息数据的特点和己制定的格式标准, 确定元数据的描述内容应包括[3]:

(1) 标识信息 (类型标识、内容摘要) 。

(2) 精度信息 (精度等级、比例尺、分辨率等) 。

(3) 空间参照系信息 (坐标系类型) 。

(4) 范围信息 (大地坐标范围、经纬度范围)

(5) 数据存储信息 (数据量、存储路径) 。

(6) 其它信息六类。

根据某省环境科学研究院的具体要求, 和本文对研究院内部的数据调查的结果, 本文对元数据库的建设做了如下的分类:

(1) 研究报告元数据库。

(2) 政府公文元数据库。

(3) 档案元数据库。

(4) 法律法规元数据库。

(5) 一般文档元数据库。

(6) GIS数据元数据库。

(7) 遥感影像元数据库。

(8) 栅格影像元数据库。

(9) CAD数据元数据库。

文档数据 ( (1) - (5) ) 的元数据项 (条目) 一般应包括: 文档代号, 文挡名称, 主题词 (关键词) , 文档类别, 项目名称, 作者姓名, 作者部门或单位, 联络方法, 保密级别, 发布时间, 最后修改时间, 版本号, 内容摘要, 注释或注意事项等。

GIS元数据应为: 地图代号, 地图名称, 主题词 (关键词) , 地图类别, 项目名称, 制作部门或单位, 联络方法, 数字化员姓名, 数字化部门或单位, 保密级别, 制作时间, 最后修改时间, 数字化时间, 版本号, 内容摘要, 注释或注意事项等。还应参考FGDC元数据标准, 增加空间元数据内容, 例如: 位置, 范围, 投影坐标系, 比例尺, 精度等条目。

遥感元数据应为: 影像代号, 影像名称, 主题词 (关键词) , 影像类别, 遥感平台类别, 卫星名称, 传感器名称, 光谱类型, 通道号, 像元分辨率, 影像尺寸, 项目名称, 订购者姓名, 订购者部门或单位, 联络方法, 数据获取部门或单位, 联络方法, 保密级别, 数据获取时间, 内容摘要, 注释或注意事项等。也应包含空间元数据内容, 如: 位置, 范围, 投影坐标系等条目。

3.4 元数据的组织

上文所述是任一站点上地理信息元数据的组织与设计。地理信息是分散分布在各地的, 它们的元数据库相应地分散分布在各个站点上。必须把这些分散分布的元数据库组起来, 才能提供一个完整的、全局的查询[1]。信息元数据库就是信息元数据的总和。其元数据项是按上节的元数据设计方案设计的信息元数据。区域元数据库是该区域范围内所有元数据库的总结。其中的元数据项就是该区域范围内的某个元数据库的地理位置、网络地址、内容摘要。全局元数据库是一批区域级元数据库的总结。其元数据项是区域级元数据库的地理位置、网络地址、内容摘要信息。它是基于元数据的地理信息查询的最高级索引, 是地理信息查找的总入口点。

所以在这个项目中首先把数据进行调查, 建立相映的元数据库, 在把数据统一的组织起来, 进行统一的上载, 组建起信息快速查询检索网络系统。

4 结束语

针对空间数据的分散性特点, 通过元数据服务器对分散的空间数据进行集中描述, 通过共享管理层对分散数据资源一体化管理、对所有分布式服务器上的数据提供一站式查询检索服务, 本文提出的分布式空间数据共享模型解决了异地空间数据的共享问题, 在此基础上今后将对空间数据异构性进一步进行研究应用。

参考文献

[1]王卷乐.地学数据共享中的元数据标准结构分析与设计[J].地理与地理信息科学, 2005, 25 (1) :16-21.

[2]常原飞, 王伟.城市基础地理信息集成的元数据平台开发[J].遥感学报, 2003 (6) :1-3.

[3]温永宁.基于Web服务的分布式空间数据共享模型[J].计算机工程, 2005, 31 (6) :25-26.

分布式数据处理 篇10

1 服务总线与分布式并行计算简介

ESB企业服务总线 (全称为Enterprise Service Bus) 最早由Soni C软件公司在2002年提出[2], 它是传统中间件技术与X M L、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢, 是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构, 可以提供比传统中间件产品更为廉价的解决方案, 同时它还可以消除不同应用之间的技术差异, 让不同的应用服务器协调运作, 实现了不同服务之间的通信和整合。从功能上看, ESB提供了事件驱动和文档导向的处理模式, 以及分布式的运行管理机制, 它支持基于内容的路由和过滤, 具备了复杂数据的传输能力, 并可以提供一系列的标准接口。

企业服务总线 (ESB) 被认为是面向服务架构 (SOA) 的核心, 它管理大量的服务, 它最大的优势是使得服务提供者与服务请求者松散藕合。ESB同时也是服务间的连接框架, 其核心功能包括信息转换、消息机制、基于内容的路由和服务器四部分[3]。ESB采用基于XML规范的消息格式, 可支持多种标准, 如Web Services、JMS、JCA等标准, 可支持发布/订阅及请求/回复等同步/异步消息机制。

1.1 企业服务总线的功能

ESB经过多年的发展, 各种ESB产品为了更好的满足广大企业用户的需求, 以及各种ESB产品的开发人员对ESB的理解日益加深, 使得企业服务总线的功能越来越相像。在2009年, Forrester的最新调研报告[4]把ESB大概分为核心功能与扩展功能两个部分, 其中核心功能是所有ESB必须提供的, 而扩展功能是为了更加方便的构建SOA所需要的辅助功能, 其中表1描述ESB的功能点。

1.2 分布式功能

一个分布式系统是一组由网络联接的具有独立功能的计算机, 在一套特殊软件的管理下, 整个系统在用户面前呈现为一个透明的整体。分布式系统是一组位于网络计算机上的并发构件, 这些构件之间的通信以及任务协调都只能通过信件传递进行, 其目的是实现资源共享。

1.3 并行计算发展起因

并行计算技术现在是研究的重点问题之一。在科学技术的发展中, 许多领域需要进行大规模的数值计算。运用并行计算技术是提高计算效率的有效方法。目前, 并行计算技木的主要研究是以并行机为对象的并行算法研究, 另一种则是基于网络环境的并行计算研究。基于并行机的研究, 一次性的投资大, 计算能力有限。而网络环境的并行计算投资较小, 计算能力大, 特别连合我国国情。一定意义上讲, 其计算能力是无限的[5]。

并行计算的发展主要基于两方面的原因:一是单机性能不能满足大规模科学与工程问题的计算需求, 而用并行计算机实现高性能计算是解决挑战性计算问题的唯一途径;二是同时性和并行性是物质世界的一种普遍属性, 具有实际物理背景的计算问题在很多情况下都可划分为能够并行计算的多个子任务。并行计算机与网络机群并行计算机是指能在同一时间内执行多条指令或处理多个数据的计算机, 它是并行计算的物理载体。

1.4 并行计算基本体系结构以及计算模型

并行计算科学中主要研究的是空间上的并行问题。从程序和算法设计人员的角度来看, 并行计算又可分为数据并行和任务并行。一般来说, 因为数据并行主要是将一个大任务化解成相同的各个子任务, 比任务并行要容易处理。

空间上的并行导致了两类并行机的产生, 按照Flynn的说法分为:单指令流多数据流 (SIMD) 和多指令流多数据流 (MIMD) 。我们常用的串行机也叫做单指令流单数据流 (SISD) 。MIMD类的机器又可分为以下常见的五类:并行向量处理机 (PVP) 、对称多处理机 (SMP) 、大规模并行处理机 (MPP) 、工作站机群 (COW) 、分布式共享存储处理机 (DSM) 。

不像串行计算机那样, 全世界基本上都在使用冯·诺伊曼的计算模型;并行计算机没有一个统一的计算模型。不过, 人们已经提出了几种有价值的参考模型:PRAM模型, BSP模型, Log P模型, C^3模型等。求解示意图如图1所示。

2 算法设计

我们根据分布式并行处理和负载均衡的思想, 基于服务总线, 并结合浮动车数据的特点, 设计如下总体流程图, 如图2所示, 其中浮动车数据服务子系统[计算单元]处理流程参考文献[9]。

图2说明。

第一, 用户向浮动车数据处理订单子系统提交任务订单;第二, 浮动车数据处理订单子系统则通过服务总线把订单列表交由处理任务调度子系统;第三, 处理任务调度子系统则根据任务轻重缓急等优先级别, 对任务列表进行排序;第四, 根据现有硬件资源及负载情况, 把每个处理任务可按数据源、时间、车辆等多维度对待处理的浮动车数据进行分解成子任务;第五, 把这些子任务通过服务总线动态派发给浮动车数据处理服务子系统 (计算单元) , 即负载的数据划分 (Load-based Data Partitioning, LDP) ;第六, 对于某计算单元完成, 但整个任务并未处理完成的情况, 可进行下一轮调度重新分配, 即动态负载调度 (Dynamical Load Schedule, DLS) ;第七, 等浮动车数据处理任务完成后, 依次返回。

其中关键的一点, 为了实现分布式动态并行负载均衡, 将在处理任务调度子系统和浮动车数据处理服务子系统中引入了动态负载均衡机制, 对于每个处理任务调度如流程图3所示, 该流程实现了普通P C (计算单元) 的即插即用, 实现了计算资源的弹性扩展能力。

还有, 为了跟踪记录和监控任务处理情况, 设计任务信息结构表, 如表2所示。

以及, 以服务总线为中心, 使得整个系统能够顺利运转, 服务总线的主题与订阅设计如下:

(1) sb Topic_KTFCDPSTask Upload:任务上传主题。

sb Subscription_Task Scheduling Service:主控端订阅。

sb Subscription_Task Scheduling Client:监控客户端订阅。

(2) sb Topic_KTFCDPSDistribute Task:任务派发主题。

sb Subscription_:派发单元订阅。

sb Subscription_Task Scheduling Client:监控客户端订阅。

(3) sb Topic_KTFCDPSTask Accepted:任务接受主题。

sb Subscription_Task Scheduling Service:主控端订阅。

sb Subscription_Task Scheduling Client:监控客户端订阅。

(4) sb Topic_KTFCDPSTask Result:任务处理完毕主题。

sbS ubscription_TaskS chedulingS ervice:主控端订阅

sb Subscription_Task Scheduling Client:监控客户端订阅

(5) sb Topic_KTFCDPSResult Received:处理完毕反馈主题

sb Subscription_:派发单元订阅

sbS ubscription_TaskS chedulingC lient:监控客户端订阅

(6) sb Topic_KTFCDPSRegister:计算单元注册主题。

sb Subscription_Task Scheduling Service:主控端订阅。

sb Subscription_Task Scheduling Client:监控客户端订阅。

其中, Unit可为处理单元机器名称或MAC地址, 例如, Mac1;Mac2;…;Mac N等处理机器单元列表, 本文采用MAC地址。

为了保证数据的一致性和高效性, 采用数据库存储过程, 在异常时, 可以回退操作。注意, 临时cvs文件必须基于运行SQL Server的服务器指定一个有效路径, 因此采用ftp协议对cvs文件上传到数据库服务器, 然后再批量导入, 并且确认导入成功后, 才发送处理完成标识, 这点与单机版的数据导入方式有所不同。

上述处理过程通过监控管理子系统进行有效展示, 如图4所示。

3 实验分析

为了验证算法的可行性和有效性, 算法程序以北京市浮动车数据和路网数据作实例数据。算法程序的运行环境如下, 包括三台普通PC机。其中, 一台部署数据库服务器, 架设FTP服务, 部署服务总线日志数据库, 浮动车数据处理任务调度日志数据库, 路网数据库, 浮动车数据库和浮动车路径数据库 (也可以分开进行部署, 使得读写分离, 处理系统日志与数据分离) , 并且部署服务总线, 浮动车数据处理订单子系统, 处理任务调度子系统和监控管理子系统 (如资源允许, 至少对数据库与应用系统进行分离部署) ;还剩两台部署浮动车数据处理服务子系统:

操作系统:Win2008R2 (64位) 旗舰版;处理器:Intel酷睿i7-2600 4核3.4GHz;内存:4G*2, DDR3;数据库:MSSQL (64位) 2012开发版;硬盘:固态硬盘8 0 G和机械硬盘1T (7200转) ;开发工具:VC++2005;网卡:1G网卡;交换机100M;网线:1000M, 超五类线。

上述实验环境虽然采用了相同的硬件配置, 但不局限, 因此, 也可采用普通PC机混搭的环境。

其实, 上述各个子系统可以根据实际情况, 在资源允许情况下, 可以进行分离部署。另外, 为了避免硬件单点故障, 可采用集群和双机热备;并且, 为了避免存储单点故障, 以及方便存储扩展, 可采用磁盘阵列冗余;同时, 为了避免网络故障, 可通过双链路来降低风险。当然在环境要求不高的情况下, 也可以采用上述基本部署即可。

由于增加调度处理, 以及网络延迟、硬件故障等不确定性, 以及数据一致性的要求, 使得软件系统管理控制更加麻烦。为了准确统计时间, 以及主题、订阅时间的一致性, 建立时间同步服务器, 都以处理任务调度子系统所部署的服务器时间为基准。

实验采用北京市为例, 采用2012年6月1号的部分浮动车数据, 时间段从早晨7点到9点之间, 数据包含有24325辆车, 共计2449355条记录;匹配和路径分析采用北京市路网, 共计420048条道路, 其中路网预处理技术参考文献[6~8]。

浮动车数据库根据车辆编号、时间分别建立索引, 能够提供快速的数据读取。通过浮动车数据与地图路网单点匹配和路径推测后, 获取浮动车路线。例如, 编号为126车辆定位点轨迹通过纠偏后匹配到路网如图5所示, 通过本系统处理后, 路径如图6所示。从中可以看出, 车辆与地图的吻合度很好。

基于上述机器配置, 单机环境下, 配置单线程, 耗费时间为2 5 5 8秒, 总共产生3397743条道路记录;若按自动配置, 即启用7个线程 (通过超线程, 逻辑上有8核) 的均衡法[9], 则耗费时间为627秒, 而理论值为365秒。还是存在不少差距, 主要原因是线程调度及其同步, 以保证数据一致性, 以及其他软件也需占用CPU等资源。

通过开发基于服务总线的分布式并行处理算法, 对浮动车数据按时间段, 按车辆数, 按计算单元数, 采用平均分配算法, 使得分配给每个计算单元的车辆数等分。在上述部署环境中, 每个计算单元采用自动配置, 在一台计算单元完成计算任务后, 由任务调度子系统重新分配, 使得每个计算单元动态负载均衡, 完成该任务花费的时间为326秒, 花费时间几乎折半, 理论值为313秒 (以单机实际耗时为基准) , 具体如图7所示。存在差别的主要原因是处理任务调度通信花费一定的时间, 以及浮动车数据通过FTP传输也间接耗费了系统资源, 因此也是合理的。由此, 可以看出, 本系统达到预期效果。当然, 如果考虑到部署数据库, 以及服务总线和任务调度系统的这台服务器, 那么理论值应该为209秒。因此, 为了降低这种边际效应, 在实际部署时, 尽量增加计算单元的数量。

4 结语

本文提出了基于服务总线的浮动车数据分布式并行处理算法, 使各处理单元的时间达到基本一致, 并且能够充分利用普通闲置PC机, 并且能够动态灵活实现普通PC机的即插即用, 提高了机器的利用率, 大大提高了浮动车数据处理的效率。通过单点匹配和路径推测的结果对道路交通流参数 (旅行时间、平均速度等) 估计, 预测和数据挖掘等具有重要意义。此外, 由于篇幅所限, 推广到虚拟化弹性云计算系统中将在另文讨论。

参考文献

[1]王东柱, 董继明, 李亚檬, 等.浮动车数据中零速度点数据地图匹配方法[J].交通信息与安全, 2009, 27 (6) :38-42.

[2]Dave Chappell.Enterprise Service Bus[M].O’Reilly Publishing, 2004:1-224.

[3]谢继晖, 白晓颖, 陈斌, 等.企业服务总线研究综述[J].计算机科学, 2007, 34 (11) :13-18.

[4]李代平, 罗寿文.CG法分布式并行计算的实现[J].计算机工程, 2001 (4) :56-57.

[5]白欣, 左继章, 向建军.实时集群中一种基于任务分配表的动态负载平衡算法[J].计算机工程与应用, 2003 (1) :39-41.

[6]刘子立, 姚术林, 陈云.一种启发式快速路网网格化划分算法[J].现代计算机, 2010 (8) :25-27.

[7]王晶, 陈云, 王志军.基于二分法的路网平衡网格化算法[C]//西安:2010中国地理信息产业论坛暨第三届教育论坛就业洽谈会.2010.

[8]陈云.基于松弛迭代的快速路网平衡网格化算法[J].测绘与空间地理信息, 2013.

分布式数据处理 篇11

AIS;分布式算法;FIR;查找表;FPGA

[中图分类号]TN911.72[文献标识码]A[文章编号]1009-9646(2011)08-0086-02

引言:船舶自动识别系统(AIS)是由国际海事组织(IMO)、国际助航设备和航标协会(IALA)以及国际电信联盟(ITU-R)共同提出的技术标准,是一种新型的助航系统及设备。AIS在甚高频(VHF)频段上收发信息,用VHFCH87B(161.975MHz)、CH88B(162.025MHz)两个国际专用频道自动发射和接收通信协议规定的GMSK信号,AIS同时在这两个频率上接收信息。

AIS接收机在接收频道上将接收信号下变频到中频,然后通过AD进行采样,采样信号进行后端处理之前,需对接收信号进行滤波,以滤除信号噪声。AIS接收机可采用专用集成芯片(如CMX910和CMX589)在零中频实现,其缺点在于不利于功能扩展和改进。随着FPGA功能的增强、容量的增大和价格的降低,可用单个FPGA实现整个AIS收发信机。

本文首先介绍AIS中频数字接收机的结构,然后对基于FPGA分布式算法的AIS接收滤波器实现结构进行描述,并进行仿真验证。

一、AIS中频数字接收机结构

AIS中频数字接收机的结构如图1所示,AIS射频前端将接收信号下变频为中频GMSK信号,通过AD采样后,进入FPGA进行后端物理层上的处理,包括差分解调、低通滤波、位同步与采样判决,最后通过NRZI解码还原为二进制发送数据帧。

AIS输出的中频信号带宽为1MHz左右,经AD采样后在FPGA内部进行数字化滤波处理,以滤除信号带外噪声。因此,接收滤波器带宽设计为1MHz,采用FIR结构。

二、FIR滤波器的FPGA实现

按照传统的线性FIR滤波器的实现结构,本设计中的FIR低通滤波器的实现如图2(a)所示。本设计对该结构采用分布式算法,并对该算法进行改进,得到基于查找表的并行FIR滤波器实现方法,如图2(b)所示。图2(b)结构实现与图2(a)结构相同的FIR滤波器功能,由于采用并行结构,其运算速度更快,适合在FPGA实现。图中,查找表LUT的尺寸和数据位宽由输入数据和滤波器系数决定。本设计中,采用8位AD进行采样,输入数据为8位有符号数。

移位相加模块等。

基于matlab设计的滤波系数,在Xilinx的集成开发环境ISE下利用Verilog语言分模块实现图2(b)所示的分布式并行FIR滤波器。用Modelsim进行功能验证。仿真的输入激励信号是matlab算法验证时生成的经过量化的0.5MHZ和2MHZ正弦波相叠加的信号,输入5个周期的该信号进行仿真,滤波结果如下图所示:

为了直观表示,用模拟波形来显示滤波后恢复的信号。由图可见,恢复出的信号为完整的正弦波,说明设计正确实现了功能。

三、结语

接收滤波是AIS接收机的重要组成部分,本文结合基于FPGA的AIS数字接收机,基于分布式算法,借助matlab、ISE、modelsim等设计仿真工具对AIS中频滤波算法进行了设计和验证。利用该方法设计的FIR滤波器,很好的利用了FPGA器件结构的灵活性,可移植性好,在设计不同参数的滤波器时,只需改变查找表的内容,即可设计出新的滤波器,并且将分布式算法和FPGA结合可以提高滤波运算速度,是一种可靠的设计方法。

[1]王旭东,周安栋,周冬成.并行分布式运算FIR滤波器的FPGA实现[J].舰船电子工程,2005(2):64-66.

[2]毕占坤,吴伶锡.FIR数字滤波器分布式算法的原理及FPGA实现[J].集成电路应用,2004(7):61-62,66.

[3]晏金成.基于DA算法的FIR滤波器的FPGA实现[J].现代计算机,2010(3):191-193.

[4]赵金宪,吴三,王乃飞.基于FPGA并行分布式算法的FIR滤波器实现[J].黑龙江科技学院学报,2006(7):248-250.

分布式数据处理 篇12

关键词:分布式缓存技术,海量数据,分布式内存数据管理,验证性测试

0 引言

随着云计算的发展,越来越多的企业都会搭建自己的云平台,同时越来越多的应用程序都是以云平台为支撑,为用户提供云服务。随着互联网上应用系统的访问用户增加、某些电子商务网站特定时间的促销活动而引发的特大规模的数据等等,使得云服务在普及推广的同时,数据访问量、访问速度、访问安全的需求都在急剧增加,而云计算的分布式处理、分布式数据库和云存储、虚拟化技术则为进行海量数据的分析处理提供了技术支持和基本保证。同时用户对云服务的数据提交及服务响应的时限要求也日渐提升,因而针对海量数据的数据库高并发访问的现实解决处理则需要立足于有关分布式缓存技术的先导性研究和关联式内容整合基础之上的。本文即围绕这一课题内容展开如下设计论述。

1 分布式缓存技术

分布式缓存技术可以解决数据库服务器和应用服务器之间的瓶颈问题,提高对数据的访问速度。分布式缓存的思想是分而治之,将数据分别布设到多个缓冲服务器上,使用缓存阵列路由协议,如此即使得多台缓存服务器形同一台,对外统一数据的访问接口,从而产生一种高效率无接缝式的缓存。

分布式缓存具有高性能、动态扩展性、易用性、高可用性、分布式代码执行等特点。而且为了解决大并发下的性能问题,同时避免过高的响应延迟,分布式缓存抛弃原始的关系型数据库,采用key/value形式存储数据,同时配以高速内存作为存储介质,这样可以保证系统的高性能性、动态可扩展性。不仅如此,分布式缓存又采用NRW多副本机制,避免缓存的单点故障问题,从而在提高数据访问速度的基础上,进一步保证数据的可靠性、最终数据一致性。分布式缓存系统还应实现数据冗余机制,藉此最终保证系统的安全性。

分布式key/value内存数据库大多通过在客户端充分发挥分布式逻辑功能来有效实现多种数据类型的分布式缓存,使用内存数据库可以显著提高数据访问速度及系统性能。常见的分布式key/value数据库内存缓存系统有Oracle Coherence、dbcached、IBM Web Sphere e Xtreme Scale、Redis、Memcached、Vmware Gemfire、Mem Cache[1]等。

1. 1 数据分区

数据分区中经常使用的就是一致性哈希算法。一致性哈希算法( Consistent Hashing) ,最早由麻省理工学院于1997 年提出,主要用于解决因特网中热点问题。时下,一致性哈希算法更多见于数据分布式技术中。分布式缓存中的一致性哈希算法的主要原理是: 计算出缓存服务器各个节点的哈希值,将其包含的所有缓存服务器节点抽象为一个环即哈希环,再将根据哈希函数计算出的缓存服务器哈希值分配到哈希环中,该环的数值域为0 ~ 232-1。然后对缓存的数据对象进行哈希计算,并分配到哈希环上。最后按顺时针方向将缓存数据对象映射到离其最近的缓存服务器节点上去。若增加或减少缓存服务器,则只需要局部改变该缓存服务器逆时针方向的缓存数据位置即可。

在缓存数据较少的情况下,数据对象可能无法均匀分布,而且缓存服务器集群里的服务器的性能和容量也可能未获统一,此时为了保证绝对的平衡,一致性哈希算法就相应引入了“虚拟节点”,一个物理的缓存服务器节点将根据自身性能对应了若干个“虚拟节点”,从而缓解物理服务节点少时数据倾斜等负载不均衡问题的发生,从而实现了数据的均匀分布[2,3]。

1. 2 分布式缓存的一致性

分布式缓存可以提高数据读取速度,降低数据读取延迟时间、减轻服务器负载压力,因而在整体上优化了系统可靠性; 虽然能够获得良好的读取性能,但在更新数据时却会存在重大的数据不一致的风险,由此而导致数据脏读等现象出现。为了保证客户端总能读到最新的数据,分布式缓存可以通过多副本机制( NRW) 和租约机制( Leases) 来支持实现分布式缓存数据的一致性; 而在达成此一目的过程中,分布式缓存系统却要因所采取的相应措施而支付一定的开销,这就可能降低系统的性能,所以即需要在系统的可靠性、高性能和数据一致性问题上取得综合权衡。综上可知,为解决数据一致性问题,就需要考虑数据读取/更新流程、数据同步、副本问题等。分布式系统中对于数据的存储将支持采用多副本机制,即采用多份数据副本存放在不同节点上,每个物理缓存服务器上存储自身的缓存数据以及其他节点的热备数据,读取或者更新数据时将需要对多个副本进行同时操作; 分布式缓存系统也提供了轮询操作,可以每隔一定时间轮询数据库,并在更新数据时进行数据同步,读取数据更新后的全新副本。

Quorum的NRW机制当中,N代表数据的所有副本数,R代表完成一次成功的读操作所需要读取的最小副本数,W代表完成一次写操作所需要写入的最小副本数。在NRW多副本机制中,只要满足R + W > N条件,就保证了数据不同副本中的一致性,因此R和W的设置是否合理则将影响系统的性能和数据的一致性,而Quorum机制却具备了更新数据时减少需要即刻完成的副本数,读取数据增加需要读取的副本数,即读写操作的平衡扩展功能,从而保证了系统性能的提高和数据的一致性[4]。

1. 3 分布式内存数据管理

Oracle Coherence是Oracle提供的一款适用于应用层的集群数据管理和分布式内存数据管理的现实理想解决方案。Coherence可以提供完善的读取性能、极低的延迟时间、高吞吐量、数据可靠性、100%的事务完整性、容错性、良好的动态可扩展性、持续的可用性、并行处理、支持锁和事务处理、自动代理服务和动态负载均衡和支持超级大容量的缓存等强大的功能。

对于由Coherence组成的缓存服务器集群,其集群的节点的地位不分主次,可以自动执行集群节点的检测和删除,节点之间采用P2P协议进行数据通信。Coherence能够实现集群管理,并提供各种缓存服务。数据存储在Coherence缓存当中,集群当中的每个节点都会备份全部数据,所以Coherence集群呈现有出众的可靠性,只要有一个节点能正常运行,就能保证系统不致瘫痪,但其缺点却是更新速度相对而言较差。

Coherence设有两个非常重要的配置文件,分别是: 缓存配置文件和运行配置文件。其中,缓存配置文件,用于配置缓存的类型及模式、缓存策略、服务的分配等信息。运行配置文件则用于缓存集群配置文件路径、日志配置文件路径、缓存数据配置文件路径,并进一步具体设定集群配置文件及集群的通信、服务机构组成等信息[5,6]。

2 分布式缓存模式设计

为了满足网站高并发访问,搭建一个由多台分布式缓存服务器组成的分布式缓存服务器集群,该集群结构采用无主架构,服务器节点地位不分主次,数据均匀分布在集群各服务器节点上,节点数越多,其数据处理能力也越强。分布式缓存服务器提供支持该缓存服务器通信协议的客户端,通过客户端可以与分布式缓存服务器进行通信以及相关操作。其现实通用的分布式缓存系统的部署设计则如图1 所示[5]。

由图1 可见,该分布式缓存部署设计的优势特点可做如下描述:

1) 将程序应用与缓存分开部署,缓存系统部署在缓存服务器集群上,可通过增加缓存服务器节点自动在线扩展集群规模,具有良好的可伸缩性。

2) 一般分布式缓存系统支撑多种语言客户端,在应用服务器上可以开发出丰富多样的应用程序客户端,并通过一致性哈希算法等路由算法将数据均匀分散到不同的缓存服务器节点上,而且自动在其它节点生成备份,或者选择不同的缓存服务器远程实现访问该缓存服务器上的数据。

3) 在缓存服务器集群中,若某缓存服务器节点故障则会自动启用其它节点的备份数据,保障服务器集群系统能正常运行。同样,可以根据需要动态增加或减少缓存服务器节点,提高资源利用率。

4) 在分布式缓存系统中,尽量只读缓存数据,因为缓存不适合大量写和更新操作。缓存系统在设计时尽量做到读写分离。

综合考虑分布式缓存的功能以及分布式内存数据的模型原理体系结构,通过zookeeper分布式服务协调机制获得了具体有效的整合,从而实现一个分布式缓存架构。分布式缓存整体架构图如图2 所示[7]。

3 分布式缓存数据处理系统的测试

分布式缓存技术已然广泛地应用在海量数据处理平台中,并且尤其着重支持高并发、高访问量、低延迟的读多更新少的数据处理系统。本文针对分布式缓存技术在海量数据处理平台中的应用测试则是以某团购网的查询功能作为实例背景而进行系统展开,并获取研究结果和结论的。

本次测试主要针对团购商品的模糊查询、规则引擎应用、订单查询等典型的使用分布式缓存的应用场景进行分布式缓存POC测试。测试的内容包括功能测试、性能测试和可靠性测试。

针对团购网实际使用场景,构造测试案例对Coherence进行功能、性能和可靠性测试。首先是测试环境的搭建,其中包括在机器的IP地址上建立服务器集群主控环境。本次测试采用一台Http服务器,两台分布式缓存服务器,而Http服务器端采用Java客户端进行测试,缓存服务器采用Oracle Coherence[8]。

1) 针对团购网的商品模糊查询为例进行POC测试,其测试的记录数为7 200 000,Cache实例数为40 * 2,每个实例Java heap size为2gb。查询的输入为: 并发数( 用户个数* 每个用户的读取次数) ,输出为: 平均每次读取的时间,实际查询的测试结果如表1 所示。其中CPU的最大使用率可达41%,而其平均使用率则为35%。

2) 针对分布式缓存系统环境进行可靠性测试,包括各缓存节点的数据恢复及数据完整性测试。首先进行测试的是针对无任何操作前提下,删除或者增加一个缓存实例,数据恢复所需要的时间,然后运行商品模糊查询测试时,数据恢复所需要的时间。测试结果如表2 所示。

可靠性的测试还包括缓存节点的完整性测试,可以通过并行删除多个缓存节点后,验证数据的完整性。通过POC测试可知: 该分布式缓存系统能满足应用要求以及符合系统性能要求,采用的分布式内存数据管理具备高可靠性和高扩展性,包含强大的容错特性和支持服务器自我修复的功能。

4 结束语

随着云计算的发展,通过物联网和互联网产生的数据呈几何级数增长,同时网上用户也在不断大幅度增加,随之而来的海量数据和用户高并发访问的问题对传统的缓存提出了挑战。针对这一状况,本文研究如何利用云计算下分布式缓存技术在海量数据处理平台中解决该问题,从而保证系统的高性能、高访问速度、低延迟和高可靠性。首先分析研究了分布式缓存的关键技术、缓存替换策略、分布式缓存的一致性和分布式内存数据管理。然后提出并论述了分布式缓存系统的部署和整体架构设计。最后将该分布式缓存系统的设计模式应用在某团购网上,并进行了POC测试,证明其可行性。

参考文献

[1]崔解宾.分布式内存缓存技术在数据处理平台中的研究与应用[D].北京:北京邮电大学,2015.

[2]黄菊.分布式缓存技术及其在车辆监控系统中的应用[D].北京:北京邮电大学,2015.

[3]张晓慧.试析云计算分布式缓存技术在物联网中的实施要点[J].计算机光盘软件与应用,2014(15):50-51.

[4]高洪,董振江.云计算分布式缓存技术及其在物联网中的应用[J].中兴通讯技术,2012,17(4):37-42.

[5]秦秀磊,张文博,魏峻,等.云计算环境下分布式缓存技术的现状与挑战[J].软件学报,2013,24(1):50-66.

[6]梁德锋.Oracle Coherence入门[Z].北京:百度文库,2010.

[7]李玉玲,张东旭,.虚拟现实环境下的分布式服务器架构策略研究[J/OL].计算机工程与应用,http://www.cnki.net/kcms/detail/11.2127.TP.20150313.1547.009.html.

上一篇:第三次经济普查下一篇:产生原因及解决对策