(计算机应用技术专业论文)电网监控系统中分布式内存数据库系统的研究.pdf_第1页
(计算机应用技术专业论文)电网监控系统中分布式内存数据库系统的研究.pdf_第2页
(计算机应用技术专业论文)电网监控系统中分布式内存数据库系统的研究.pdf_第3页
(计算机应用技术专业论文)电网监控系统中分布式内存数据库系统的研究.pdf_第4页
(计算机应用技术专业论文)电网监控系统中分布式内存数据库系统的研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 摘要 内存数据库系统( m a i nm e m o r yd a t a b a s es y s t e m ) 是实时系统和数据库系统的 有机结合。当前,内存数据库系统广泛应用于航空、军事、电信、电力、工业控制 等许多领域,而这些应用领域大部分都是分布式的,因此分布式内存数据库系统成 为新的研究热点。 论文以分布式内存数据库系统为研究对象,在c + + 环境下,结合面向电网监控 系统的分布式内存数据库系统的开发,得到以下几方面的研究成果: 1 设计了分布式内存数据库之间的消息通讯模块,采用主副本更新消息队列法 解决了分布式环境下维持多副本数据一致性的问题; 2 研究了分布式数据库系统的数据分布模型,给出了基于电网监控系统关键结 点分组的数据分布模型; 3 设计并实现了分布式内存数据库系统的用于过程控制的o l e ( o l e f o r p r o s e s sc o n t r o l ,简称o p c ) 接口; 4 采用松耦合的事件通知模式,设计了分布式环境下的主动机制,实现了电网 监控系统的主动告警功能。 关键词:内存数据库系统,分布式,电网监控系统,主动机制,o p c 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 a b s t r a c t m a i nm e m o r yd a t a b a s es y s t e m ( m m d b s ) i st h eh y b r i do fr e a l - t i m es y s t e ma n d d a t a b a s es y s t e m a t p r e s e n t ,m m d b s i sw i d e l yu s e di nm a n y a p p l i c a t i o nd o m a i n ss u c h a st h ea v i a t i o n ,m i l i t a r y , t e l e c o m m u n i c a t i o n ,e l e c t r i cp o w e ra n di n d u s t r yc o n t r o l ,e t c m a n y o ft h i sa p p l i c a t i o nd o m a i n sa l ei n h e r e n t l yd i s t r i b u t e d a sar e s u l t ,d i s t r i b u t e dm a i n m e m o r y d a t a b a s es y s t e m ( d m m d b s ) h a sb e c o m ean e wr e s e a r c hs p o t b a s e do nt h ea n a l y s i so fc u r r e n ts t u d ys t a t u so fd m m d b s ,t h i sd i s s e r t a t i o nf o c u s e s o nt h ed e s i g na n d i m p l e m e n t i o n o ft h ed m m d b sf o rs u p e r v i s o r ya n dc o n t r o ls y s t e mi n p o w e r s y s t e m s i t sc o n t e n t sa n ds t u d y r e s u l t sa r ec o m p o s e do ft h ef o l l o w i n gp a r t s : 1 d e s i g nt h em e s s a g em o d u l eb e t w e e nt h ed m m d b s ,s o l v et h ep r o m e mo f m a i n t a i n i n gt h ed a t ac o n s i s t e n c y i nd i s t r i b u t e de n v i r o n m e n tb yu p d a t i n gt h eh o s tc o p y t h r o u g hm e s s a g eq u e u e ; 2 g i v ead a t a d i s t r i b u t i n g m o d e lb a s e do n g r o u p i n g t h ek e yn o d e so ft h e s u p e r v i s o r ya n d c o n t r o ls y s t e m ; 3 d e s i g n a n di m p l e m e n to p c ( o l ef o rp l x ) c e s s c o n t r 0 1 ) i n t e r f a c e f o rt h e d m m d b s ; 4 d e s i g na c t i v em e c h a n i s m i nd i s t r i b u t e de n v i r o n m e n ta n d i m p l e m e n t a c t i v ea l e r t f u n c t i o ni ns u p e r v i s o r ya n dc o n t r o ls y s t e mi np o w e rs y s t e mb yu s i n ge v e n tn o t i c e p a t t e r nw h i c h i sl o o s e c o u p l i n g k e y w o r d s :m m d b s ,d i s t r i b u t e d ,s u p e r v i s o r y a n dc o n t r o ls y s t e m , a c t i v em e c h a n i s m ,o p c i i 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 1 1 研究动因 第一章引言 近年来,磁盘数据库( d r d b ) 技术获得了空前的发展并在商务及事务应用中得到 了巨大的成功。然而,d r d b 对于高实时性要求的应用的支持却显得软弱无力。主 要原因是,传统d r d b 中,由于事务所涉及的i o 操作、缓冲区管理、页违例等事 件的执行时间的弱实时性及不可预知性,使得事务的实时性和预测性较差。为了克 服d r d b 的这些弱点,人们对数据库技术提出了新的更高的要求,特别是实时应用 领域的高性能要求是传统数据库技术所无法满足的。随着半导体存储器价格的不断 下降和内存容量的不断扩大,内存数据库( m m d b ) 应运而生【l 】。内存数据库融合了 实时数据库和主动数据库的特征。内存数据库指数据库常驻内存( 不是磁盘) 及事务 ( 不是系统) 的数据存取只涉及内存。内存数据库是支持实时事务的一种最佳技术, 其本质特征是其“主拷贝”或“工作版本”常驻内存,活动事务只与实时内存数据 库的内存拷贝交互,在任何一个事务执行过程中没有内外存间的数据i o 。这为系 统较准确估算和安排事务的运行时间、实现事务的定时限制打下了基础,从而满足 外部事务应用对响应时间和事务吞吐率的需求。 总之,内存数据库强调实时应用和数据信息的主动存储。内存数据库的实时性 体现在其要求在一定的时刻和( 或) 一定的时同内收集外部服务对象的数据信息,按 彼此联系存取已获得的信息和处理数据后及时作出响应。内存数据库不同于一般实 时数据库的特点还在于其存储数据信息和系统控制信息,而非处理只在一定的时间 范围内有效的数据。电网监控系统是这种应用的典型实例,支持这种应用的数据管 理系统要求使用内存数据库系统。 在电网监控系统中有多种数据,主要包括电网的参数数据,远程终端装置( r t u ) 采集的实时数据和需要保留的历史数据等。实时数据记录各个控制点的实时信息, 对实时数据进行管理最好的方法是使用数据库系统。如果使用通用的关系数据库系 统管理实时数据,不仅效率低,数据格式和保存方式也不能完全满足关系型数据的 要求,更不能完成实时数据的处理要求,因此,在电网监控系统中应用内存数据库 系统是十分必要的。 在电网监控系统开发的早期,由于系统较小,对系统要求不高,数据信息量较 少,且计算机网络技术还很不发达,一般采用单机,或前置数据采集机与后台处理 机方式,数据信息的更改一般会引起程序的更改,非常的不方便。后来,随着自动 化管理系统日趋庞大和复杂、功能不断完善,加之计算机网络技术和分布式结构的 应用,电网监控系统己从传统的集中式系统逐步为新一代多机网络化开放分布式系 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 统所取代【2 】。这一转变使待处理的数据信息成为海量,且对数据信息的可靠性、一 致性和共享性提出了更高的要求,这是以往常规存取方式难以完成的,必须以分布 式内存数据库管理系统m m d b ) 作为管理实时数据的支持环境。分布式内存数据 库系统是电力系统和自动化系统的重要组成部分,也是衡量系统性能的重要指标之 一o a e 9 0 0 0 配调综合自动化管理系统( 以下简称a e 9 0 0 0 ) ,是南瑞集团城乡电网自 动化公司最新研制开发的电网监控系统。a e 9 0 0 0 集调度、配电自动化和综合管理 于一身。a e 9 0 0 0 系统采用面向对象技术,遵循国际标准,符合开放性系统的设计 要求,实现了从系统平台层到应用层的开放,提供了良好的可移植性、互操作性和 分布性,方便用户级功能的可持续拓展,使之能够适应电力系统自动化不断变化着 的业务的需要。 根据a e 9 0 0 0 系统的实际需求,为实现在分布式环境下测控系统各个部分的互 联、互通、互操作,要求实现一个分布式内存数据库系统( 以下简称a e d r t d b ) , 实时数据透明地分布到分布式内存数据库上的结点,各结点的内存数据库的一致性 由a e d r t d b 系统维护。本篇论文基于a e d r t d b 的合作开发,对分布式内存数据 库系统进行了一些研究尝试。 1 2 技术背景 1 2 1 内存数据库技术 内存数据库( m a i nm e m o r yd a t a b a s e , 什么是内存数据库有几种不同的说法: 观点一,整个数据库全部常驻内存, 足够大,以容纳数据库的所有数据。 简称m m d b ) 是一个较新的研究领域,对 存取数据时无须i o 操作。这就要求内存 观点二,数据库常驻磁盘,在事务执行前将所需数据集调人内存,提交时所有 对数据库的修改必须写回磁盘。 观点三,数据库常驻磁盘,在内存中开辟一个大缓冲区( 或c a c h e ) ,通过适当的 缓冲管理以减少内外存i o 操作。 目前,大多数内存数据库都是基于第一种观点的。然而在很多现实应用中,往 往难以保证内存总是能够容纳整个数据库。因此,内存数据库的含义必须包含内存 不足以容纳整个数据库的情形。主存储器是易失内存,它存放m m d b 的“工作版 本”,即事务的工作数据区;磁盘存储器用来存放未在内存的那部分数据库数据,同 时也用作数据库恢复的备份,称之为“外存版本”。而第二、三两种观点下的数据库 本质上无异于常规的磁盘数据库( d r d b ) ,只不过改变了数据调人内存的时机,增大 了缓冲区的容量,不能称为内存数据库。判断一个数据库是否为内存数据库的标准 应该是看其数据库的主要内容是否常驻内存,而不能取决于内存的大小和存取数据 2 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 所需的i o 次数及数据被调人内存的时机。直观地说,m m d b 就是指数据库的“工 作版本”,( 当然也可以是整个数据库) 常驻内存,任何一个事务在执行过程中没有内 外存间的数据i o 。显然,、它需要一定的内存容量,至少要能容纳一个事务所要求 的数据集,但并不一定需要容纳整个数据库。活动事务的执行从开始到提交,均不 与外存打交道。当事务提交时数据库的“外存版本”( 置于外存的数据库部分) 可以 不必立即反映出事务提交后的结果,并且当系统出现故障时应首先恢复在内存中的 数据库主拷贝。 。 需要指出的是,对于传统磁盘数据库,即使其缓冲区足够大,大到可以容纳所 有数据或其“工作版本”( 如前所述第二、三种观点) 也不能算是一个m m d b ,因为 它是针对磁盘特性、在假定数据库常驻磁盘的情况下设计的,纵使其系统性能较好, 也不具备所有m m d b 的特性和优点。例如,索引结构是针对磁盘存取的,数据的 存取要经过缓冲区管理,这势必影响存取效率。因此,内存数据库的设计应完全打 破传统磁盘数据库的设计宗旨,设计全新的适于内存特点的算法和数据结构。对于 内存数据库的物理数据组织、存取方法、查询处理及优化、并发控制和数据库恢复 都应研究新的方法和策略,以便更有效地利用内存空间提高系统性能。 但是,内存数据库没有得到广泛的应用,其原因与内存数据库中涉及到的其他 技术发展状况有关。其中最重要的就是高可用性系统技术。所谓高可用性系统c h i g h a v a i l a b i l i t ys y s t e m ,简称h a 系统) 是用通用的计算机,通过对关键的软件失效部件 进行冗余,结合对失效的有效探测和恢复,提供了一个可靠的计算环境。高可用性 系统的性能价格比优于传统的容错机,不仅对硬件错误、操作系统和数据库错误有 良好的容错能力,而且还能够检测应用软件的错误。常见的失效因素有以下几个方 面:提供服务的主机挂起、关机或不可用;连接用户和服务器的网络失效;用户试 图访问的服务器上的应用不能正确工作、挂起或离线:用户试图访问的工作站上的 应用不能正确工作、挂起或离线;服务器提供的数据服务已经离线。 由于内存数据库系统中总有一些数据暂存在内存中,没有高可用性的保证,出 现上述任何一种失效时,都将造成数据的不完整。 1 2 2 分布式数据库技术 数据库管理系统技术已广泛而深入地应用于各个领域的信息处理技术中,它与 迅速发展的网络技术结合,可实现对远程数据库的操作,发展成为分布式数据库技 术。这一技术开始于七十年代末期,为适应应用的需求及个应用部门数据信息的急 剧增长,要求改变原有集中存放的处理方式,使数据的存放和流通趋于合理,同时, 也可对已有数据库再利用提供可能。应用和技术的双重驱动促进了分布式数据库的 发展吲,但最初追求的完美的分布式数据库系统还未出现,这一技术仍处于迅速发 展和完善之中。 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 分布式数据库系统从广义上来说分为两种,一种是分布式数据库由一个逻辑数 据库组成,该逻辑数据库的数据存储在一个和多个网络结点的物理数据库中。实现 并支持这一单一逻辑数据库视图应用而开发的软件即分布式数据库管理系统;另一 种是联邦式数据库,它在逻辑上也是分布的,没有一个全局模式。本文所讨论的是 第一种逻辑上集中的分布式数据库系统。 从完整的概念上讲,分布式数据库系统的数据记录在物理上分散在各节点上, 而逻辑上届于同一个系统。分布式数据库系统强调节点的自治性而非系统的集中控 制,每个节点都是一个独立的数据库系统及相关资源。在这种系统中,大多数处理 任务只需访问本地数据库,否则就把处理请求发向系统的其它节点。分布式数据库 系统是一个逻辑的数据库,考虑到系统的性能和效率,它的若干副本的物理数据库 在物理位置上分布于含有多个数据库管理系统的网络节点中,以减少网络传输开销, 但同时又增加了副本更新操作开销。因此,对副本数据库存放策略的研究是分布式 数据库设计的重要任务之一。 所以,具有以下的特点可以算作一个分布式数据库系统: ( 1 ) 各网络节点互相知道对方的存在。 ( 2 ) 网络中所有节点共享一个全局模式,尽管某些关系只存于某些节点上。 ( 3 ) 每个网络节点既能执行局部事务,又能执行全局事务。 ( 4 ) 每个网络节点运行相同的数据库管理软件,否则管理全局事务就很困难。 建立分布式数据库系统的主要优点是使得一个节点上的用户可以访问存放在其 他节点上的数据。通过数据分布的方法共享数据,每个节点就可以对局部存储的数 据保持一定程度的控制。在集中式系统中,中心节点对数据库进行控制。在分布式 系统中,一个全局数据库负责整个系统管理,部分由每个节点的局部数据库承担。 均衡负载的需要。数据的分散采用使局部应用达到最大,这使得各处理机之间的相 互干扰降到最低。任务在各处理机之间分担,可以避免负荷瓶颈。 当现有机构中已存在若干数据库系统,而且实现全局应用的必要性增加时。就 可以由这些数据库自下而上构成分布式数据库系统。同等规模的分布式数据库系统 在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部 数据应用,因此就整个系统来讲,它的可靠性是比较高的。虽然,分布式数据库系 统的故障恢复比集中式数据库系统复杂,但分布式数据库系统中的某个节点出现了 故障,系统的绝大部分还能继续运行,这使系统的可用性大大增强。特别对于实时 应用的分布式数据库系统来讲,可用性是至关重要的。 也就是说,人们希望分布式数据库系统能够做到:较高的可靠性;响应时间 可以较快;某些任务分散均衡处理,多数处理由局部完成;偶然性的故障对全局影 响较小。这些也是研究分布式数据库系统努力追求的目标。 分布式数据库系统的关键技术主要有:系统结构( 包括网络与d b 的接口) ,数 4 电同监控系统中分布式内存数据库系统的研究河海大学硕士论文 据分割,分布透明,分布式查询优化,分布式并发控制,分布式事务管理,分布式 的字典管理,可靠性,安全性,保密性等【l 棚。 分布式数据库系统的主要问题有;系统设计实现复杂,网络开销大( 通信频度高, 通信量大) ,造成响应速度慢,故障恢复和多副本的数据修改一致性不易解决,可靠 性难以保证。尽管有许多研究成果,9 0 年代后也有产品进入市场,但由于系统的复 杂性,效果难以让人满意。一方面,难以建立大量结点;另一方面,可用性、。可靠 性不高。所以到目前为止,只能说一些数据库系统中渗入了分布式的思想。 1 2 3 主动数据库技术 主动数据库( a c t i v ed a t a b a s e ) 技术及触发器( t r i g e r ) 机制是实现数据库的实时监 控、意外情况处理、多系统协同工作等主动功能的途径【l ”。主动数据库自2 0 世纪 8 0 年代初被提出后,因为能较好地满足计算机集成制造、网络管理、办公自动化等 众多应用领域的特殊需要,受到了广泛关注,近年来成为数据库研究的热点之一。 在没有用户和应用程序参与的情况下,自动监视事件的发生并触发由规则确定的行 为,实现数据库的主动性。主动数据库系统就是相对提供被动服务的传统数据库, 有根据实时事件发生或环境变化,主动为用户提供及时的信息服务和数据处理能力 的数据库系统。 为用户提供主动数据服务已成为数据库应用系统的一个重要功能。主动数据库 系统要在特定事件发生时主动地执行由用户预先指定的动作或动作序列,进行用户 所需的各种处理。事件驱动的规则库是定义数据库主动功能的主要方法,并通过一 定的算法来决定如何执行已定义好的动作。事件驱动是比数据驱动更具广泛意义的 一类动作激发机制,具有自组织构成复杂事件的能力,使得事件驱动可以触发基于 复杂事件的功能,实现用户预先定义的复杂的数据采集、存储、处理、分析与决策 支持的要求。 1 2 40 p c 工业标准规范 o p c 的全称是o l ef o rp r o c e s sc o n t r o l 2 2 1 ,是用于过程控制的o l e 技术。它基 于c o m ( c o m p o n e n to b j e c tm o d e 卜姐件对象模式) 的协议,是一种接口技术。它是 在工业控制过程中基于微软公司的o l e c o m 通信标准逐渐发展起来的,这种标准 极大地提高了自动化系统、现场设备系统、商业办公系统之间的互操作性。o p c 为 诸如智能仪表的数据服务器定义了建立在o l e 组件技术上的标准的对象、方法和属 性。通过该服务器,标准的支持o l e 的客户机就可以与系统通信。o p c 是一种为 架起基于w i n d o w s 的应用程序与过程控制软件之间的桥梁而设计的新技术。它是一 种开放的标准,支持对电网前台设备现场数据的一致性访问。这种访问方法不因数 据的类型不同而不同。 o p c 与c o m 是密不可分的,o p c 是c o m 的继承和发展。c o m 是一种协议, 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 它建立了软件模块之间的相互连接,然后将其描述出来。当这种连接建立起来之后, 两个模块之间就通过称为“接口”的机制进行通信。这些接口既不需要静态的或动 态的连接入口点,也不需要硬件规定的地址,这和那些用于启动通信过程的c o m 函数有所不同。c o m 所要解决的问题是为w i n d o w s 程序模块之间提供相互通信的 标准方法。o p t 2 将c o m 接口技术引人过程控制。并在此基础上完全继承了c o m 技术的优点。 o p c 技术应用于由o l b 服务器连接的客户,服务器结构,可实现分散计算,用 户界面简单,并可在网络环境中使用o l e 服务器提供的服务,彻底摆脱地域、机型、 应用环境的束缚。o p c 技术建立在w i n3 2 系统平台上,服务器要求运行w i nn t 操作系统,而客户机则可以运行w i n9 x 操作系统。o l e 服务器通过o p c 接口提 供服务,使任何监控级客户可以标准方式访问外围设各,o p c 将硬件和软件分割开 来。由于采用了现场总线组态的o l e 技术,使客户端的组态和监控工作可同时迸行。 o p c 技术可使监控级应用程序以协调方式访闷现场级数据。o p c 技术使用的是开放 的结构,工业控制应用适应性广。 1 3 研究现状 目前国内外外一些公司和高等院校己针对各种应用进行了内存实时数据库的开 发与研制,以数据的原型长期在线存储一些特殊用户所有的生产实时数据,用以满 足快速高效的数据采集、存储以及对其进行必要的分析处理。目前市场上流行的实 时数据库产品,主要有o s i 公司的p i 系统( 适用于流程工业:国外) 、i n f 0 2 p l u s 2 1 ( 主 要在石油化工方面:国外) ,力控系统( 主要用于控制领域:国内) 、s u p e r l n f o 州( 主 要用于电力调度、石油、化工等领域;国内) 、华中科技大学刘云生教授主持开发 的实时内存数据库系统a r t s i t s j 等等。这些产品都有一定的局限性,以国内流行的 力控系统与s u p e r l n f o 系统为例,不难看出实时数据库在不同应用领域中的一些技 术差异。 力控系统主要应用于实时控制应用方面,采用客户,服务器的体系结构,在客户 端通过网络服务程序访问服务器端的过程数据,在服务器端提供所有必要的数据管 理和维护功能。 s u p e r l n f o 系统主要应用于实时数据的管理,主要功能是系统进程管理,数据储 存和数据服务。该系统中各个功能模块进程都是一个独立的应用程序,共同实现实 时数据库系统的管理、控制与操纵,其主要任务是事件处理和存储管理。 同时二者在数据结构上也有一定差异,力控定义的数据对象为点,系统预定义 的标准点类型有模拟i o 点、数字i o 点、累计点、控制点、运算点,而s u p e r i n f o 系 统的数据对象为表,系统预定义的表有:a i ( 模拟输入) 、d i ( 数字输入) 、t i ( 字 符输入) 。a o ( 模拟输出) 、d o ( 数字输出) 、t o ( 字符输出) 、c a l ( 计算表) 、t t ( 统 6 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 计表) 等。虽然名称和方法不尽不同,但二者都在数据进入实时数据库时要进行分 类存储。 在数据存储方面,力控系统的点参数相当于关系数据库中的字段( f i e l d ) ,一个点 参数对应一个客观世界中的可被测量或控制的对象。点存放在实时数据库的点名称 字典中。实时数据库根据点名称字典决定数据库的结构分配数据库的存储空间。 s u p e r l n f o 系统中的每一种表对应于一个物理文件,文件的文件头是该表的字段信 息。字段信息之后是表中的记录。 从以上的分析可以看出,这些实时数据库系统普遍存在的缺点是不能全面支持 分布式环境,不具有主动机制,不支持开放的o p c 工业标准。 1 4 本文工作及组织 1 4 1 本文的工作内容和成果 本文的工作内容是,以分布式内存数据库系统为研究对象,结合主动数据库技 术和o p c 模板库技术,并初步实现一个支持o p c 标准具有主动告警功能的分布式 内存数据库系统控件。所有的应用开发者可以使用该c o m 控件创建包含实时事务 对象的新解决方案,独立的对象和他们自定义的组件。 通过前期的需求调研,先提出系统需求和应用模式,利用国内外的一些研究成 果,在原有开发成功的单结点版实时内存数据库基础上设计出总体系统,并根据用 户的实际需求进行了测试与改进,最后实现的分布式内存数据库系统控件提供了 c o m 接口的二次开发支持和o p c 数据访问接口。 本文的主要工作成果和创新点是: ( 1 ) 设计了分布式内存数据库之间的消息通讯模块,采用主副本更新消息队列 法解决了分布式环境下维持多副本数据一致性的问题。 ( 2 ) 给出了基于电网监控系统关键结点分组的数据分布模型。 ( 3 ) 设计并实现了分布式内存数据库系统的o p c 接口。 ( 4 ) 采用松耦合的事件通知模式,设计了分布式环境下的主动机制,实现了电 网监控系统的主动告警功能。 本文工作是南瑞城乡电网公司主持开发的新一代电网调度与配电一体化系统 a e 9 0 0 0 数据库子系统的一部分。 1 4 2 本文的组织 本文的其余部分安排如下: 第二章,单结点内存数据库平台。本章详细讨论前期已开发成功的单结点内存 数据库平台,介绍其设计目标、功能模块及体系结构。 第三章,分布式内存数据库设计方案。本章详细分析了电网监控系统的应用特 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 点,并在第二章所提及的单结点内存数据库的基础上,给出分布式方案。同时,还 设计了分布式内存数据库的主动机制及内存数据库之间的通讯模块最后给出了 o p c 接口设计。 第四章,部分实现。本章就第三章的设计方案给出部分具体实现,并设计了相 应的测试方案。 第五章,总结与展望。 8 电同监控系统中分布式内存数据库系统的研究河海大学硕士论文 第二章单结点内存数据库平台 2 1 单结点内存数据库平台简介 电网监控系统单结点内存数据库平台f 6 l ,以下简称a e r t d b ,是一个单机版的 内存数据库系统。a e r t d b 可以单独使用,同时也是为分布式内存数据库系统 ( a e d r r d b ) 的开发做准备。a e r t d b 没有分布式机制,只能在单台机上使用,但 它为分布式版本的开发预留了接口。本文就是探讨在a e r t d b 的基础上如何设计实 现a e d r t d b 。 2 1 】a e i i t i ) b 的设计目标 a e r t d b 的设计目标是形成一个易于扩展的内存数据库系统,使之能满足各种 不同的应用需求,成为一个实时控制系统的开发平台。这就需要建立一套可以完成 数据采集、实时数据、历史数据和统计数据存储管理的实时数据库平台软件,为用 户提供接口,使用户能够对来自现场控制系统或人工键入的数据进行分析处理,并 能对控制系统进行反馈控制输出,为实现过程控制及优化或其他应用提供数据服务。 a e r t d b 不仅要完成数据管理功能,还要满足控制系统对实时数据的处理要 求。数据处理包括对现场采集到的实时数据进行输入处理、向控制设备回送的控制 数据进行输出处理、报警处理和系统事件处理等等。用户还可以预先定义计算字段, 当插入新记录或更新记录时,根据预定义的触发条件,系统自动触发计算得到更新 的计算字段值。 根据实时控制系统的要求,a e r t d b 必须有高速响应性能,要求达到毫秒级。 a e r t d b 还必须具有充分的可靠性,保证控制系统长周期通运转。 a e r t d b 内核要求是一个高效可靠的实时数据管理系统。外部对用户提供开放 式的接口。用户编写应用程序通过c o m 接口访问数据库中的数据,从而可供c 什 等多种高级语言调用。 其设计目标如下: ( 1 ) 内存数据库看作整个系统的软总线,不同应用通过库来交换数据,避免使 用其它方式,以简化应用程序接口; ( 2 ) 有很快的访问速度,避免访问磁盘介质; ( 3 ) 支持多进程、多线程同时访问; ( 4 ) 通用的、表结构无关的访问接口,支持s q l 或类s q l 的查询语言: ( 5 ) 触发机制,能根据数据变化情况实时更新。 9 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 2 1 2a e r t d b 已解决的关键问题 ( 1 ) 内存数据库的内存存储分配和内存共享; ( 2 ) 设计触发机制,实现内存实时数据库自身能根据预先定义的触发规则,实 时对数据变化作出反应并自发进行更新; ( 3 ) o p c 模板库技术和c o m 技术的应用; ( 4 ) 内存共享的并发控制策略; ( 5 ) 类s q l 语言的编译处理,为用户提供类s q l 语言实现对数据库的基本操作; ( 6 ) 索引表的创建:针对不同应用需要的键值,建立不同的索引表,若键值不 顺序,则需要建立稠密索引。 2 2 a e r t d b 的体系结构 2 2 1a e r t d b 总体结构 传统的磁盘数据库的操作是受i o 限制的,其i o 的时间延迟及其不确定性对 实时事务是难以接受的。因此,实时数据库中数据存储的一个主要问题就是如何消 除这种延迟及其不确定性。这需要底层的内存数据库支持,因而内存缓冲区的管理 就显得更为重要。管理目标是高优先级事务的执行不应受f o 操作问题而受到阻碍, 这样只有通过事务执行时只存取“内存数据库”,即其所需数据均在内存来保证实时 性。 由于关系型数据库在实时性上的缺陷,而且实时数据库又要满足数据一致性和 共享性的要求,但全部自行开发一套通用性好、功能强的实时数据库决非易事,且 大量离线库如历史库常驻内存也不现实,因此实时信息采用自行开发的实时库,而 历史信息采用大型商用数据库开发的历史库。 这样,整个实时数据库系统的设计分为驻内和留外两个部分,驻内部分采用内 存数据库,存储形式采用顺序结构加索引的方式,通过保持一定容量的内存,在内 存中存放数据,对于超过一定时间的数据从内存中更新或清除写到外存关系数据库 中,这样可以利用关系数据库产品对历史数据进行存储和管理。 1 0 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 整个数据系统的总体结构如图2 1 所示: 上发1 上发2 图2 1 内存数据库总体结构 电网监控系统的现场数据通过数据采集模块进入系统,系统对输入数据进行输 入处理后保存在内存数据库中。如果数据达到报警限值,系统进行报警处理,并记 录报警信息,按照要求,系统定时将实时数据保存到历史数据库和统计数据库中。 如果出现满足触发条件的系统事件,系统可以自动并触发用户编写的触发器应用程 序执行。 通过接口编写各种客户应用程序访问实时数据库、历史数据库和统计数据库中 的数据。经过客户应用程序处理的数据可以通过应用编程接口再回送到实时数据库 中,进行输出处理后通过回送模块送到实时控制系统中,实现对监控系统的现场控 制。 参考国内外的其它实时数据库产品,并结合当前系统的需求,确定了a e r t d b 如下图2 2 所示的功能模块组成: 图2 2a e r t d b 功能组成图 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 2 2 2a e r t d b 数据结构 ( 1 ) 逻辑结构 描述实体及其联系的二维表由若干行与若干列组成,这里称行为“记录”,称列 为“属性”。 属性:表示实体的特性,以属性名或属性号来标识,每列属性值为同一数据类 型。这里规定了以下数据类型:布尔型、单字节整型、双字节整型、四字节整型、 单精度实型、双精度实型、字符串类型等。 记录:由若干个有逻辑关系的属性值组成,每个记录由主关键字或记录号标识。 规定主关键字由该记录中的一个属性值组成,它能唯一地标识该记录。 表:由一些有逻辑关系的记录组成。为了满足各种应用的要求,节省数据库字 典空间,本数据库管理系统提供两类表。第一类表是需用关键字查找的表,这类表 适合于安全性要求高的场合;第二类表是可以通过通用的唯一标识符r m i d ) 查找的 表,适合于在监控系统内部应用。 因为逻辑结构有明显的层次特性,对于每一个层次又通过若干属性来刻画其特 征,故该结构具有层次和关系两种数据模型特征。这里采用全关系数据模型,即对 数据库中存在层次结构关系的数据也用二维表格形式的数据,而不是人为地设置指 针来表示和实现实体问的联系。层次之间的关系通过表的关键字来建立联系。不同 属性的数据存放在不同的表中,对各表描述成四级关键字【库名、表名、记录名、字 段名】这种按名定义或按名引用数据库的方法既直观又方便,同时又在概念上与商用 数据库s q ls e r v e r 相统一。又为了提高实时性和编程的方便及容易扩展,采用面 向对象的技术来定义数据结构。对于实时数据库中的各库利用面向对象技术建立模 型。任何一个库都定义成一个对象,并以此来构成一个类,库的信息内容又进一步 定义成对象,该对象作为对应库类的属性,而对数据库的操作定义为各种方法。利 用面向对象数据库的模型建立实时库数据库模型,其实时性要求可以通过定义相关 的属性和方法来实现。 ( 2 ) 物理结构 电网监控的实时数据量并不很大,且对应监控点的数据是周期刷新,对存储空 间的占用在一个阶段内是相对固定的,本文将a e r t d b 建立于内存中,由于整个数 据库放于内存中,数据库则不再作为大量存储文件看待,而作为内存中可寻址的大 量数据。采用此方式能使实时数据库系统性能极大提高。 a e r t d b 是前述若干个二维表的集合,所有表的元组数据按顺序存放,存在非 固定数据区的内存空间中。针对监控领域数据类型的特点,舢! m b 中各个表的各 个属性的长度是固定的,并相对地采用域长法实现元组在内存中的存储。元组的属 性值按顺序存放,这里没有像普通域长法那样对每一个域附加存储其域长 对大量 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 存储的元组这一数据量也相当可观) ,而是改在建立的元表中,记载各定长属性的长 度。图2 3 给出了一种面向对象数据库的模型: 类 i 类名属性超类予类方法 图2 3 面向对象数据模型 在类、属性设计的基础上根据实时数据库的操作进行方法的设计。实时数据库 的方法除了满足常规的数据库更新、修改、显示等操作的方法以外,还必须有相应 的实时方法来满足实时性的要求,其具体的设计可以根据采集或应用类中的更新周 期属性,设计定时器方法,自动实时地更新和操作数据。 设计好类、属性、方法以后,再对各种对象的描述、存贮和管理进行设计,在 电网监控系统中,将实时数据库中的对象划分成两种:一种是数据库中的永久对象, 一种是内存中的临时对象,更新周期较快的数据对象可以作为内存中的临时对象来 处理,也可以利用虚拟磁盘。在内存中建立数据库,作为数据库的永久对象来处理; 更新周期较长的各种应用及系统描述性的数据对象( 名称、数量等) 都是建立在磁盘 上的永久性对象,为了系统管理的方便,永久和临时对象均使用同一种描述和管理 方式。下图2 4 给出了对象描述和存贮的格式: l 对象标识i 对象长度l 属性数l 属性向量l 值位移向量 值 l i 1iii i - - - - - - - - - - - - - - - 。- - - - - - - - - - - - - - - - - - - - - - - - 。一 图2 4 对象格式 对象标识将是对象的全局唯一标识,对象长度和属性数分别记录对象的总长度 和属性个数,属性向量包括对象中所有属性的标识,每个属性都被其对象指定了一 个值:值位移向量保存对象的每个属性的值在值部分中的位移。 ( 3 ) 存取结构 实时数据库必须能够高速、按时的存取和处理数据,必须尽量保证关键的数据 操作能够在规定的时间内完成。因而,为了提高数据操作的可预见性,实时数据库 在数据存储方式和索引方式上与传统的数据库有很大的不同。为了避免不必要的磁 盘操作和避免不可预测时间的动态资源分配,采用静态数据结构,使用大量缓冲和 预分配内存。同时为了提高数据检索速度,采用索引机制进行快速的数据定位。 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 数据存取层中的记录存取功能,借助元表和存取路径,实现记录及其属性的定 位和存取。其过程可由下图2 5 表示。 图2 5 存取过程 查找一条记录首先通过索;j l ( i n d e x e s ) 或顺序检索找到记录( r e c o r d ) 的地址,根据 元表中的字段描述结构( f i e l d - d e s ) 中的偏移地址可以访问记录的每一个字段的值。数 据存取层向上提供单元组接口,实现一次一个元组的查找、插入、删除、修改等基 本操作,同时提供元组查找韵存取路径以及对索引记录的查找、插入、删除、修改 等维护操作。 数据库定义为类集合,用v c 实现层次和关系数据结构并实现记录之间的链 接,同时采用哈希表和t 树实现快速检索,并用双向表实现顺序检索。针对不同应 用需要的键值,需要建立不同的索引表。 1 、哈希表索引 哈希表提供( 平均上) 最快的方法通过关键字在表中定位一个记录,适合大的数 据表的快速查询。它要求数据存储时按哈希函数的定义存储数据,只能针对主键操 作满足客户针对一张表的一种查询请求。根据哈希表大小和哈希函数的效率,需 要一次或更多次的搜索以定位记录。如果大多数的查询使用等号比较记录字段,此 时哈希表是最快的。 本文使用带冲突链的扩展哈希表。表实现为对象引用的一个数组,这个对象引 用有一个指向冲突链的指针。冲突链元素形成一个l l 链表:每个元素包含一个指 向下一个元素的指针、哈希函数值和关联记录的o i d ,可以为布尔型、数值型、字 符串型字段创建哈希表。假设表有i l 个元素。 为了阻止冲突链的增长,当表充满时,哈希表的大小自动增长。哈希表当下面 两个条件都为真时被扩展: ( 1 ) 表中的记录数变得大于哈希表尺寸。 ( 2 ) 哈希表中使用的元素数量( 非空冲突链数量) 大于2 3 哈希表尺寸。 1 4 电网监控系统中分布式内存数据库系统的研究 河海大学硕士论文 第一个条件允许平均使用一次探索定位哈希表中每个元素( 当然它取决于键值 的分布和哈希函数) 。第二个条件当可能键值的设置容量变得小于哈希表尺寸时阻止 哈希表的增长。每次哈希表扩展时,尺寸就会翻倍。更精确地说,哈希表的尺寸是 2 “。使用一个奇数或素数作为哈希尺寸改善了哈希的质量并且有效地分配哈希表空 间,哈希表的尺寸对齐于页边界。如果哈希表的尺寸是2 ,那么这里将会总是使哈 希关键字至少有n 位处于闲置状态。 为此这里设计使用一个非常简单的哈希函数,尽管简单可以提供很好的效果( 在 哈希表中不均匀值的分布) 。哈希编码由关键字的所有字节利用下面公式计算: h = h + 3 1 + + k e ”+ ; 哈希表索引是哈希编码除以哈希表尺寸的余数。 2 、t 树索引 t 树,是a v l 树和数组的组合,在r t d b 中将起着同r d b m s 中b 树相同的 作用。它提供搜索、插入和删除操作并确保逻辑复杂度( 对于一个有n 条记录的表, 一个搜索,插入,删除操作的执行时间是c * l 0 9 2 ( n ) ,c 为喾量j 。t 树比b 树更适用于 r t d b ,因为后者企图最小化页面装载( 在磁盘数据库上这是一个昂贵的操作) 的次 数。然而t 树会试图优化比较,搬移的操作次数,因此当记录是明显有序或有范围限 制时,t 树是最佳的索引类型。 使用简单规则实现索引,所以可以估计哪个索引将会用到。索引应用的检测将 在每个查询执行时完成,这样可以根据操作符的值作出判断。这里使用下面的规则 来实现索引的算法: ( 1 ) 总是自左向右检视要编译的条件表达式; ( 2 ) 如果最顶表示式为a n d ,那么在表达式左部运用一个索引,右部作为过滤 器。 ( 3 ) 如果最顶表示式为o r 并且一个索引可以应用到表达式左部,那么应用这个 索引然后测试右部使用索引的可能性。否则,对整个表达式应用一个索引。 ( 4 ) 最顶表达式是一个关系表达式( - = b e t w e e nii k e ) ; ( 5 ) 操作数的类型是布尔、数值、字符串或引用; ( 6 ) 表达式的右操作数是一个常量或一个c + + 变量,并且左部是一个记录的索引 字段。 这里同时还要了解在哪种情况下使用相应的索引类型,在如下情况下可以使用 哈希索引: ( 1 ) 使用等于= 比较; ( 2 ) 使用b e t w e e n 操作并且边界和操作数的值相同: ( 3 ) 使用l i k e 操作,模式字符串不包含特别字符( o rf - ) 和换码符( 在e s c a p e 部分指定) 。 电网监控系统中分布式内存数据库系统的研究河海大学硕士论文 t 树索引的使用情况是:如果没有应用哈希表( 或字段没有哈希) 并且: ( 1 ) 使用比较操作( - 、 、 = 、b e t w e e n ) : ( 2 ) 使用l i k e 操作,模式字符串不包含空前缀( 模式的首字符不为字符( o rf _ ) 。 如果一个索引用于搜索一个l i k e 表达式的前缀,并且前缀不仅仅是。字符, 那么一个索引搜索操作能返回比匹配条件更多的记录。这种情况下,就应该通过模 式匹配操作过滤索引搜索输出。 当搜索条件是几个子表达式的析取( 表达式包含有o r 操作符组合的几个选择) 时,那么可以为这个查询使用几个索引。为了避免记录重复,在返回结果集中使用 位图标记已经选择的记录。 如

温馨提示

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

评论

0/150

提交评论