一种面向实时数据库的表文件空间分配方法组成比例

技术编号:6525527 阅读:293 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向实时数据库的表文件空间分配方法,在本方法中通过LRU算法管理缓冲区,实现数据库表文件中的数据和进程缓冲区中数据的换入和换出,利用位图方法实现表文件空间的分配和释放。采用LRU算法管理缓冲区,提高了数据文件的I/O读写速度;利用位图方法实现表文件空间的分配和释放,避免了大量存储空间碎片的产生,提高了数据库文件存储空间的利用率。

【技术实现步骤摘要】

本专利技术属于数据库设计
,涉及,适用于卫星地面设备监控中实时数据库表的存储空间分配,适用于存储大量有关地面设备运行状态的实时数据。
技术介绍
卫星地面设备监控系统需要对大量数据信息进行采集、传输、综合分析和计算等处理。从监控系统组成可以看出,数据是联系各功能模块的纽带。随着卫星地面应用系统的发展,地面设备监控系统的功能需求也不断增多、增强,数据量也不断扩大,数据之间的关系也越来越复杂。因此需要将数据库技术引入卫星地面设备监控中,采用数据库技术来管理、处理监控过程中的数据。但卫星地面设备监控中数据的一个显著特点是其有效时间短暂,过时则失效。而以关系数据库为代表的传统数据库的设计目标是维护数据的正确性、 保证系统的低代价和提供友好的用户接口。这种数据库系统对传统的商务和事务型应用是有效、成功的,但对于新领域的实时数据和实时事务的应用要求难以胜任。所以,需要结合数据库技术和实时技术,研究具有显式定时限制的实时数据库系统。在卫星地面设备监控中,实时数据库将面临大量的实时数据,最新的实时记录必须能在给定的时间期限内存入数据库表,因此必然涉及文件空间的分配和释放。如果不控制表文件中数据的写入或删除位置,随着分配和释放操作的累积,数据库文件将出现大量的不可再利用的微小碎片,降低数据库文件存储空间的利用率。同时过多的文件碎片必然导致分配存储空间时要进行多次遍历,降低数据库的实时性能。而且卫星地面设备监控中需存储的数据格式相对简单、固定和独立,传统的文件空间分配方法并没考虑到这种实时数据的特点,导致其在文件空间的利用率上很难达到要求。
技术实现思路
本专利技术的技术解决问题是针对现有技术的不足,提供了。采用本专利技术实现了实时数据库表文件存储空间的分配和释放,提高了数据库文件存储空间的利用率。本专利技术的技术解决方案通过以下步骤实现(1)利用位图对数据库表文件中的空间进行管理,采用比特0代表未分配的存储单元,比特1代表已分配的存储单元;所述存储单元为大小相同的存储空间;(2)针对分配或释放存储空间的操作,对表文件位图页面进行操作,对于分配存储空间操作根据待分配空间的大小,确定所需存储单元的个数;将表文件的位图页面换入到分配存储空间的进程缓冲区中;采用位图法,在进程缓冲区的位图页面中寻找由连续比特0代表的存储单元,并将查找到的存储单元标记为比特1 ;若未找到由连续比特0代表的存储单元,则将表文件的下一个位图页面换入到分配存储空间的进程缓冲区中,继续寻找可分配的存储单元;循环进行直到寻找到足够的存储单元;若在换入到分配存储空间的进程缓冲区中的表文件的最后一个位图页面中仍未寻找到足够的存储单元,则对进程缓冲区中表文件的位图页面进行扩展,并将寻找到的由连续比特0代表的存储单元标记为比特1 ;根据找到的第一个存储单元,确定已分配存储空间的起始地址,并将起始地址返回给分配存储空间的进程; 对于释放存储空间操作根据待释放存储空间的大小,确定待释放存储空间对应的存储单元个数;将表文件的位图页面换入到释放存储空间的进程缓冲区中;根据待释放存储空间在位图页面中的起始位置和待释放存储单元的个数,寻找位图页面中的连续比特1代表的存储单元,并将比特1标记为比特0 ;(3)将进程缓冲区中操作完的表文件位图页面换出到数据库表文件中。在所述步骤(2)和步骤(3)中采用LRU算法将数据库表文件的一个页面换入到进程缓冲区或从进程缓冲区中换出到数据库表文件中。本专利技术与现有技术相比具有如下优点(1)本专利技术根据地面设备监控中实时数据的特点,采用LRU算法实现数据库表文件页面转移到进程缓冲区中和从进程缓冲区中换出修改过的表文件页面,避免了大量磁盘页面换入换出的抖动现象;利用位图法管理文件存储空间,避免了大量碎片的出现,提高了数据库文件存储空间的利用率。(2)卫星地面设备监控领域中需存储数据的格式比较简单,数据库表文件需存储大量的实时数据,为此本专利技术用位图法管理整个数据库表文件空间。该方法带来的好处在于可以充分利用程序的局部性原理①最近一段时间分配的存储空间总出现在一片连续区域里,因此修改更新操作将发生在尽可能少的物理内存页面上。当事务提交时,操作系统的 I/O机制只会将更新修改过的页面写回磁盘。由于更新了的页面尽可能地少,这使得事务提交的时间也会尽可能减少。②现代操作系统的页面换入换出算法总是将近期引用页面放在物理内存中,而将近期不活动页面换出到磁盘上。由于分配总是涉及尽可能少量的内存页面上,这将确保分配操作引用的页面总是常驻物理内存,能最大限度的避免出现页面换入换出的“抖动”现象。附图说明图1为本专利技术的初始时数据库表文件结构图;图2为本专利技术的扩展位图页面后数据表文件结构图;图3为本专利技术的管理进程缓冲区的双链表数据结构示意图;图4为本专利技术流程图。具体实施例方式本专利技术采用LRU算法管理进程缓冲区,实现数据库表文件页面转移到进程缓冲区中和从进程缓冲区中换出修改过的表文件页面;利用位图法实现分配存储空间,其中分配存储空间表现为如下三部分(1)在位图页面内寻找满足指定大小的可分配存储空间(2) 位图页面内不能找到指定大小的存储空间时,扩展位图页面过程(3)找到存储空间后,将连续比特O标记为1,并返回存储空间起始地址。工作过程如图4所示,具体步骤如下采用LRU算法置换表文件页面实时数据库通过缓冲区来操作文件中的数据,缓冲区由多个页面组成。读写或修改某文件对象前,首先将该文件对象所在表文件页面复制到缓冲区中。管理缓冲区的数 据结构由一个双链表和一个哈希表组成。哈希表用于快速查询表文件页面是否在进程缓冲区中,双链表由若干个PageHeader组成,用于管理缓冲区中的页面。通过查询哈希表,判断表文件页面是否在进程缓冲区中,如果在进程缓冲区中,不需要置换,如果不在进程缓冲区中,则将最先加入双链表的页面作为置换页面。位图页面内寻找可分配空间过程表现为在位图页面内寻找连续的比特0,位图页面中的每个比特0代表尚未分配出去的存储单元,对给定大小的存储空间分配,总表现为在位图页面内部线性地寻找连续的比特0,如果找到连续的比特0,将这些连续的比特0 位标记为1,置1表示该位置代表的存储单元已分配出去,然后返回该片空间的起始地址。扩展位图页面过程由于记录的大量插入,数据库表文件长度也随之增大,一个位图页面只能分配固定大小的空间,个数有限的位图页面无法管理过大的表文件空间,当不能为某次分配存储空间请求找到足够的存储空间时,需要扩展位图页面,这时分配新的若干位图页面,这些位图页面线性连续地存放在一起。当给定大小的存储空间被释放时,确定该空间起始地址对应的位图页面中的相应比特位,并将该位起始的连续若干个比特位标记为0,并用LRU算法将修改的页面写回表文件中。下面就结合具体过程对本专利技术做进一步介绍。(1)本专利技术采用位图对由数据库表文件所表示的空间进行管理。数据库表文件结构如图1示。文件头包含数据库文件的描述信息,页面地址分别指向各自的位图页面首地址,η个位图页面连续集中在一起,可减少因位图页面过于分散而导致的内存碎片较多的问题。每个位图页面负责其分配的区域,如位图页面0负责分配第一个256Κ字节,位图页面 1负责分配第2个256Κ字节。并在位图中利用比特0代表未分配的存储单元;比特1代表已分配的存本文档来自技高网...

