[发明专利]一种利用向量指令并行处理文件索引的方法及装置在审

专利信息
申请号: 201410662785.9 申请日: 2014-11-19
公开(公告)号: CN104331497A 公开(公告)日: 2015-02-04
发明(设计)人: 王东琳;陈易龙;蒿杰;林建海;舒琳;宋亚芳;穆敬彬;梁小龙 申请(专利权)人: 中国科学院自动化研究所
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 中科专利商标代理有限责任公司 11021 代理人: 宋焰琴
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 利用 向量 指令 并行 处理 文件 索引 方法 装置
【权利要求书】:

1.一种并行处理文件索引数据的方法,包括批量建立文件索引和并行查询文件索引,其中:

所述批量建立文件索引的方法,步骤如下:

步骤101:计算数据表中数据的索引键值,对全部数据按其索引键值升序排序;

步骤102:分配所有叶子节点所需的存储空间,所述叶子节点数量根据所述数据的大小确定;

步骤103:从数值最小的索引键值开始,使用SIMD指令一次加载多个索引键值,将数据依次填充到所有叶子节点;

步骤104:分配上一层内部节点所需的存储空间,所述内部节点的个数与下一层节点数和索引树的度数有关;

步骤105:按步骤3的方法建立内部节点,每个节点的键值为其对应的下一层节点的最大值;

步骤106:按照步骤4和步骤5的方法继续构建上一层内部节点,直到上一层的节点数为1,此节点为根节点,索引树建立完成;

所述并行查询索引的方法,步骤如下:

步骤201:在内存中建立缓存池,用一个查询队列暂时保存所收到的所有查询请求;

步骤202:当查询队列的长度达到预定阈值,将其从缓存池取出,并做排序,形成有序的待查询队列;

步骤203:从有序查询队列中依次取得待查询项,从所建立索引树的根节点开始,依次查找,在内部节点和叶子节点内利用SIMD方法并行查找待查询项。

2.如权利要求1所述的方法,其中,步骤102中叶子节点数如下计算:

叶子节点数=(N*B)/(α*n)

其中,N为待处理索引项的数量,B为所以那些的数据宽度,a为叶子节点的填充因子,n为叶子节点的容量。

3.如权利要求1所述的方法,其中,步骤104中,内部节点的数量如下计算:

内部节点数=(下一层节点数)/g

其中,g为索引树的度数。

4.如权利要求1所述的方法,其中,步骤202中排序后的查询队列中,相邻的待查询项分布在所述索引树的一个或相邻的多个叶子节点中。

5.如权利要求1所述的方法,其中,步骤203中,在内部节点和叶子节点内利用SIMD方法并行查找待查询项具体包括:步骤301:根据待查询项的键值构造查询向量Ms=kk…k,m个k,m为SIMD指令能同时处理的索引项个数;

步骤302:更新当前地址A0=A0+Ainc,并从当前地址A0开始,加载索引数据向量,所述A0的初始值为节点的初始地址,Ainc为地址增量,初始值为0,所加载的索引向量为:

M0=k0k1…km-1

步骤303:利用SIMD比较指令,计算查找表掩码值:

Mmask=SIMD_Greater(Ms,M0)

由于节点内数据是升序排列的,Mmask的值由如下公式决定:

步骤304:判定Mmask的值,若为全1,计算地址增量Ainc=R/8,并转步骤2重新查询;若为全0,则所述索引项在前一个索引向量中,计算地址增量Ainc=-R/8;若Mmask的值非全0或全1,根据查找表获取索引项所在位置,进而返回查询结果;其中,R为向量寄存器的数据宽度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院自动化研究所,未经中国科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410662785.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top