首页> 中国专利> 嵌入式数据库同步到flash数据库的方法和装置

嵌入式数据库同步到flash数据库的方法和装置

摘要

本发明提出嵌入式数据库同步到flash数据库的方法,包括步骤:创建内存数据库,预设更新时间;将flash数据库的数据,同步到内存数据库;获取嵌入式数据库的数据到内存数据库,并设置同步数据池;当更新时间到时,遍历同步数据池;内存数据库数据发生变化,则获取发生变化的数据将发生变化的数据更新到flash数据库。本发明还提出嵌入式数据库同步到flash数据库的装置,可以减少对flash设备的频繁操作,提高flash设备的寿命,提高嵌入式数据库同步到flash数据库的速度。

著录项

  • 公开/公告号CN102929983A

    专利类型发明专利

  • 公开/公告日2013-02-13

    原文格式PDF

  • 申请/专利权人 京信通信系统(中国)有限公司;

    申请/专利号CN201210397727.9

  • 发明设计人 陈元;

    申请日2012-10-18

  • 分类号G06F17/30;

  • 代理机构广州华进联合专利商标代理有限公司;

  • 代理人王茹

  • 地址 510663 广东省广州市广州科学城神舟路10号

  • 入库时间 2024-02-19 17:52:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-30

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2012103977279 申请日:20121018 授权公告日:20161116

    专利权的终止

  • 2016-11-16

    授权

    授权

  • 2013-03-20

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20121018

    实质审查的生效

  • 2013-02-13

    公开

    公开

说明书

技术领域

本发明涉及计算机数据处理领域,特别是涉及嵌入式数据库同步到flash数 据库的方法和装置。

背景技术

随着社会信息技术的发展,嵌入式数据库的应用越来越广泛,尤其在嵌入 式设备。嵌入式设备的最大特点是硬件资源缺少,Flash读写速度慢,但是性能 要求却越来越高。

现有的一种解决方法是采用内存数据库,在内存数据库中实现对数据的相 关操作,由于内存数据库速度快,因此大大改善了对数据库的操作问题。

内存数据库具有速度快的优点,可是设备一旦断电或异常重启,内存数据 库中的数据就会丢失;因此,需要将内存数据库数据及时同步保存到Flash数据 库,但是Flash读写速度慢的瓶颈问题是一个极大的制约。频繁的对Flash数据 库进行读写操作缩短Flash设备的寿命。

发明内容

本发明的目的在于提出嵌入式数据库同步到flash的方法及装置,可以减少 对flash设备的频繁操作,提高flash设备的寿命,提高嵌入式数据库同步到flash 数据库的速度。

为达到上述目的采用的技术方案是:

嵌入式数据库同步到flash数据库的方法,包括步骤:

创建内存数据库,以及预设更新时间;将flash数据库的数据,同步到内存 数据库;

获取嵌入式数据库的数据到内存数据库,并设置同步数据池;其中,所述 同步数据池用于标识内存数据库中数据是否变化以及数据变化的内容;

当更新时间到时,遍历同步数据池;若内存数据库中数据发生变化,则获 取内存数据库中发生变化的数据;

将内存数据库中发生变化的数据更新到所述flash数据库。

以及,嵌入式数据库同步到flash数据库的装置,包括:初始化单元、第一 获取单元、遍历单元、第二获取单元以及更新单元;

其中,所述初始化单元创建内存数据库;以及,预设更新时间;以及,将 flash数据库的数据,同步到内存数据库;

所述第一获取单元获取嵌入式数据库的数据到内存数据库,并设置同步数 据池;其中,所述同步数据池用于标识内存数据库中数据是否变化以及数据变 化的内容;

当更新时间到时,所述遍历单元遍历同步数据池;若内存数据库中数据发 生变化,则通知所述第二获取单元获取内存数据库中发生变化的数据;

所述更新单元将所述第二获取单元获取的内存数据库中发生变化的数据更 新到所述flash数据库。

