[发明专利]一种SQLite空闲链表节点的解析方法和装置有效
| 申请号: | 201110443733.9 | 申请日: | 2011-12-27 |
| 公开(公告)号: | CN102591941A | 公开(公告)日: | 2012-07-18 |
| 发明(设计)人: | 陈明辉;方均滩;吴世雄 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京恒都律师事务所 11395 | 代理人: | 何自刚 |
| 地址: | 361008 福建省厦门*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 sqlite 空闲 节点 解析 方法 装置 | ||
1.一种SQLite空闲链表节点的解析方法,其特征在于,包括:
读取SQLite空闲链表节点;
从所述空闲链表节点中查找所有满足预设条件的记录关键点;
对上述关键点进行记录重组;
其中,所述记录关键点为4个字节组成的二元组<NFP,FTL>,所述预设条件为:
value(NFP)>addr(NFP)
并且
value(FTL)∈(0,PSZ-addr(NFP)]
NFP表示指向下一个空闲节点的指针,由2个字节组成;
FTL是NFP后面的2个字节,表示该空闲节点的大小;
value(NFP)表示NFP指向的位置;
addr(NFP)表示NFP本身的偏移地址;
value(FTL)表示该空闲节点的大小;
PSZ表示SQLite数据库中数据页的大小。
2.如权利要求1所述的方法,其特征在于,所述查找记录关键点的方法具体为:
将所述空闲链表节点的偏移地址的初始值设置为0;
从该空闲链表节点中的当前偏移地址处开始读取4个字节,判断是否满足上述2个条件,若是,则当前偏移地址位置对应的二元组<NFP,FTL>为记录关键点;
当前偏移地址增1,重复上述判断步骤,直至当前偏移地址到达该空闲链表节点的末端。
3.如权利要求1所述的方法,其特征在于,还包括对所述所有关键点进行如下处理的步骤:若关键点<NFPi,FTLi>记录重组或记录碎片标记不成功,根据碎片特征调整关键点<NFPi,FTLi>的二元组信息,消除可能存在的关键点碎片,然后进行记录重组或记录碎片标记。
4.如权利要求3所述的方法,其特征在于,还包括对所述关键点按从后到前的顺序进行如下伪关键点识别处理的步骤:
若关键点<NFPi,FTLi>重组不成功,且具备碎片重组条件,则进一步判断<NFPi-1,FTLi-1>是否为重组不成功的节点,若是,将节点<NFPi,FTLi>向前与节点<NFPi-1,FTLi-1>合并,对合并后的节点<NFPi-1,FTLi-1>进行记录重组或记录碎片标记,若不能满足记录重组或者记录碎片重组的条件,则拆开合并后的节点<NFPi-1,FTLi-1>,对<NFPi,FTLi>进行记录碎片重组;
若关键点<NFPi,FTLi>重组不成功且不具备碎片重组条件,则进一步判断<NFPi-1,FTLi-1>是否为重组成功的节点;
若<NFPi-1,FTLi-1>是重组成功的节点,则检查<NFPi,FTLi>是否为合并过的节点,对于合并节点,拆开合并节点,从倒数第二个被合并节点开始重复上述伪关键点识别处理过程;
若<NFPi-1,FTLi-1>是重组不成功的节点,将节点<NFPi,FTLi>向前与节点<NFPi-1,FTLi-1>合并,对合并后的节点<NFPi-1,FTLi-1>用权利要求3所述的方法进行记录重组、记录碎片标记和关键点碎片消除处理,当合并后节点重组不成功、不具备碎片重组条件、且<NFPi-1,FTLi-1>的原始状态为碎片时,将合并节点<NFPi-1,FTLi-1>拆开,从倒数第二个被合并节点开始重复上述伪关键点识别处理过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110443733.9/1.html,转载请声明来源钻瓜专利网。