【技术保护点】
1.一种面向实时数据库的表文件空间分配方法,其特征在于通过以下步骤实现:(1)利用位图对数据库表文件中的空间进行管理,采用比特0代表未分配的存储单元,比特1代表已分配的存储单元;所述存储单元为大小相同的存储空间;(2)针对分配或释放存储空间的操作,对表文件位图页面进行操作,对于分配存储空间操作:根据待分配空间的大小,确定所需存储单元的个数;将表文件的位图页面换入到分配存储空间的进程缓冲区中;采用位图法,在进程缓冲区的位图页面中寻找由连续比特0代表的存储单元,并将查找到的存储单元标记为比特1;若未找到由连续比特0代表的存储单元,则将表文件的下一个位图页面换入到分配存储空间的进程缓冲区中,继续寻找可分配的存储单元;循环进行直到寻找到足够的存储单元;若在换入到分配存储空间的进程缓冲区中的表文件的最后一个位图页面中仍未寻找到足够的存储单元,则对进程缓冲区中表文件的位图页面进行扩展,并将寻找到的由连续比特0代表的存储单元标记为比特1;根据找到的第一个存储单元,确定已分配存储空间的起始地址,并将起始地址返回给分配存储空间的进程;对于释放存储空间操作:根据待释放存储空间的大小,确定待释放存储空间对应的存储单元个数;将表文件的位图页面换入到释放存储空间的进程缓冲区中;根据待释放存储空间在位图页面中的起始位置和待释放存储单元的个数,寻找位图页面中的连续比特1代表的存储单元,并将比特1标记为比特0;(3)将进程缓冲区中操作完的表文件位图页面换出到数据库表文件中。...

【技术特征摘要】
1.一种面向实时数据库的表文件空间分配方法,其特征在于通过以下步骤实现(1)利用位图对数据库表文件中的空间进行管理,采用比特O代表未分配的存储单元, 比特1代表已分配的存储单元;所述存储单元为大小相同的存储空间;(2)针对分配或释放存储空间的操作,对表文件位图页面进行操作,对于分配存储空间操作根据待分配空间的大小,确定所需存储单元的个数;将表文件的位图页面换入到分配存储空间的进程缓冲区中;采用位图法,在进程缓冲区的位图页面中寻找由连续比特O代表的存储单元,并将查找到的存储单元标记为比特1 ;若未找到由连续比特O代表的存储单元,则将表文件的下一个位图页面换入到分配存储空间的进程缓冲区中,继续寻找可分配的存储单元;循环进行直到寻找到足够的存储单元;若在换入到分配存储空间的进程缓冲区中的表文件的最后一个位图页面中仍未寻找到足够...

【专利技术属性】
技术研发人员:刘波刘华薛亮王智尧李艳艳汪红强梁洁雯
申请(专利权)人:航天恒星科技有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1