本发明提供的嵌入式数据库同步到flash数据库的方法,采用了“内存 -Flash”数据模型,即内存数据库和Flash数据库,内存数据库临时保存系统 配置的参数,系统所有操作都在内存数据库中进行,Flash数据库永久保存内存 数据库的数据,它们之间有同步交互机制保证数据不会丢失,同时可以减少对 flash设备的频繁操作,提高flash设备的寿命,提高嵌入式数据库同步到flash 数据库的速度。

附图说明

图1为本发明方法的一个实施例流程图;

图2为本发明装置的一个结构示意图;

图3为本发明装置的另一个结构示意图;

图4为本发明装置的另一个结构示意图。

具体实施方式

为便于理解,下面将结合附图进行阐述。

本发明提出嵌入式数据库同步到flash数据库的方法,请参考图1,包括步骤:

S101、创建内存数据库,预设更新时间,以及将flash数据库的数据,同步 到内存数据库;

S102、获取嵌入式数据库的数据到内存数据库,并设置同步数据池;

其中,同步数据池用于标识内存数据库中数据是否变化以及数据变化的内 容。

具体的,同步数据池可以包括:表标识、参数标识、表同步标识以及参数 同步标识;各个字段的描述如下:

表标识:内部生成的全局唯一标识内存数据库各个数据表的ID;

参数标识:内部生成的唯一标识内存数据库数据表ID为[表标识]的参数记 数据记录ID;

表同步标识:0或1,为0则表示该数据表数据没有发生变化,为1则表 示该数据表数据发生变化,需要检查[参数同步标识]是否发生变化;

参数同步标识:0或1,为0则表示[表标识]下的[参数标识]的数据没有发生 变化;为1则表示[表标识]下的[参数标识]的数据发生变化。

S103、当更新时间到时,遍历同步数据池;

S104、判断内存数据库数据是否变化;

判断内存数据库数据是否变化,若是,则进行步骤S105;若否,则返回步 骤S102进行获取嵌入式数据库的数据到内存数据库,并设置同步数据池的步骤。

S105、获取内存数据库中发生变化的数据;

S106、将内存数据库中发生变化的数据更新到flash数据库。

配合同步数据池字段标识,步骤S103至S106的步骤可按如下步骤的进行 具体操作:

即同步数据任务首先要遍历检查{同步数据池}的标志:[表同步标识、参数 同步标识],如果[表同步标识]发生变化则遍历[参数同步标识]是否发生变化, 如果发生变化则表示该参数数据被修改需要同步,这时同步数据任务根据[表标 识、参数标识]为关键字查询内存数据库的数据,然后转换成SQL语句放进SQL 集合里,然后执行SQL集合:begin+SQL1+……+SQLn+commit,将内存数据库 有变化的数据快速保存到Flash数据库里。

本发明提供的嵌入式数据库同步到flash数据库的方法,采用了“内存 -Flash”数据模型,即内存数据库和Flash数据库,内存数据库临时保存系统 配置的参数,系统所有操作都在内存数据库中进行,Flash数据库永久保存内存 数据库的数据,它们之间有同步交互机制保证数据不会丢失,同时可以减少对 flash设备的频繁操作,提高flash设备的寿命,提高嵌入式数据库同步到flash 数据库的速度。

在其中一个实施方式中,上述步骤S102中获取嵌入式数据库的数据到内存 数据库,并设置同步数据池的步骤具体为:

获取嵌入式数据库的数据到内存数据库;

比较从嵌入式数据库中获取的最新数据与最近一次保存在内存数据库中的 数据;其中,若此时是第一次从嵌入式数据库中获取数据,则最近一次保存在 内存数据库中的数据为从flash数据库同步的数据,将从flash数据库同步的数据 和从嵌入数据库中获取的数据进行比较;若是第二次从嵌入式数据库中获取数 据,则最近一次保存在内存数据库中的数据为第一次从嵌入式数据库中获取数 据,将第一次从嵌入式数据库中获取数据和第二次从嵌入式数据库中获取数据 进行比较;以此类推;

