一种电力系统实时数据库内存管理方法

文档序号:6434020阅读:463来源:国知局
专利名称:一种电力系统实时数据库内存管理方法
一种电力系统实时数据库内存管理方法技术领域
本发明属于实时数据库领域,尤其是电力系统的数据量极为庞大的实时数据库的 内存管理方法。
背景技术
实时数据库是数据库技术结合实时处理技术产生的,在电力系统领域,随着调度 自动化水平的不断提高以及计算机监控系统的不断发展,系统采集的数据规模越来越大。 实时数据库管理系统不仅需要实时存储海量的采集数据,而且需要为企业的生产管理和调 度、数据分析、决策支持提供多种数据管理功能。针对电力系统这一特定应用场景,实时数 据库需要满足电力系统海量信息存储的需求,实时处理性能,在普通PC机上的数据提交吞 吐率能达到每秒百万事件以上,需要充分挖掘现代处理器技术、操作系统技术、存储器技术 和网络通讯技术的潜力。本发明主要研究实时数据库的内存管理技术,使实时数据库的数 据处理能力能够达到每秒百万事件以上,结合虚拟内存和堆空间内存管理方法的优点,通 过这种特殊的内存管理方法,实时数据库能够合理地分配和使用内存资源,提高计算机资 源的利用率。发明内容
本发明的目的是提出一种虚拟内存和堆空间内存管理方法,该方法针对电力系统 海量、实时、高频的数据地采集、处理并及时作出正确响应的特定需求,保证了实时数据库 数据的高效存储和检索。
本发明所要解决的技术问题是内存与海量实时数据的矛盾,提供一种实时数据 库虚拟内存管理技术方法,实现分布式实时数据库的高效存储和检索。
本发明技术方案如下步骤1、访问数据,虚拟内存管理机制首先判断数据所在的内存块是否在内存中,在内 存中,进入步骤2 ;不在内存中,进入步骤3 ;步骤2、直接通过内存地址进行访问;步骤3、判断数据是否在磁盘文件中,在磁盘文件中进入步骤4 ;不在磁盘文件中,访问 违例;步骤4、在磁盘文件中,先把磁盘中数据块加载到内存,然后再进行访问。
引用堆空间内存管理,主要包括以下步骤1) 一次申请比较大的内存块;(2)对小 内存的申请在大的内存块中进行预分配;3)对不用的内存进行回收。
本发明方法的有益效果是,能够针对特定的应用场景对内存进行合理分配,把要 处理的海量数据文件进行分块,只把需要的那部分数据放入内存,大大减少了内存的压力; 同时对临时小量数据的内存也进行分块管理并且通过预分配机制使计算机的物理内存得 到充分的利用。


