发明名称 支持多进程的嵌入式的树型数据库技术
摘要 本发明是一种支持多进程的嵌入式的树型数据库技术,包括程序初始流程和水印操作流程,采用共享内存机制、二叉树遍历与序列化存储技术等,查询效率高、功能安全可靠、轻巧而灵活。
申请公布号 CN101551808B 申请公布日期 2011.04.13
申请号 CN200910015517.7 申请日期 2009.05.13
申请人 山东中创软件商用中间件股份有限公司 发明人 王进;石磊;刘毅枫;黄三伟;刘宗福;刘春
分类号 G06F17/30(2006.01)I;G06F9/52(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 济南舜源专利事务所有限公司 37205 代理人 苗峻
主权项 一种支持多进程的嵌入式的树型数据库存取方法,其特征在于包括程序初始流程和水印操作流程,水印信息是各个文件的摘要信息,数据库中存储各个文件的水印,嵌入式的树形数据库指:不需要启动独立的进程,而是直接由其他进程调用统一的接口,从而实现数据库内嵌到其调用进程中去;其中,程序初始流程为:1‑1)初始化读写锁,使用信号量实现进程之间的互斥;1‑2)加载数据库文件与缓存文件中的数据到共享内存,即将磁盘上的数据解析到内存中对应的二叉树中;1‑3)启动同步线程,当更新的数据内容大于一个限值时,同步线程就会将共享内存的数据同步到磁盘上,实现持久化存储;水印操作流程为:2‑1)加读或写锁,实现进程间的互斥;2‑2)查询或更新共享内存数据:如果是读操作,遍历二叉树,取出数据库中存储的文件水印并返回;如果是写操作,先更新共享内存的数据;2‑3)更新内容写入缓存:如果是写操作,在更新共享内存中的数据之后,保存到缓存文件;上述第1‑2)步中加载数据库文件与缓存文件中的数据到共享内存是这样实现的:它包括共享内存、内容缓存和二叉树序列化存储,其中,共享内存为:在非Windows平台上通过shmget和shmat函数实现共享内存的创建与分配置;在Windows平台上通过CreateFileMapping和MapViewOfFile函数实现共享内存的创建与分配置;内容缓存为:将某一段时间对数据库文件的更新记录写到某一文件中,等到更新到某一规模,再统一将数据写到数据库文件中去;二叉树序列化存储为:采用流的方式,通过《和》操作符重载,来实现数据的序列化存储。
地址 250014 山东省济南市千佛山东路41-1号