若发生变化,则在同步数据池中,设置数据发生变化,并记录数据变化的 内容;

若未发生变化,则在同步数据池中,设置数据未变化,并将数据变化的内 容记为空。

配合同步数据池的字段描述,更新同步数据池,即[表标识、参数标识]设 置为参数所属的表标识和参数记录标识,[表同步标识、参数同步标识]设置 为1。更新的数据如果不存在则进行插入操作,如果存在则进行更新操作。

在其中一个实施方式中,同步数据池还用于记录内存数据库中数据更新的 时间,当达到预定的时间间隔时,数据没有变化,则清空同步数据池的数据; 这样可以节省内存空间,更新的时间可用[同步时间]字段标识。

在上述的更新同步数据库进行时,[同步时间]设置为系统当前时间戳。

另外,由于对Flash数据库的操作是一种IO操作,在嵌入式系统中,执行 I/O操作是一种极为消耗资源的操作,当资源不足时,甚至会引起系统崩溃,反 而导致内存数据库中数据的丢失。因此,可以对上述实施例作如下改进:

在其中一个实施方式中,上述步骤S101之后、更新flash数据库之前还包 括步骤:

S107、当内存数据变化时,系统获取CPU占用率和内存占用率;

S108、当的CPU占用率和内存占用率均满足条件时,将的内存变化数据更 新到flash数据库中。

具体地,

若检测系统的CPU占用率低于第一预设占用率,以及检测系统的内存占用 率低于第二预设占用率:

这时系统资源较充裕,该同步数据锁才会被释放,此时同步数据任务可以 获得同步数据锁,内存数据库中发生变化的数据转换成SQL(Structured Query  Language,结构化查询语言)语句,更新到flash数据库。保证了数据同步时系 统的稳定性。

若检测系统的CPU占用率高于第一预设占用率,或检测系统的内存占用率 高于第二预设占用率:

这时系统正在繁忙处理业务,同步数据锁已经被监控系统资源所占用,无 法写入Flash数据库,同步数据任务处于等待状态。直到检测系统的CPU占用 率低于第一预设占用率,以及检测系统的内存占用率低于第二预设占用率时, 同步数据锁才会被释放,内存数据方可更新至flash数据库中。

这样系统可避免对Flash数据库进行操作时导致发生IO异常导致系统不稳 定,保证了数据同步时系统的稳定性。

在以上实施例中,S107步骤不受限于步骤S102至S105。

为了提高系统的安全性,在上述步骤S106之后,包括步骤:

检测flash数据库是否更新成功;

若是,则在同步数据池中,设置内存数据库的数据为未变化,且记录更新 的时间,并返回上述S102进行获取嵌入式数据库的数据到内存数据库,并设置 同步数据池的步骤;

配合同步数据池的字段描述,即如果更新Flash数据库成功了,还要更新 同步数据池相应的记录字段:[表同步标识、参数同步标识]设置为0,[同步时 间]设置为当前时间戳。同步数据任务更数据完成后,还遍历检查同步数据池, 根据当前系统时间减去上次更新成功时间戳,如果CUP占用率高于第一预设值 或内存占用率高于第二预设值时,则要删除该条数据记录,以节省内存空间。

若否,则将flash数据库中的数据恢复为本次更新的前一次状态,并返回上 述S102进行获取嵌入式数据库的数据到内存数据库,并设置同步数据池的步骤, 保证了数据的完整性。

本发明还提出嵌入式数据库同步到flash数据库的装置,请参考图2,包括: 初始化单元201、第一获取单元202、遍历单元203、第二获取单元204、以及 更新单元205;

其中,初始化单元201创建内存数据库,以及预设更新时间;以及,将flash 数据库的数据,同步到内存数据库;

