CN103020077A - 一种电力系统实时数据库内存管理方法 - Google Patents
一种电力系统实时数据库内存管理方法 Download PDFInfo
- Publication number
- CN103020077A CN103020077A CN2011102861444A CN201110286144A CN103020077A CN 103020077 A CN103020077 A CN 103020077A CN 2011102861444 A CN2011102861444 A CN 2011102861444A CN 201110286144 A CN201110286144 A CN 201110286144A CN 103020077 A CN103020077 A CN 103020077A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- real
- internal memory
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于实时数据库领域,尤其是电力系统的数据量极为庞大的实时数据库的内存管理方法,针对内存与海量实时数据的矛盾,提出一种虚拟内存和堆空间内存管理方法,该方法针对电力系统海量、实时、高频的数据地采集、处理并及时作出正确响应的特定需求,实现分布式实时数据库的高效存储和检索。
Description
技术领域
本发明属于实时数据库领域,尤其是电力系统的数据量极为庞大的实时数据库的内存管理方法。
背景技术
实时数据库是数据库技术结合实时处理技术产生的,在电力系统领域,随着调度自动化水平的不断提高以及计算机监控系统的不断发展,系统采集的数据规模越来越大。实时数据库管理系统不仅需要实时存储海量的采集数据,而且需要为企业的生产管理和调度、数据分析、决策支持提供多种数据管理功能。针对电力系统这一特定应用场景,实时数据库需要满足电力系统海量信息存储的需求,实时处理性能,在普通PC机上的数据提交吞吐率能达到每秒百万事件以上,需要充分挖掘现代处理器技术、操作系统技术、存储器技术和网络通讯技术的潜力。本发明主要研究实时数据库的内存管理技术,使实时数据库的数据处理能力能够达到每秒百万事件以上,结合虚拟内存和堆空间内存管理方法的优点,通过这种特殊的内存管理方法,实时数据库能够合理地分配和使用内存资源,提高计算机资源的利用率。
发明内容
本发明的目的是提出一种虚拟内存和堆空间内存管理方法,该方法针对电力系统海量、实时、高频的数据地采集、处理并及时作出正确响应的特定需求,保证了实时数据库数据的高效存储和检索。
本发明所要解决的技术问题是:内存与海量实时数据的矛盾,提供一种实时数据库虚拟内存管理技术方法,实现分布式实时数据库的高效存储和检索。
本发明技术方案如下:
步骤1、访问数据,虚拟内存管理机制首先判断数据所在的内存块是否在内存中,在内存中,进入步骤2;不在内存中,进入步骤3;
步骤2、直接通过内存地址进行访问;
步骤3、判断数据是否在磁盘文件中,在磁盘文件中进入步骤4;不在磁盘文件中,访问违例;
步骤4、在磁盘文件中,先把磁盘中数据块加载到内存,然后再进行访问。
引用堆空间内存管理,主要包括以下步骤:1)一次申请比较大的内存块;(2)对小内存的申请在大的内存块中进行预分配;3)对不用的内存进行回收。
本发明方法的有益效果是,能够针对特定的应用场景对内存进行合理分配,把要处理的海量数据文件进行分块,只把需要的那部分数据放入内存,大大减少了内存的压力;同时对临时小量数据的内存也进行分块管理并且通过预分配机制使计算机的物理内存得到充分的利用。
附图说明
图1 实时数据库虚拟内存机制。
图2 实时数据库堆空间管理机制。
图3为实时数据库通过虚拟内存管理访问数据的流程。
具体实施方式
下面说明本发明的优选实施例。
把磁盘中的文件按一定的大小块进行划分,在需要利用某一块磁盘空间的时候,通过内存映射的方式映射到内存中,并且按照实时数据库的虚拟内存管理机制对映射到内存中的块进行管理,如果内存中的映射块超过设定的上限,可以按照一定的算法比如最近最久未使用算法将空闲的数据块换出到磁盘以得到更多空闲内存供使用。
1. 对持久化数据的内存管理方案:
技术方案所依据的原理 : win32访问虚拟内存时的处理流程
当数据已经在物理内存中时,虚拟内存管理器只需将指向该数据的虚拟地址映射为物理地址指针,即可访问到物理内存中的真正数据。这不涉及磁盘IO,速度快。
当第一次访问一段刚刚提交的内存中的数据时,因为并没有真正的物理内存分配给它。
或者该数据以前已被访问过,但被虚拟内存管理器置换出了内存。此时会引发缺页错误,虚拟内存管理器会先检测此数据是否在调页文件中已有备份空间,有的话,就在物理内存中找到合适的页,并将存放在磁盘的备份数据置换进物理内存。
虚拟内存管理器首先检查当前物理内存是否有空闲页,如果有,直接使用,否则,根据调页算法首先选出某个页,检查此页状态,如果此页自上次调入尚未被修改,则直接使用,否则要先将此页内容写道调页文件中与此页相对应的备份页中,并将此页标为空闲页。
此时,有了一个空闲页可以使用,虚拟内存管理器会再次检测,此数据是否刚被申请且第一次访问,直接清0,不是的话,需要将调页文件中该页的备份页读入,并将此页改为活动页。此时数据已在物理内存中,通过虚拟地址映射,可以直接访问。
借鉴操作系统虚拟内存管理的概念,提出了一种实时数据库虚拟内存管理技术,主要是为了满足海量数据的实时处理需求而设计的一种内存与磁盘之间的换入换出技术,同时也是一种数据持久化技术。通过索引确定需要从文件系统中加载某块数据时,由统一的虚拟内存管理负责将数据从物理文件加载到内存,并按照LRU策略对高速缓存区进行统一管理。
实时数据库虚拟内存管理主要是对多文件存储空间实现定长度结构空间的分配和回收,同时基于文件映射内存技术,实现用户层的虚拟内存技术,结合实际文件位置和内存数据结构,将实时数据库与多文件存储空间的接口简化为内存和指针的形式。
在实时数据库的虚拟内存管理机制中有一系列的数据结构对其内存块进行管理,这些数据结构保证了虚拟内存管理机制的顺利运行,如图1所示;
操作系统提供的mmap机制可以让我们能够把磁盘中的文件按块进行划分,并一一映射到内存中。实时数据库的虚拟内存管理不断的将新来的数据存放到虚拟内存块中,在内存块中有更精细的对这内部的小内存进行分配的机制,用来对接收到的数据进行有序排放,并在一定时间内对这些内存块进行同步,使其存放到硬盘中,同时将数据已同步到硬盘的虚拟内存块进行释放。这样就完成了虚拟内存换入换出和实时海量数据的持久化。
2. 对临时数据的内存管理方案:
除了对虚拟内存空间进行管理,实时数据库也需要对运行过程中的临时数据所需的空间进行快速分配和释放,以达到数据处理的实时性,这些空间的申请来源于内存的堆空间,因此需要对此内存空间进行有效的管理。
堆空间内存管理概念是针对虚拟内存提出的,虚拟内存主要用作数据的持久化;堆空间内存主要用在运行过程中对临时数据的处理。这些内存在实际的应用中有如下特点:(1)一次申请的内存量小;(2)申请和释放非常频繁;(3)在程序的堆空间进行操作。对性能要求极高的实时数据库来说,频繁的调用操作系统API是不能忍受的,它将使数据库的性能极大的下降;同时堆内存的申请是比较耗时的操作,如果频繁使用将使程序在用户空间和内核空间频繁切换,效率大大降低。
针对这种场景,为了提高数据库的实时性,本文提出了堆空间内存管理概念,使数据库在运行过程中减少new/delete操作,充分利用内存,主要采取以下措施:(1)一次申请比较大的内存块;(2)对小内存的申请在大的内存块中进行预分配;(3)对不用的内存进行回收。如图2所示;
分配较大的内存块并进行预分配有两个好处:一是减少了操作系统分配内存的次数,二是在内存分配好后就对其进行数据结构进行初始化,使其在需要时能够快速分配内存。 在每个内存块的内部有灵活的指针,能方便小块内存的分配和回收。在申请到数据块后,需要增加链表对其进行管理,以防止内存泄露,从而高效正确地使用内存。
Claims (2)
1.一种电力系统实时数据库内存管理方法,其特征在于:
步骤1、访问数据,虚拟内存管理机制首先判断数据所在的内存块是否在内存中,在内存中,进入步骤2;不在内存中,进入步骤3;
步骤2、直接通过内存地址进行访问;
步骤3、判断数据是否在磁盘文件中,在磁盘文件中进入步骤4;不在磁盘文件中,访问违例;
步骤4、在磁盘文件中,先把磁盘中数据块加载到内存,然后再进行访问。
2.根据权利要求1所述的方法,其特征在于:引用堆空间内存管理,主要包括以下步骤:1)一次申请比较大的内存块;(2)对小内存的申请在大的内存块中进行预分配;3)对不用的内存进行回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102861444A CN103020077A (zh) | 2011-09-24 | 2011-09-24 | 一种电力系统实时数据库内存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102861444A CN103020077A (zh) | 2011-09-24 | 2011-09-24 | 一种电力系统实时数据库内存管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103020077A true CN103020077A (zh) | 2013-04-03 |
Family
ID=47968692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102861444A Pending CN103020077A (zh) | 2011-09-24 | 2011-09-24 | 一种电力系统实时数据库内存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020077A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储系统及方法 |
CN104731968A (zh) * | 2015-04-08 | 2015-06-24 | 河海大学 | 一种单机的大规模数据集的聚类挖掘方法 |
CN104881418A (zh) * | 2014-02-28 | 2015-09-02 | 阿里巴巴集团控股有限公司 | 用于MySQL的快速回收回滚空间的方法和装置 |
CN105956063A (zh) * | 2016-04-27 | 2016-09-21 | 华自科技股份有限公司 | 多采测点的数据存储方法与系统 |
CN112540987A (zh) * | 2020-12-08 | 2021-03-23 | 湖州中朔信息技术有限公司 | 一种基于数据集市的配用电大数据管理系统 |
CN114518962A (zh) * | 2022-04-15 | 2022-05-20 | 北京奥星贝斯科技有限公司 | 内存的管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459554B1 (en) * | 2000-09-05 | 2002-10-01 | Eaton Corproation | Drive circuit for the trip actuator of a network protector and a network protector incorporating the same |
CN1542652A (zh) * | 2003-11-06 | 2004-11-03 | 北京四方继保自动化有限公司 | 全分布式的保护信息处理系统实时数据库的应用方法及其网络系统 |
CN1797397A (zh) * | 2004-12-24 | 2006-07-05 | 许继集团有限公司 | 一种电力自动化系统实时数据库管理系统及其实现方法 |
CN101807073A (zh) * | 2010-04-20 | 2010-08-18 | 杭州和利时自动化有限公司 | 一种分布式控制系统的历史数据处理方法和装置 |
CN102004773A (zh) * | 2010-11-15 | 2011-04-06 | 青岛普加智能信息有限公司 | 数据读写处理方法及web应用服务器 |
-
2011
- 2011-09-24 CN CN2011102861444A patent/CN103020077A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459554B1 (en) * | 2000-09-05 | 2002-10-01 | Eaton Corproation | Drive circuit for the trip actuator of a network protector and a network protector incorporating the same |
CN1542652A (zh) * | 2003-11-06 | 2004-11-03 | 北京四方继保自动化有限公司 | 全分布式的保护信息处理系统实时数据库的应用方法及其网络系统 |
CN1797397A (zh) * | 2004-12-24 | 2006-07-05 | 许继集团有限公司 | 一种电力自动化系统实时数据库管理系统及其实现方法 |
CN101807073A (zh) * | 2010-04-20 | 2010-08-18 | 杭州和利时自动化有限公司 | 一种分布式控制系统的历史数据处理方法和装置 |
CN102004773A (zh) * | 2010-11-15 | 2011-04-06 | 青岛普加智能信息有限公司 | 数据读写处理方法及web应用服务器 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储系统及方法 |
CN104123300B (zh) * | 2013-04-26 | 2017-10-13 | 上海云人信息科技有限公司 | 数据分布式存储系统及方法 |
CN104881418A (zh) * | 2014-02-28 | 2015-09-02 | 阿里巴巴集团控股有限公司 | 用于MySQL的快速回收回滚空间的方法和装置 |
CN104881418B (zh) * | 2014-02-28 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 用于MySQL的快速回收回滚空间的方法和装置 |
CN104731968A (zh) * | 2015-04-08 | 2015-06-24 | 河海大学 | 一种单机的大规模数据集的聚类挖掘方法 |
CN104731968B (zh) * | 2015-04-08 | 2018-06-19 | 河海大学 | 一种单机的大规模数据集的聚类挖掘方法 |
CN105956063A (zh) * | 2016-04-27 | 2016-09-21 | 华自科技股份有限公司 | 多采测点的数据存储方法与系统 |
CN105956063B (zh) * | 2016-04-27 | 2019-03-15 | 华自科技股份有限公司 | 多采测点的数据存储方法与系统 |
CN112540987A (zh) * | 2020-12-08 | 2021-03-23 | 湖州中朔信息技术有限公司 | 一种基于数据集市的配用电大数据管理系统 |
CN114518962A (zh) * | 2022-04-15 | 2022-05-20 | 北京奥星贝斯科技有限公司 | 内存的管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893269B (zh) | 一种Linux系统下内存管理方法 | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
CN103177027B (zh) | 获取动态Feed索引的方法和系统 | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
CN105917319A (zh) | 存储器单元和方法 | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
CN100383792C (zh) | 缓存数据库数据组织方法 | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
US9086882B2 (en) | DRAM energy use optimization using application information | |
CN102789427A (zh) | 数据储存装置与其操作方法 | |
CN103558992A (zh) | 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统 | |
CN101556557A (zh) | 一种基于对象存储设备的对象文件组织方法 | |
WO2015142341A1 (en) | Dynamic memory expansion by data compression | |
Ouyang et al. | SSD-assisted hybrid memory to accelerate memcached over high performance networks | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
CN104111896B (zh) | 大数据处理中的虚拟内存管理方法及其装置 | |
CN101510176A (zh) | 通用操作系统对cpu二级缓存访问的控制方法 | |
CN101373445A (zh) | 一种内存调度方法及装置 | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
Lee et al. | Effective flash-based SSD caching for high performance home cloud server | |
WO2014051544A2 (en) | Improved performance and energy efficiency while using large pages | |
CN114676072A (zh) | 数据处理方法以及装置 | |
CN109086002A (zh) | 存储对象的空间管理方法、装置、计算机装置及存储介质 | |
Cheng et al. | Lifespan-based garbage collection to improve SSD's reliability and performance | |
Lee et al. | Buffered i/o support for zoned namespace ssd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130403 |
|
RJ01 | Rejection of invention patent application after publication |