发明名称 |
嵌入式内存数据库的内存页面管理调度方法 |
摘要 |
本发明提供一种嵌入式内存数据库的内存页面管理调度方法,内存数据库的内存空间划分成以页为单位的多个块,且每个页的大小与数据库磁盘文件页的大小完全相同,每个磁盘文件页与内存页建立映射,包括以下步骤:步骤1:系统获取要读写的数据库文件的偏移量,并进行偏移量与页号映射。步骤2:检测是否有哈希冲突,如果有则进行相应的哈希冲突解决处理;如果没有则进入下一步骤;步骤3:检查内存中是否有可以装载数据的页面,如果没有则从内存中选择出可以数据交换的内存页;如果有则进入下一步骤;步骤5:将新的数据内容写到内存页中。通过本发明可以使嵌入式内存数据库摆脱了嵌入式设备内存资源的限制。 |
申请公布号 |
CN102402622B |
申请公布日期 |
2015.09.09 |
申请号 |
CN201110447991.4 |
申请日期 |
2011.12.27 |
申请人 |
北京人大金仓信息技术股份有限公司 |
发明人 |
寇立涛;杨经正;陈东;李恒;刘建立 |
分类号 |
G06F17/30(2006.01)I;G06F12/02(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
北京汲智翼成知识产权代理事务所(普通合伙) 11381 |
代理人 |
陈曦;郭亚芳 |
主权项 |
一种嵌入式内存数据库的内存页面管理调度方法,将内存数据库的内存空间划分成以页为单位的多个块,且每个页的大小与数据库磁盘文件页的大小完全相同,每个磁盘文件页与内存页建立映射,其特征在于包括以下步骤:步骤1:获取要读写的数据库文件的偏移量,并进行偏移量与页号映射;其中根据 所述偏移量计算得到的哈希值作为哈希数组的下标,通过该 哈希值得到 所述偏移量对应的缓冲区页;步骤2:检测是否有哈希冲突,如果有则进行相应的哈希冲突解决处理;如果没有则进入下一步骤;其中,通过文件偏移地址计算出对应的哈希值,通过此哈希值获得对应页的一个冲突链表,如果此冲突链表不为空并且冲突链表中没有一项的偏移地址与要装载页的偏移地址相同,判定为检测到哈希冲突;检查当前页的文件偏移地址域是否与 所述偏移量相同,如相同则说明当前页即为已载入的文件偏移地址所在的页;否则按页的冲突域查找冲突链中的下一个页;当下一页的冲突域的值为0,说明是冲突页链的最后一个;如果页的文件偏移地址域与要访问的偏移地址仍然不同,说明要访问的偏移地址所在的页没有载入;所述哈希冲突解决处理是指分配新内存页,将新内存页作为冲突链表的第一个节点,并且让当前查找的哈希数组项指向新页的页号;步骤3:检查内存中是否有可以装载数据的页面,如果没有则根据页面调度算法从内存中选择出可以数据交换的内存页;如果有则进入下一步骤;步骤4:根据页的使用情况决定内存页的数据库是否需要写回磁盘,并进入下一步骤;步骤5:将新的数据内容写到内存页中。 |
地址 |
100085 北京市海淀区上地西路8号院4号楼601室 |