第一获取单元202获取嵌入式数据库的数据到内存数据库,并设置同步数 据池;其中,同步数据池用于标识内存数据库中数据是否变化以及数据变化的 内容;

当更新时间到时,遍历单元203遍历同步数据池,以检测同步数据池的数 据是否发生变化;

当内存数据库中数据发生变化时,则第二获取单元204获取内存数据库中 发生变化的数据;

更新单元205将所述第二获取单元204获取的内存数据库中发生变化的数 据更新到flash数据库。

其中,若内存数据库数据没有变化,系统返回第一获取单元202,重新获取 嵌入式数据库的数据到内存数据库,并设置同步数据池。

本发明提供的嵌入式数据库同步到flash数据库的方法,采用了“内存 -Flash”数据模型,即内存数据库和Flash数据库,内存数据库临时保存系统 配置的参数,系统所有操作都在内存数据库中进行,Flash数据库永久保存内存 数据库的数据,它们之间有同步交互机制保证数据不会丢失,同时可以减少对 flash设备的频繁操作,提高flash设备的寿命,提高嵌入式数据库同步到flash 数据库的速度。

在其中一个实施方式中,第一获取单元202获取嵌入式数据库的数据到内 存数据库,并设置同步数据池时,具体过程为:

获取嵌入式数据库的数据到内存数据库;

比较从嵌入式数据库中获取的最新数据与最近一次保存在内存数据库中的 数据,若发生变化,则在同步数据池中,设置数据发生变化,并记录数据变化 的内容;

若未发生变化,则在同步数据池中,设置数据未变化,并将数据变化的内 容记为空。

在其中一个实施方式中,为了可以节省内存空间、以及使得系统可以灵活 选择所需更新的数据,可对上述实施例做如下改进,请参考图3,嵌入式数据库 同步到flash数据库的装置还包括:定时单元206,定时单元206用于设置预定 的时间间隔;所述同步数据池还用于记录内存数据库中数据更新的时间,当达 到在定时单元206中预定的时间间隔时,数据没有变化,则第一获取单元202 清空同步数据池的数据,这样可以节省内存空间。

为了提高系统的稳定性,该嵌入式数据库同步到flash数据库的装置还包括 第三获取单元207和第一检测单元208:请参考图4,

作为一个实施方式,经过遍历单元203遍历,当内存数据库中数据发生变 化时,第三获取单元207获取系统CPU占用率和内存占用率;

具体的,当第一检测单元208检测到系统的CPU占用率低于第一预设占用 率,并且内存占用率低于第二预设占用率时,更新单元205将内存数据库中发 生变化的数据转换成SQL语句,更新到flash数据库。

若第一检测单元208检测到系统的CPU占用率高于第一预设占用率,或检 测系统的内存占用率高于第二预设占用率:

其中,第三获取单元207不一定要经遍历单元203遍历,具体地,第三获 取单元207不受限于在第一获取单元202、遍历单元203以及第二获取单元204 的数据变化时,进行系统CPU占用率和内存占用率的获取操作。

数据无法写入Flash数据库,同步数据任务处于等待状态。直到检测系统 的CPU占用率低于第一预设占用率,以及检测系统的内存占用率低于第二预设 占用率时,内存数据方可更新至flash数据库中。

在其中一个实施方式中,为了提高系统的安全性,可对上述实施例做进一 步改进,请参考图4,嵌入式数据库同步到flash数据库的装置还包括:第二检 测单元209;其中,第二检测单元209检测flash数据库是否更新成功;

若是,则在同步数据池中,通知第一获取单元202设置内存数据库的数据 未变化,且更新定时单元,并重新获取嵌入式数据库的数据到内存数据库;

若否,则通知更新单元205将flash数据库中的数据恢复为本次更新的前一 次状态,以及返回第一获取单元202重新获取嵌入式数据库的数据到内存数据 库。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和 改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附 权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号