[发明专利]一种基于B+树异步更新索引的读优化方法有效
申请号: | 201410697537.8 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104408128B | 公开(公告)日: | 2017-11-03 |
发明(设计)人: | 吴植民 | 申请(专利权)人: | 上海爱数信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海科盛知识产权代理有限公司31225 | 代理人: | 赵志远 |
地址: | 201112 上海市闵行*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 异步 更新 索引 优化 方法 | ||
1.一种基于B+树异步更新索引的读优化方法,其特征在于,包括以下步骤:
1)批量写索引,生成按存储区域编号序列化成数据流的索引缓存文件;
2)获取步骤1)中生成的所有索引缓存文件;
3)过滤并剔除步骤2)中获取的索引缓存文件中不完整或正在写的索引缓存文件;
4)判断步骤3)过滤后的索引缓存文件总个数是否满足发起异步更新的条件,若满足则继续执行步骤5),否则等待下一次执行步骤1);
5)分别读取步骤3)过滤后的各个索引缓存文件相同存储区域编号对应的存储区域的索引数据;
6)读取步骤5)中存储区域编号在索引库中对应的存储区域的索引数据;
7)将步骤5)中读取的索引数据及步骤6中读取的索引数据按B+树的规则组织成一棵B+树;
8)将步骤7)中生成的B+树序列化成二进制流;
9)将步骤8)执行后的数据覆盖更新到步骤5)中存储区域编号在索引库中对应的存储区域并更新元数据;
10)判断步骤5)中的索引缓存文件是否读到文件尾,若为否则返回步骤5)并将步骤5)中的存储区域编号加1,若为是则继续执行步骤11);
11)删除步骤3)过滤后的索引缓存文件及步骤3)过滤掉的不完整索引缓存文件;
所述的步骤1)具体为:
1.1)将各个存储区域编号在内存中对应的索引进行排序;
1.2)将步骤1.1)中各个存储区域编号对应排序后的索引序列化成数据流;
1.3)将步骤1.2)中的数据流按存储区域编号按从小到大的顺序组合成唯一的一个数据流;
1.4)将步骤1.3)执行后的数据流写入到磁盘生成一个索引缓存文件。
2.根据权利要求1所述的一种基于B+树异步更新索引的读优化方法,其特征在于,所述的步骤5)、6)中的存储区域编号与步骤1.3中存储区域编号一一对应。
3.根据权利要求1所述的一种基于B+树异步更新索引的读优化方法,其特征在于,所述的步骤7)具体为:
7.1)建立一个空的B+树;
7.2)将步骤5)中读取的索引数据及步骤6)中读取的索引数据依次解析成索引;
7.3)将步骤7.2)中解析的索引依次插入到步骤7.1)中建立的B+树中。
4.根据权利要求1所述的一种基于B+树异步更新索引的读优化方法,其特征在于,所述的步骤8)具体为:
8.1)将步骤7)生成的B+树的节点中各个值及值对应的下一节点信息依次序列化成二进制流;
8.2)将步骤7)生成的B+树从根节点开始按照广度遍历的方式依次按步骤8.1)中方法序列化成二进制流;
8.3)将步骤8.2)中序列化后的二进制流对应各个节点中各个值对应的下一节点信息,修改为下一节点在二进制流中偏移位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数信息技术股份有限公司,未经上海爱数信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410697537.8/1.html,转载请声明来源钻瓜专利网。