[发明专利]一种实现内存数据库表存盘和加载的方法有效
申请号: | 200810004246.0 | 申请日: | 2008-01-24 |
公开(公告)号: | CN101221577A | 公开(公告)日: | 2008-07-16 |
发明(设计)人: | 杨绍明;葛聪;马龙 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 内存 数据库 存盘 加载 方法 | ||
技术领域
本发明涉及移动通信领域的数据库,尤其涉及一种实现内存数据库表存盘和加载的方法。
背景技术
在移动通信技术应用中,需要创建多个内存表以存放业务应用所需要的数据配置信息。为了保存配置数据,需要将配置数据存盘。在其它单板或系统需要时,可从磁盘加载而不需要再重新配置。随着业务应用功能的扩充,数据库应用所需的数据量剧增,体现在两方面:一是表数目越来越多,二是表容量扩充,耗用的内存、外存空间越来越大。
原数据库的存盘机制采用非压缩机制存档,存档文件大小为各数据表的最大需求空间之和,与具体表的实际记录数无关。单张数据表,即使内存中该表无数据记录,存盘后,在数据库存档文件中,也按最大表容量占用外设空间。随着目前应用导致的数据扩充,而磁盘容量却没有增加的的情况下,在磁盘上可供数据库存盘的剩余空间越来越少。在外场应用中已多次出现外设容量不够导致存盘失败的故障。
发明内容
本发明提供一种实现内存数据库表存盘和加载的方法,以解决磁盘容量不足的问题。
为了解决上述技术问题,本发明提供一种实现内存数据库表存盘的方法,包括如下步骤:
(1)在进行内存数据库表存盘时,将有记录的内存表数据加载到内存缓冲区;
(2)创建表存盘文件并向表存盘文件中写入表注册信息;
(3)计算所述内存表数据的校验和;
(4)对所述内存表数据进行分块压缩并将压缩结果和所述校验和写入对应的表存盘文件。
本发明所述方法,其中,
步骤(4)中,以分块压缩方式写入数据时,根据分决时保持记录完整性的原则计算压缩块的大小:即根据最大压缩块大小除以表的记录长度,得到最多的记录数,然后以此记录数乘以记录长度来获取压缩块的大小;所述压缩结果包括压缩块大小和压缩块个数。
本发明所述方法,其中,
步骤(2)中,创建表存盘文件时以表名为存盘文件名,并加一文件后缀。
本发明所述方法,其中,
步骤(4)中,在存盘过程中按偏移量进行逐块地写入,全部分块写入之后进行延时。
进一步地,
所述内存数据库表存盘后的结构包括:
数据N,表示压缩块的个数;
数据校验和;
文件有效性结构体,用于记录各N个压缩块的大小;
各个压缩块的数据,其中第一个压缩块是表的结构说明的注册信息压缩块,其后是表的数据的各压缩块。
进一步地,所述N为0或超过最大压缩块个数都视为此数据无效。
本发明还提供一种实现如上所述方法存盘的内存数据库表加载的方法,包括如下步骤:
(a)读取内存表注册结构数据;
(b)分块读取指定表的压缩内存表数据到内存缓冲区,并进行解压缩;
(c)待所有分块数据都解压缩完毕,将内存缓冲区的数据加载到内存表中。
本发明所述加载的方法,其中,
步骤(a)中,根据压缩块个数计算文件有效性结构数据的长度,然后依此长度读取文件有效性结构数据,即数据校验和与各压缩块大小。
本发明所述加载的方法,其中,
步骤(c)中,在加载过程中,将缓冲区中表的注册信息与当前表的注册信息中的最大数据量对比,如果缓冲区中表的记录数与记录长度之积大于当前表的表容量与记录长度之积,则以当前表的数据量为准作为需要加载的数据量,否则仍以磁盘中的数据量作为需要加载的数据量。
本发明所述加载的方法,其中,
步骤(c)中,对解压后的表数据进行校验和计算,将计算结果与读取的校验和比较,如果一致,认为数据正确,否则数据错误。
本发明所述方案可以根据内存表的实际表数据内容进行存盘,在存盘过程中加以分块压缩处理,节约了磁盘空间,加快了存盘的速度,也可进行版本回退的处理。
附图说明
图1是本发明应用实例一种磁盘文件的存盘结构示意图;
图2是本发明应用实例将一个表的数据内容写入到磁盘的流程示意图;
图3是本发明应用实例将图2中存盘的磁盘文件加载到内存缓冲区的流程示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810004246.0/2.html,转载请声明来源钻瓜专利网。