一种使用类聚簇的实时数据库存储方法技术

技术编号:4054250 阅读:332 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了使用类聚簇的一种支持运行式提交的实时数据库存储技术,通过在实时数据库中使用这种类似于聚簇的数据单元来存储数据,就可以实现实时数据库的运行时增量提交。由于提交时每个操作可以独立分别进行,且时间开销与实时数据访问可比,因此可以将提交的多个操作依次穿插于各个实时数据访问之间进行,而不影响实时数据库的实时访问。因为在初次提交时分配的数据空间仅仅略多于实际数据空间需求,就避免了初次提交就预先分配大量的闲置空间造成空间资源浪费。同时在提交时只有当确实需要新的数据空间或者确实有大量的数据空间不使用时才以数据单元为单位整块申请或释放空间,避免用过的空间无法重用的问题。

【技术实现步骤摘要】

本技术专利技术涉及工业自动化领域,尤其涉及分布式监控系统领域,本技术专利技术可 广泛适用于工业自动化领域的电网监控、电气化铁路和城市轨道交通各专业以及综合监控等应用。
技术介绍
在工业控制领域,随着自动化技术的发展,越来越多的工程应用,如工业生产、电 力调度、楼宇自动化、火灾防控等,使用监控系统实现过程或应用自动化。监控系统应用于 某一工程时,一般先依据工程应用的需求配置需要的数据结构,然后在运行时根据配置生 成对应的实时数据库内的数据,并围绕实时数据库这一系统核心模块,运行人机界面、报警 等系统的各种上层服务。但是由于工程应用的需求往往随着现实情况的变化而改变,这经 常导致需要对实时数据库内的数据进行修改,例如增添没有的数据,或者删除已有的数据 等等,以适应应用的需要。这种对实时数据库中的数据进行修正,使得它可以满足变化的需 求的过程称为提交。传统的监控系统的实时数据库一般采用离线式提交。即首先确定所有需要进行的 修改并对配置进行相应的修正,然后停止系统的运行,重新根据修正后的配置生成实时数 据库中的数据,然后再次运行系统。这种离线式提交的方式需要在一定时间内停止系统的 运行,而现代工程应用更期望监控系统持续运行,因此不少现代监控系统的实时数据库采 用运行时提交的方式。一种运行时提交的方式是停止实时数据库的服务,根据修改过的配置重新生成实 时数据库内的数据,然后再开启实时数据库的服务。采用这种方式,虽然系统仍然在运行, 但是在重新生成整个实时数据库的过程中,不提供实时数据服务,那么在相当长的一段时 间内系统失去响应,这种运行时提交的方式相比于离线提交的方式并无太多实质性改进。另一种运行时提交的方式是在初次配置时为将来可能增加的数据预留足够的空 间,当需求发生变化时,暂停实时数据库的服务,根据配置的变化对实时数据库中的数据进 行修正,然后恢复实时数据库的服务。采用这种方式,由于只是对实时数据库中的数据进行 修正,而非全部重新生成,也就是增量提交,而非完全提交,因此失去响应的时间要短的多。 但即使如此,相对于数据的实时访问这种实时操作而言,这种时间依然过于漫长,甚至是难 以接受的。更重要的是,由于提交时实时数据库中的数据修正是由工程需求变化导致的,因 此难以在初次配置时预计这种变化,同时又由于各种类型数据所占的空间不同,因此在初 次配置时难以准确的预留合适的数据空间,往往造成大量的额外空间浪费,降低系统的时 空性能。还有一种运行时提交的方式是对实时数据库中的每一个数据独立分配空间,当提 交时,因为各个数据的空间是独立的,就可以很方便的删除已有数据,并为新的数据分配空 间。而且采用这种方式,可以将提交的多个操作分别穿插于各个实时数据访问之间,从而不 需要暂停实时数据服务。但是在这种情况下,由于实时数据库为每一个数据独立分配空间,4在组织管理上稍显困难;而且由于各种数据类型需要的空间大小不一,伴随着多次提交中 增删操作的进行,在计算机内存中会产生大量无法重用的碎片,随着系统的运行。空间资源 的开销将不断增加,甚至耗尽从而导致系统崩溃,这是难以接受的。
技术实现思路
针对现有技术中存在的不足,本专利技术的目的是,实时数据库的提交(除初次提交 外)表现出这样一些特点>实时数据库的提交是由工程应用的需求变化导致的,因此实时数据库提交时的 数据变化是难以在初次提交时预计的。>实时数据库提交时需要修正的数据量与初次提交时完全生成的数据量相比是很 小的。>实时数据库的提交频率与实时数据访问的频率相比是非常小的。>实时数据库中各种类型的数据的特性各异,所占的空间大小也不一致。考虑到实时数据库的提交所具有的这些特点,应当在实时数据库中采用有效的存 储结构,使得实时数据库在提交时尽可能满足这样一些要求令实时数据库的提交应当采用运行时提交方式,而避免使用离线提交方式,从而 支持系统的持续运行。今实时数据库的提交应当采用增量提交方式,而不是完全提交方式,从而减少提 交的需要的时间。令实时数据库提交过程中的数据修正操作应当可以独立分别进行,而不是连续进 行,并且单个数据修正操作和单次实时数据访问的时间开销应当是可比的,从而避免实时 数据库长时间无响应。今实时数据库中的数据所需要的空间资源应当动态分配,而不是一次性分配,从 而避免过多的预分配空间资源浪费。今实时数据库中的数据使用的空间资源应当可以重用,而不是释放后无法再次使 用,从而避免空间资源开销不断增加而导致资源耗尽,系统崩溃。因此这里提供,从而满足实时数据库提交 时的上述一些要求。本专利技术采用的技术方案是,其特征在于,它包括构造步骤,采用类似于数据库中聚簇的一种数据结构作为基本数据单元,每个数 据单元中包含一个同种数据类型的列表,数据列表中只存放该类型数据,因此每个数据占 有的空间大小是一致的,这个数据单元同时还包含一个为这个数据列表建立的位图,位图 的长度等于列表中数据的个数,位图中每一位与列表中的一个数据顺序对应,表示这一数 据是可使用还是已使用;位的值为0表示可使用,即可以存放新的数据;位的值为1表示已 使用,即已存放数据,不可用于新数据的存放;存储步骤,初次提交时每一种数据类型构造一个对应的数据单元,数据单元可容 纳的数据数量略大于初始时需要的这种类型数据的数量,将数据置入列表,并将位图对应 的位初始化;每次提交时,均对数据进行修正,当没有可重用的数据空间,需要新的数据空间时,才分配一个新的数据单元,结构和原数据单元一致,但可容纳数据数量则仅为预先指 定的较小的值,并通过链表方式和原数据单元相连;删除步骤,在实时数据库中使用所述的数据单元存储数据,当需要对其中的某个 数据进行删除时,首先定位到该数据,清空数据值,但并不释放数据对应的空间,只是将数 据对应的位的值设为0,表示该数据位置可使用;只有当一个数据单元内的所有数据位置 都可使用,即位图的所有位都为0时,才释放整个数据单元的空间;增添步骤,在实时数据库中使用所述的数据单元存储数据,当需要增添一个该类 型数据时,首先确定数据单元内是否都是已使用的数据位置,即在数据单元的位图中是否 所有位的值都为1,如果有值为0的位,那么表示该位对应的数据位置可使用,直接使用;而 如果没有,即位图中的所有位的值均为1,那么新建一个数据单元,将新建数据单元的位图 清0,使用第一个数据位置即可,并将对应位图的位的值置1。相对应的,本专利技术还公开了一种使用类聚簇的实时数据库存储装置,它包括构造模块,采用类似于数据库中聚簇的一种数据结构作为基本数据单元,每个数 据单元中包含一个同种数据类型的列表,数据列表中只存放该类型数据,因此每个数据占 有的空间大小是一致的,这个数据单元同时还包含一个为这个数据列表建立的位图,位图 的长度等于列表中数据的个数,位图中每一位与列表中的一个数据顺序对应,表示这一数 据是可使用还是已使用;位的值为0表示可使用,即可以存放新的数据;位的值为1表示已 使用,即已存放数据,不可用于新数据的存放;存储模块,初次提交时每一种数据类型构造一个对应的数据单元,数据单元可容 纳的数据数量略大于初始时需要的这种类型数据的数量,将数据置入列表,并将位图对应 的位初始化;每次提交时,均对数据进行修正,当没有可重用本文档来自技高网
...