图1实时数据库虚拟内存机制。
图2实时数据库堆空间管理机制。
图3为实时数据库通过虚拟内存管理访问数据的流程。
具体实施方式
下面说明本发明的优选实施例。
把磁盘中的文件按一定的大小块进行划分,在需要利用某一块磁盘空间的时候, 通过内存映射的方式映射到内存中,并且按照实时数据库的虚拟内存管理机制对映射到内 存中的块进行管理,如果内存中的映射块超过设定的上限,可以按照一定的算法比如最近 最久未使用算法将空闲的数据块换出到磁盘以得到更多空闲内存供使用。
1.对持久化数据的内存管理方案技术方案所依据的原理Win32访问虚拟内存时的处理流程 当数据已经在物理内存中时,虚拟内存管理器只需将指向该数据的虚拟地址映射为物 理地址指针,即可访问到物理内存中的真正数据。这不涉及磁盘10,速度快。
当第一次访问一段刚刚提交的内存中的数据时,因为并没有真正的物理内存分配 给它。
或者该数据以前已被访问过,但被虚拟内存管理器置换出了内存。此时会引发缺 页错误,虚拟内存管理器会先检测此数据是否在调页文件中已有备份空间,有的话,就在物 理内存中找到合适的页,并将存放在磁盘的备份数据置换进物理内存。
虚拟内存管理器首先检查当前物理内存是否有空闲页,如果有,直接使用,否则, 根据调页算法首先选出某个页,检查此页状态,如果此页自上次调入尚未被修改,则直接使 用,否则要先将此页内容写道调页文件中与此页相对应的备份页中,并将此页标为空闲页。
此时,有了一个空闲页可以使用,虚拟内存管理器会再次检测,此数据是否刚被申 请且第一次访问,直接清0,不是的话,需要将调页文件中该页的备份页读入,并将此页改为 活动页。此时数据已在物理内存中,通过虚拟地址映射,可以直接访问。
借鉴操作系统虚拟内存管理的概念,提出了一种实时数据库虚拟内存管理技术, 主要是为了满足海量数据的实时处理需求而设计的一种内存与磁盘之间的换入换出技术, 同时也是一种数据持久化技术。通过索引确定需要从文件系统中加载某块数据时,由统一 的虚拟内存管理负责将数据从物理文件加载到内存,并按照LRU策略对高速缓存区进行统 一管理。
实时数据库虚拟内存管理主要是对多文件存储空间实现定长度结构空间的分配 和回收,同时基于文件映射内存技术,实现用户层的虚拟内存技术,结合实际文件位置和内 存数据结构,将实时数据库与多文件存储空间的接口简化为内存和指针的形式。
在实时数据库的虚拟内存管理机制中有一系列的数据结构对其内存块进行管理, 这些数据结构保证了虚拟内存管理机制的顺利运行,如图1所示;操作系统提供的_ap机制可以让我们能够把磁盘中的文件按块进行划分,并一一映 射到内存中。实时数据库的虚拟内存管理不断的将新来的数据存放到虚拟内存块中,在内 存块中有更精细的对这内部的小内存进行分配的机制,用来对接收到的数据进行有序排放,并在一定时间内对这些内存块进行同步,使其存放到硬盘中,同时将数据已同步到硬盘 的虚拟内存块进行释放。这样就完成了虚拟内存换入换出和实时海量数据的持久化。
2.对临时数据的内存管理方案除了对虚拟内存空间进行管理,实时数据库也需要对运行过程中的临时数据所需的空 间进行快速分配和释放,以达到数据处理的实时性,这些空间的申请来源于内存的堆空间, 因此需要对此内存空间进行有效的管理。
堆空间内存管理概念是针对虚拟内存提出的,虚拟内存主要用作数据的持久化; 堆空间内存主要用在运行过程中对临时数据的处理。这些内存在实际的应用中有如下特 点(1)一次申请的内存量小;(2)申请和释放非常频繁;(3)在程序的堆空间进行操作。对 性能要求极高的实时数据库来说,频繁的调用操作系统API是不能忍受的,它将使数据库 的性能极大的下降;同时堆内存的申请是比较耗时的操作,如果频繁使用将使程序在用户 空间和内核空间频繁切换,效率大大降低。
针对这种场景,为了提高数据库的实时性,本文提出了堆空间内存管理概念,使数 据库在运行过程中减少new/delete操作,充分利用内存,主要采取以下措施(I)一次申请 比较大的内存块;(2)对小内存的申请在大的内存块中进行预分配;(3)对不用的内存进行 回收。如图2所示;分配较大的内存块并进行预分配有两个好处一是减少了操作系统分配内存的次数, 二是在内存分配好后就对其进行数据结构进行初始化,使其在需要时能够快速分配内存。 在每个内存块的内部有灵活的指针,能方便小块内存的分配和回收。在申请到数据块后,需 要增加链表对其进行管理,以防止内存泄露,从而高效正确地使用内存。
权利要求
1.一种电力系统实时数据库内存管理方法,其特征在于 步骤1、访问数据,虚拟内存管理机制首先判断数据所在的内存块是否在内存中,在内存中,进入步骤2 ;不在内存中,进入步骤3 ; 步骤2、直接通过内存地址进行访问; 步骤3、判断数据是否在磁盘文件中,在磁盘文件中进入步骤4 ;不在磁盘文件中,访问违例; 步骤4、在磁盘文件中,先把磁盘中数据块加载到内存,然后再进行访问。
2.根据权利要求1所述的方法,其特征在于引用堆空间内存管理,主要包括以下步骤I) 一次申请比较大的内存块;(2 )对小内存的申请在大的内存块中进行预分配;3 )对不用的内存进行回收。
全文摘要
本发明属于实时数据库领域,尤其是电力系统的数据量极为庞大的实时数据库的内存管理方法,针对内存与海量实时数据的矛盾,提出一种虚拟内存和堆空间内存管理方法,该方法针对电力系统海量、实时、高频的数据地采集、处理并及时作出正确响应的特定需求,实现分布式实时数据库的高效存储和检索。
文档编号G06F17/30GK103020077SQ20111028614
公开日2013年4月3日 申请日期2011年9月24日 优先权日2011年9月24日
发明者周淳, 陈静 申请人:国家电网公司, 江苏瑞中数据股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1