[发明专利]一种XML文档的并行XPath查询方法、终端设备及存储介质有效
申请号: | 202011045242.4 | 申请日: | 2020-09-29 |
公开(公告)号: | CN112115302B | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 陈荣鑫;王智谨 | 申请(专利权)人: | 集美大学 |
主分类号: | G06F16/832 | 分类号: | G06F16/832 |
代理公司: | 厦门市精诚新创知识产权代理有限公司 35218 | 代理人: | 何家富 |
地址: | 361000 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 xml 文档 并行 xpath 查询 方法 终端设备 存储 介质 | ||
1.一种XML文档的并行XPath查询方法,其特征在于,包括以下步骤:
S1:获取输入的XML文档;
S2:对XML文档进行解析,并根据解析结果计算基于索引创建的代价估算所需的XML统计信息;
S3:根据解析结果和XML统计信息,并行创建XML文档的关系索引;步骤S3包括以下步骤:
S31:根据XML统计信息进行关系索引创建的总代价估算;
S32:根据关系索引创建的总代价估算结果,将解析的所有区间编码数据划分为数量与可用线程数量相同的区间编码数据块,使得各区间编码数据块之间实现关系索引创建时的计算负载均衡;
S33:针对每个划分后的区间编码数据块分别分配线程后,并行的为区间编码数据块的创建关系索引,最终得到输入的XML文档的关系索引;
S4:获取输入的XPath查询表达式;
S5:将XPath查询表达式转换为查询原语序列;
S6:根据创建的关系索引,使用查询原语序列中的每个查询原语按顺序对XML文档进行查询,且每个查询原语内部采用并行查询的方式进行查询;步骤S6包括以下步骤:
S61:针对查询顺序中的每一步对应的查询原语,根据XML统计信息和节点关系数进行代价估算;
S62:针对查询顺序中的每一步对应的查询原语,根据其并行效益计算所需线程数;
S63:根据代价估算的结果将查询原语划分成与所需线程数相同数量的查询原语数据块,以实现不同查询原语数据块查询时的计算负载均衡;
S64:根据计算的线程数对划分的查询原语数据块分配线程后,每个查询原语对应的查询原语数据块之间并行的根据XML文档的关系索引对XML文档进行查询,不同查询原语之间按顺序进行查询;
S7:输出最终的查询结果。
2.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:XML文档的解析结果为XML节点的区间编码,所需的XML统计信息包括每个根节点所在的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
3.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:总代价估算Cindex的计算公式为:
其中,N表示输入的XML文档中所有的XML节点数;表示节点u的关系数;分别表示以节点u作为根节点的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
4.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:并行为区间编码数据块的创建关系索引的方法为:将每个数据块的关系索引创建设定为一个计算任务,针对每个计算任务获得一个工作线程,采用同步计数器进行数据并行同步。
5.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:查询原语序列中的查询原语包括非过滤型原语和过滤型原语这两种类型;
当查询原语为非过滤型原语时,其代价估算计算公式为:
其中,Cnon_filter表示非过滤型原语的代价估算;表示节点u的关系数;Ccheck_nf表示使用一次非过滤型原语进行查询的开销;input表示使用非过滤型原语进行查询时输入的XML节点序列;
当查询原语为过滤型原语时,其代价估算计算公式为:
其中,input1表示使用过滤型原语进行查询时输入的待查询的XML节点序列,input2表示使用过滤型原语进行查询时输入的作为过滤条件的XML节点序列,Ninput2表示使用过滤型原语进行查询时输入的input2节点序列的节点总数,Ccheck_f表示使用一次过滤型原语进行查询的开销。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于集美大学,未经集美大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011045242.4/1.html,转载请声明来源钻瓜专利网。