【技术保护点】
一种使用类聚簇的实时数据库存储方法,其特征在于,它包括:构造步骤,采用类似于数据库中聚簇的一种数据结构作为基本数据单元,每个数据单元中包含一个同种数据类型的列表,数据列表中只存放该类型数据,因此每个数据占有的空间大小是一致的,这个数据单元同时还包含一个为这个数据列表建立的位图,位图的长度等于列表中数据的个数,位图中每一位与列表中的一个数据顺序对应,表示这一数据是可使用还是已使用;删除步骤,在实时数据库中使用所述的数据单元存储数据,当需要对其中的某个数据进行删除时,首先定位到该数据,清空数据值,但并不释放数据对应的空间,只是将数据对应的位的值设为0,表示该数据位置可使用;只有当一个数据单元内的所有数据位置都可使用,即位图的所有位都为0时,才释放整个数据单元的空间;增添步骤,在实时数据库中使用所述的数据单元存储数据,当需要增添一个该类型数据时,首先确定数据单元内是否都是已使用的数据位置,即在数据单元的位图中是否所有位的值都为1,如果有值为0的位,那么表示该位对应的数据位置可使用,直接使用;而如果没有,即位图中的所有位的值均为1,那么新建一个数据单元,将新建数据单元的位图清0,使用第一个数据位置即可,并将对应位图的位的值置1。...

【技术特征摘要】

【专利技术属性】
技术研发人员:戴宏斌金舒包德梅
申请(专利权)人:南京国电南自轨道交通工程有限公司
类型:发明
国别省市:84

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

1