[发明专利]一种程序执行方法在审
| 申请号: | 201410389425.6 | 申请日: | 2014-08-08 |
| 公开(公告)号: | CN104156212A | 公开(公告)日: | 2014-11-19 |
| 发明(设计)人: | 毛力 | 申请(专利权)人: | 四川九成信息技术有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 杨春 |
| 地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 程序 执行 方法 | ||
技术领域
本发明涉及程序执行方法,特别涉及一种嵌入式系统的程序执行方法。
背景技术
NAND Flash存储器已广泛应用于各类嵌入式系统,具有读写性能高、非易失性、低功耗、高密度和良好的抗震性等优势。在用于环境在线分析的嵌入式设备中,一般采用NAND来存储传感器网络所感测的指标信息。同时,一些嵌入式系统如实时环境监测系统需要感测和存储大量的数据,数据库作为一种高效的数据管理工具,在嵌入式系统中使用数据库将成为一种趋势。
目前成熟的数据库都是应用于磁盘存储系统,大部分数据库采用树形索引结构,以减少数据库更新和检索时对磁盘的访问,然而,NAND Flash读写以页为单位,写入前必须先进行擦除。如果直接将传统磁盘的树索引结构应用于NAND Flash,对于数据库大量的细粒度更新,必须擦除索引所在的块然后重新写入,导致数据库的更新效率低。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种程序执行方法,包括:
当对AVL树索引结点进行更新时,在日志缓存产生一条缓存日志,将属于同一结点的日志归为一个结点日志组;
当日志缓存被写满时,以结点日志组为单位进行组合,将缓存的日志写入Flash的日志存储区;
在对经过更新操作分散在日志存储区多个页记录内的日志进行遍历之前,在内存中建立结点日志查找表,记录结点和结点日志所在Flash页之间的映射关系;
对结点进行日志整合,将日志存储区中属于同一结点的所有日志解析合并为一个完整的AVL树结点,并写入到结点逻辑区中。
优选地,所述日志缓存和结点缓存位于嵌入式系统内存中;日志存储区和结点逻辑区存储于嵌入式系统的NAND Flash中。
优选地,所述日志存储区中索引结点以日志的方式进行存储,每次以页长度为单位进行写入;索引结点包含日志部分和逻辑部分,索引检索时通过结点日志查找表读取结点日志部分,并将日志部分和逻辑部分合并为结点完整的信息,将最近访问的索引结点缓存在结点缓存中。当结点缓存满时,根据结点访问次数、结点最近访问时间和从Flash中读取结点的代价来替换结点。
优选地,当日志缓存满时,将日志从日志缓存写入日志存储区采用以下步骤进行:
步骤1:按照n个结点日志组的大小降序排序得到序列S={s1…sn},如果单个结点日志组大于一页,将大于部分的日志写入日志存储区,剩余部分作为该结点日志组重新排序;
步骤2:取出S中第1个元素s1,即最大的日志组,写入虚拟的Flash页vp,更新该虚拟页剩余容量sp为sp-s1;
步骤3:取出S中第i个元素si,遍历已有的虚拟页vp,查找剩余容量sp大于si且sp-si最小的虚拟页,将该si写入该虚拟页并更新sp,如果没有满足条件的虚拟页,将该日志组写入新的虚拟页;
步骤4:i增1,重复步骤3,直到i=n;
步骤5:将所有的虚拟页vp写入Flash。
优选地,所述结点日志查找表,维护了结点和日志所在Flash页面之间的对应关系,该结点日志查找表初始化为一个固定大小的数组,每个数组元素维护一个结点链表,通过散列映射的方式将结点映射到数组的相应位置,通过结点日志查找表,该路径上的所有结点均通过散列表査出其在日志中的位置,如果日志页中含有同一结点的日志,则这些日志页组成该结点的日志链表,结点链表上每个元素都有一个指针指向其日志页组成的链表。
本发明相比现有技术,具有以下优点:
减少数据库更新时写NAND Flash的次数,保证索引的更新效率,和数据库的检索性能。
附图说明
图1是根据本发明实施例的程序执行方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川九成信息技术有限公司,未经四川九成信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410389425.6/2.html,转载请声明来源钻瓜专利网。





