CN112115302A - 一种XML文档的并行XPath查询方法、终端设备及存储介质 - Google Patents

一种XML文档的并行XPath查询方法、终端设备及存储介质 Download PDF

Info

Publication number
CN112115302A
CN112115302A CN202011045242.4A CN202011045242A CN112115302A CN 112115302 A CN112115302 A CN 112115302A CN 202011045242 A CN202011045242 A CN 202011045242A CN 112115302 A CN112115302 A CN 112115302A
Authority
CN
China
Prior art keywords
query
primitive
xml
parallel
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011045242.4A
Other languages
English (en)
Other versions
CN112115302B (zh
Inventor
陈荣鑫
王智谨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jimei University
Original Assignee
Jimei University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jimei University filed Critical Jimei University
Priority to CN202011045242.4A priority Critical patent/CN112115302B/zh
Publication of CN112115302A publication Critical patent/CN112115302A/zh
Application granted granted Critical
Publication of CN112115302B publication Critical patent/CN112115302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/832Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种XML文档的并行XPath查询方法、终端设备及存储介质,该方法中包括:S1:获取输入的XML文档;S2:对XML文档进行解析,并根据解析结果计算基于索引创建的代价估算所需的XML统计信息;S3:根据解析结果和XML统计信息,并行创建XML文档的关系索引;S4:获取输入的XPath查询表达式;S5:将XPath查询表达式转换为查询原语序列;S6:根据创建的关系索引,使用查询原语序列中的每个查询原语按顺序对XML文档进行查询,且每个查询原语内部采用并行查询的方式进行查询;S7:输出最终的查询结果。本发明采用基于并行效益计算的线程选择策略,该策略以基于XML节点关系数的代价估算为基础,为线程的合理有效利用提供了保证。

Description

一种XML文档的并行XPath查询方法、终端设备及存储介质
技术领域
本发明涉及XML文档查询领域,尤其涉及一种XML文档的并行XPath查询方法、终端设备及存储介质。
背景技术
XML作为通用数据交换和存储的标准在各个领域里广为应用,XPath查询是XML数据处理中的关键部分,其性能直接影响到XML的处理能力。近年来随着多核计算环境的普及,充分利用多线程并行计算以获取应用处理性能的提升已成为一种常用的优化设计途径。并行XPath查询技术能为高性能的XML数据处理提供有力支持。
并行XPath查询技术一般需要通过特定的代价估算获取查询负载的计算量和并行化开销,据此进行负载划分或并行查询计划的优化选择。由于XML数据的半结构化特点以及XPath查询的复杂性,现有的技术中,代价估算难以准确反映实际的计算量,依照代价进行的负载划分容易造成负载不均衡,导致并行性能受限。此外,由于缺少对线程工作效益评估机制,在较小计算量的情况下,却利用所有可用线程进行并行处理,导致并行化所能获得的效益被过多的线程同步开销抵消。
发明内容
为了解决上述问题,本发明提出了一种XML文档的并行XPath查询方法、终端设备及存储介质。
具体方案如下:
一种XML文档的并行XPath查询方法,包括以下步骤:
S1:获取输入的XML文档;
S2:对XML文档进行解析,并根据解析结果计算基于索引创建的代价估算所需的XML统计信息;
S3:根据解析结果和XML统计信息,并行创建XML文档的关系索引;
S4:获取输入的XPath查询表达式;
S5:将XPath查询表达式转换为查询原语序列;
S6:根据创建的关系索引,使用查询原语序列中的每个查询原语按顺序对XML文档进行查询,且每个查询原语内部采用并行查询的方式进行查询;
S7:输出最终的查询结果。
进一步的,XML文档的解析结果为XML节点的区间编码,所需的XML统计信息包括每个根节点所在的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
进一步的,XML节点的区间编码采用6元组表示,包括六部分组成成分,分别为:节点ID值、节点类型、节点的标签名、节点在文档中的开始位置、节点在文档中的结束位置和节点的层次值。
进一步的,步骤S3包括以下步骤:
S31:根据XML统计信息进行关系索引创建的总代价估算;
S32:根据关系索引创建的总代价估算结果,将解析的所有区间编码数据划分为数量与可用线程数量相同的区间编码数据块,使得各区间编码数据块之间实现关系索引创建时的计算负载均衡;
S33:针对每个划分后的区间编码数据块分别分配线程后,并行的为区间编码数据块的创建关系索引,最终得到输入的XML文档的关系索引。
进一步的,总代价估算Cindex的计算公式为:
Figure BDA0002707773420000031
Figure BDA0002707773420000032
其中,N表示输入的XML文档中所有的XML节点数;
Figure BDA0002707773420000033
表示节点u的关系数;
Figure BDA0002707773420000034
分别表示以节点u作为根节点的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
进一步的,并行为区间编码数据块的创建关系索引的方法为:将每个数据块的关系索引创建设定为一个计算任务,针对每个计算任务获得一个工作线程,采用同步计数器进行数据并行同步。
进一步的,步骤S6包括以下步骤:
S61:针对查询顺序中的每一步对应的查询原语,根据XML统计信息和节点关系数进行代价估算;
S62:针对查询顺序中的每一步对应的查询原语,根据其并行效益计算所需线程数;
S63:根据代价估算的结果将查询原语划分成与所需线程数相同数量的查询原语数据块,以实现不同查询原语数据块查询时的计算负载均衡;
S64:根据计算的线程数对划分的查询原语数据块分配线程后,每个查询原语对应的查询原语数据块之间并行的根据XML文档的关系索引对XML文档进行查询,不同查询原语之间按顺序进行查询。
进一步的,查询原语序列中的查询原语包括非过滤型原语和过滤型原语这两种类型;
当查询原语为非过滤型原语时,其代价估算计算公式为:
Figure BDA0002707773420000041
其中,Cnon_filter表示非过滤型原语的代价估算;
Figure BDA0002707773420000042
表示节点u的关系数;Ccheck_nf表示使用一次非过滤型原语进行查询的开销;input表示使用非过滤型原语进行查询时输入的XML节点序列;
当查询原语为过滤型原语时,其代价估算计算公式为:
Figure BDA0002707773420000043
其中,input1表示使用过滤型原语进行查询时输入的待查询的XML节点序列,input2表示使用过滤型原语进行查询时输入的作为过滤条件的XML节点序列,Ninput2表示使用过滤型原语进行查询时输入的input2节点序列的节点总数,Ccheck_f表示使用一次过滤型原语进行查询的开销。
进一步的,根据并行效益计算所需的线程数的方法为:在满足可用线程数的约束条件下,获取使得并行效益最小时的线程数;
并行效益Gp/s的计算公式为:
Gp/s=1/T+(Cinital+T×Cbarrier)/Cserial
其中,T表示计算的线程数,Cinital表示线程初始化的开销,Cbarrier表示各查询原语数据块计算时进行同步的平均通信开销,Cserial表示查询原语串行的估算代价。
一种XML文档的并行XPath查询终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,提出基于并行效益计算的线程选择策略,该策略以基于XML节点关系数的代价估算为基础,为线程的合理有效利用提供了保证。
附图说明
图1所示为本发明实施例一的流程图。
图2所示为该实施例中一个XML文档示意图。
图3所示为该实施例中XML文档所对应的文档树示意图。
图4所示为该实施例中XML文档所对应的关系索引结构示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种XML文档的并行XPath查询方法,如图1所示,所述方法包括以下步骤:
S1:获取一个输入的XML文档。
该实施例中XML文档示意图如图2所示。
S2:对该XML文档进行解析,并根据解析结果计算基于索引创建的代价估算所需的XML统计信息。
该实施例中XML文档的解析结果以XML节点的区间编码的形式进行表示,XML文档的解析结果在逻辑上是个XML文档对象模型(DOM)的树,如图3所示。
具体的,XML节点的区间编码用6元组表示,对节点u的区间编码为εu<id,nodeType,tagName,begin,end,level>,其中,id为节点id值;nodeType为节点类型,考虑最常用的元素和属性这两种XML节点,因此nodeType∈{ELEMENT,ATTRIBUTE},ELEMENT表示元素,ATTRIBUTE表示属性;tagName是节点的标签名;begin是节点在文档中的开始位置;end是节点结束位置;level是节点的层次值。
在解析的过程中,当解析到每个XML节点的末尾标签时进行统计信息的更新。由于XML节点按文档序(Document Order)排列,任意节点所包含的节点必然是已经解析过并存储了相应的区间编码,通过节点的区间编码的内容进行统计信息的更新。
该实施例中所需的XML统计信息包括每个根节点所在的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。统计信息通过下列三个参数分别表示:
Figure BDA0002707773420000061
表示以节点u作为根节点的子树内根节点的所有子孙(记作DS型)节点和孩子(记作CH型)节点的总数。
Figure BDA0002707773420000071
表示以节点u作为根节点的子树内根节点的属性(记作AT型)节点总数。
Figure BDA0002707773420000072
表示以节点u作为根节点的子树内根节点的非直接属性(记作TAT型)节点总数,即其子孙的属性节点数。节点u的子孙是以节点u为根的子树所包含的节点u之外的其它所有节点。
S3:根据解析结果和XML统计信息,并行创建XML文档的关系索引。
关系索引是对XML节点之间的有效关系进行记录的存储结构,用元组表示形式如<u,v,ru→v>,表示节点u和节点v的唯一的有效关系类型值为r,r∈{DS,CH,AT}(分别代表子孙关系,孩子关系,属性关系)。某个节点u的关系索引是指该节点和与该节点存在(DS、CH或AT)有效关系的所有XML文档序的后续节点v的关系索引集合。为了节约索引存储空间和方便使用,用节点id代表节点,关系索引元组简化为<idv,ru→v>,那么对于节点u的关系索引为一个与节点u对应的所有v节点的索引元组集合
Figure BDA0002707773420000073
步骤S3具体包括以下步骤:
S31:根据XML统计信息进行关系索引创建的总代价估算。
总代价估算Cindex的计算公式为:
Figure BDA0002707773420000074
Figure BDA0002707773420000075
其中,N表示输入的XML文档中所有的XML节点数;
Figure BDA0002707773420000076
表示节点u的关系数,即以节点u为根节点的子树所包含的所有类型节点总数。
S32:根据关系索引创建的总代价估算结果,将解析的所有区间编码数据划分为数量与可用线程数量相同的区间编码数据块,使得各区间编码数据块之间实现关系索引创建时的计算负载均衡。
S33:针对每个划分后的区间编码数据块分别分配线程后,并行为区间编码数据块的创建关系索引,最终得到输入的XML文档的关系索引。
并行为区间编码数据块的创建关系索引的方法为:将每个数据块的关系索引创建设定为一个计算任务,针对每个计算任务获得一个工作线程,采用同步计数器进行数据并行同步。关系索引的组织和存储形式如图4所示。
步骤S32和S33的具体实现代码如下:
Figure BDA0002707773420000081
Figure BDA0002707773420000091
在上述具体实现代码中,第1~5行代码为步骤S32的功能,为获得分块边界,通过关系数累计计数,再根据分块平均代价进行划分,并利用
Figure BDA0002707773420000092
记录分块边界位置信息。第6~29行代码为步骤S33的功能,根据划分边界,分配线程对各个分块以数据并行方式创建索引。其中第12~16行代码处理分块的第一个节点数据,第17~22行代码处理分块的中间节点数据,第23~26行代码处理分块的最后一个节点数据。
ParaCreateRIndex算法中第13,19,24行代码涉及的GetRelation函数功能调用,该函数进行节点之间的关系计算,是创建索引的基本操作。考虑到节点之间关系的有向性和语义对应性,通过限定待计算节点的文档序顺序,可以避免重复计算,并且获取单向关系。其算法描述如下:
GetRelation(εuv)
输入:输入两个节点u和v,约定εu.id<εv.id
输出:关系类型值ru→v
1:if((εu.begin<εv.begin)∧(εv.begin<εu.end)∧(εu.level=
εv.level-1)∧(εv.nodeType=ELEMENT))r←CH;
2:else if((εu.begin<εv.begin)∧(εv.begin<εu.end)∧(εu.level≠
εv.level-1)∧(εv.nodeType=ELEMENT))ru→v←DS;
3:else if((εu.begin<εv.begin)∧(εv.begin<εu.end)∧(εu.level=
εv.level-1)∧(εv.nodeType=ATTRIBUTE))ru→v←AT;
4:else if((εu.begin<εv.begin)∧(εv.begin<εu.end)∧(εu.level≠
εv.level-1)∧(εv.nodeType=ATTRIBUTE))ru→v←NAT;
5:else ru→v←NN;//引入NN类型计算时辅助用途,表示节点之间没有任何
关系
6:return ru→v
S4:获取一个输入的XPath查询表达式。
S5:将XPath查询表达式转换为查询原语序列。
将XPath查询表达式翻译重写为多个并行查询原语组成的序列。原语包括非过滤型原语与过滤型原语这两种类型。非过滤型原语是对应XPath一般轴操作的实现,例如求取子孙的原语ParaGetDescendant,求取孩子的原语ParaGetChild等。过滤型原语是对应XPath的谓词操作的实现,包括基本过滤原语ParaFilterInput1byInput2,以及过滤型原语的变体,如带AND条件过滤原语、带OR条件过滤原语、带NOT条件过滤原语等。
该实施例中转换采用的重写函数定义为T[PExp]ε=Exp,其中PExp为XPath表达式,Exp表示用并行查询原语组织的表达式,ε表示当前上下文中的输入节点序列数据。主要的重写规则如下:
(R1)T[//e]ε0=T[etail]ε1 whereε1←ParaGetDescendant(ε0,ehead,...)
(R2)T[/e]ε0=T[etail]ε1 whereε1←ParaGetChild(ε0,ehead,...)
(R3)T[[e]]ε0=ParaFilterInput1byInput2(ε0,ε1)whereε1←T[e]ε0
(R4)T[e1 and e2]ε0=ParaFilterInput1byInput2_AND(ε0,ε1,ε2,...)where{ε1←T[e1]ε0,ε2←T[e2]ε0}
(R5)T[e1 or e2]ε0=ParaFilterInput1byInput2_OR(ε0,ε1,ε2,...)where{ε1←T[e1]ε0,ε2←T[e2]ε0}
(R6)T[not(e)]ε0=ParaFilterInput1byInput2_NOT(ε0,ε1)whereε1←T[e]ε0
规则R1和R2中的ehead表示表达式e的开头部分,对应一个标签名;etail表示表达式e除去ehead之后剩余的部分。
S6:根据创建的关系索引,使用查询原语序列中的每个查询原语按顺序对XML文档进行查询,且每个查询原语内部采用并行查询的方式进行查询。
步骤S6包括以下步骤:
S61:针对查询顺序中的每一步对应的查询原语,根据XML统计信息和节点关系数进行代价估算。
当查询原语序列中的所有查询原语为同一种类型时,数据划分仅需要考虑分块之间的代价大小对比,因此查询原语数据块划分时的代价估算直接采用XML节点关系数来区分代价估算值。当不为同一种类型时,采用下列计算公式计算代价估算。
(1)当查询原语为非过滤型原语时,其代价估算计算公式为:
Figure BDA0002707773420000121
其中,Cnon_filter表示非过滤型原语的代价估算;
Figure BDA0002707773420000122
表示节点u的关系数;Ccheck_nf表示使用一次非过滤型原语进行查询的开销;input表示使用非过滤型原语进行查询时输入的XML节点序列。
(2)当查询原语为过滤型原语时,其代价估算计算公式为:
Figure BDA0002707773420000123
其中,input1表示使用过滤型原语进行查询时输入的待查询的XML节点序列,input2表示使用过滤型原语进行查询时输入的作为过滤条件的XML节点序列,Ninput2表示使用过滤型原语进行查询时输入的input2节点序列的节点总数,Ccheck_f表示使用一次过滤型原语进行查询的开销。
S62:针对查询顺序中的每一步对应的查询原语,根据其并行效益计算所需线程数。
并行效益用于反映在线程数约束条件下,查询原语的并行化效果。根据并行效益计算所需线程数的方法为:在满足可用线程数Tavailable的约束条件下,获取使得并行效益Gp/s最小时的线程数T,即:
min(Gp/s)s.t.Gp/s<1,1<T≤Tavailable
该实施例中并行效益Gp/s的计算公式为:
Gp/s=1/T+(Cinital+T×Cbarrier)/Cserial
其中,Cserial为查询原语串行的估算代价,Cserial对于非过滤型原语即为Cnon_filter,对于过滤型原语即为Cfilter;Cinital为线程初始化开销,由线程池分配工作线程,每个查询步中针对每个查询原语数据块进行一次线程分配;Cbarrier为表示各查询原语数据块计算时进行同步的平均通信开销,采用统一的同步屏障方式,每个查询原语数据块有相似的开销。
S63:根据代价估算的结果将查询原语划分成与所需线程数相同数量的查询原语数据块,以实现不同查询原语数据块查询时的计算负载均衡。
S64:根据计算的线程数对划分的查询原语数据块分配线程后,每个查询原语对应的查询原语数据块之间并行的根据XML文档的关系索引对XML文档进行查询,不同查询原语之间按顺序进行查询。
每个数据块的原语求值为一个计算任务,获得一个工作线程。采用同步计数器进行数据并行同步。
步骤S61、S62、S63和S64的操作算法,用获取子孙节点原语ParaGetDescendant举例说明如下,该原语是个典型的非过滤型原语。其中第1行代码涉及步骤S61和S62的操作;第2~6行代码为步骤S63的功能,通过节点关系数累计计数,再根据查询原语数据块平均估算代价进行划分,并利用
Figure BDA0002707773420000131
记录分块边界位置信息;第7~27行代码为步骤S64的功能,其中第15~17行代码处理分块的第一个节点数据,第18~21行代码处理分块的中间节点数据,第22~24行代码处理分块的最后一个节点数据。
Figure BDA0002707773420000141
Figure BDA0002707773420000151
S7:输出最终的查询结果。
查询结果可以根据用户的格式需求进行展示。
实施例二:
本发明还提供一种XML文档的并行XPath查询终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述XML文档的并行XPath查询终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述XML文档的并行XPath查询终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述XML文档的并行XPath查询终端设备的组成结构仅仅是XML文档的并行XPath查询终端设备的示例,并不构成对XML文档的并行XPath查询终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述XML文档的并行XPath查询终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述XML文档的并行XPath查询终端设备的控制中心,利用各种接口和线路连接整个XML文档的并行XPath查询终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述XML文档的并行XPath查询终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述XML文档的并行XPath查询终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (10)

1.一种XML文档的并行XPath查询方法,其特征在于,包括以下步骤:
S1:获取输入的XML文档;
S2:对XML文档进行解析,并根据解析结果计算基于索引创建的代价估算所需的XML统计信息;
S3:根据解析结果和XML统计信息,并行创建XML文档的关系索引;
S4:获取输入的XPath查询表达式;
S5:将XPath查询表达式转换为查询原语序列;
S6:根据创建的关系索引,使用查询原语序列中的每个查询原语按顺序对XML文档进行查询,且每个查询原语内部采用并行查询的方式进行查询;
S7:输出最终的查询结果。
2.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:XML文档的解析结果为XML节点的区间编码,所需的XML统计信息包括每个根节点所在的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
3.根据权利要求2所述的XML文档的并行XPath查询方法,其特征在于:步骤S3包括以下步骤:
S31:根据XML统计信息进行关系索引创建的总代价估算;
S32:根据关系索引创建的总代价估算结果,将解析的所有区间编码数据划分为数量与可用线程数量相同的区间编码数据块,使得各区间编码数据块之间实现关系索引创建时的计算负载均衡;
S33:针对每个划分后的区间编码数据块分别分配线程后,并行的为区间编码数据块的创建关系索引,最终得到输入的XML文档的关系索引。
4.根据权利要求3所述的XML文档的并行XPath查询方法,其特征在于:总代价估算Cindex的计算公式为:
Figure FDA0002707773410000021
Figure FDA0002707773410000022
其中,N表示输入的XML文档中所有的XML节点数;
Figure FDA0002707773410000023
表示节点u的关系数;
Figure FDA0002707773410000024
分别表示以节点u作为根节点的子树内根节点的所有子孙节点和孩子节点的总数、根节点的属性节点总数和根节点的非直接属性节点总数。
5.根据权利要求2所述的XML文档的并行XPath查询方法,其特征在于:并行为区间编码数据块的创建关系索引的方法为:将每个数据块的关系索引创建设定为一个计算任务,针对每个计算任务获得一个工作线程,采用同步计数器进行数据并行同步。
6.根据权利要求1所述的XML文档的并行XPath查询方法,其特征在于:步骤S6包括以下步骤:
S61:针对查询顺序中的每一步对应的查询原语,根据XML统计信息和节点关系数进行代价估算;
S62:针对查询顺序中的每一步对应的查询原语,根据其并行效益计算所需线程数;
S63:根据代价估算的结果将查询原语划分成与所需线程数相同数量的查询原语数据块,以实现不同查询原语数据块查询时的计算负载均衡;
S64:根据计算的线程数对划分的查询原语数据块分配线程后,每个查询原语对应的查询原语数据块之间并行的根据XML文档的关系索引对XML文档进行查询,不同查询原语之间按顺序进行查询。
7.根据权利要求6所述的XML文档的并行XPath查询方法,其特征在于:查询原语序列中的查询原语包括非过滤型原语和过滤型原语这两种类型;
当查询原语为非过滤型原语时,其代价估算计算公式为:
Figure FDA0002707773410000031
其中,Cnon_filter表示非过滤型原语的代价估算;
Figure FDA0002707773410000032
表示节点u的关系数;Ccheck_nf表示使用一次非过滤型原语进行查询的开销;input表示使用非过滤型原语进行查询时输入的XML节点序列;
当查询原语为过滤型原语时,其代价估算计算公式为:
Figure FDA0002707773410000033
其中,input1表示使用过滤型原语进行查询时输入的待查询的XML节点序列,input2表示使用过滤型原语进行查询时输入的作为过滤条件的XML节点序列,Ninput2表示使用过滤型原语进行查询时输入的input2节点序列的节点总数,Ccheck_f表示使用一次过滤型原语进行查询的开销。
8.根据权利要求6所述的XML文档的并行XPath查询方法,其特征在于:根据并行效益计算所需的线程数的方法为:在满足可用线程数的约束条件下,获取使得并行效益最小时的线程数;
并行效益Gp/s的计算公式为:
Gp/s=1/T+(Cinital+T×Cbarrier)/Cserial
其中,T表示计算的线程数,Cinital表示线程初始化的开销,Cbarrier表示各查询原语数据块计算时进行同步的平均通信开销,Cserial表示查询原语串行的估算代价。
9.一种XML文档的并行XPath查询终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~8中任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~8中任一所述方法的步骤。
CN202011045242.4A 2020-09-29 2020-09-29 一种XML文档的并行XPath查询方法、终端设备及存储介质 Active CN112115302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011045242.4A CN112115302B (zh) 2020-09-29 2020-09-29 一种XML文档的并行XPath查询方法、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011045242.4A CN112115302B (zh) 2020-09-29 2020-09-29 一种XML文档的并行XPath查询方法、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN112115302A true CN112115302A (zh) 2020-12-22
CN112115302B CN112115302B (zh) 2022-04-12

Family

ID=73797167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011045242.4A Active CN112115302B (zh) 2020-09-29 2020-09-29 一种XML文档的并行XPath查询方法、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN112115302B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328595A (zh) * 2021-11-30 2022-04-12 苏州浪潮智能科技有限公司 一种数据查询方法、装置、电子设备及存储介质
WO2024067303A1 (zh) * 2022-09-30 2024-04-04 深圳市中兴微电子技术有限公司 仿真方法、电子设备、计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174242A1 (en) * 2006-01-20 2007-07-26 Vanja Josifovski Query evaluation using ancestor information
CN102325161A (zh) * 2011-07-18 2012-01-18 北京航空航天大学 一种基于查询工作量估算的xml分片方法
CN102929996A (zh) * 2012-10-24 2013-02-13 华南理工大学 XPath查询优化方法及系统
CN105005606A (zh) * 2015-07-03 2015-10-28 华南理工大学 基于MapReduce的XML数据查询方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174242A1 (en) * 2006-01-20 2007-07-26 Vanja Josifovski Query evaluation using ancestor information
CN102325161A (zh) * 2011-07-18 2012-01-18 北京航空航天大学 一种基于查询工作量估算的xml分片方法
CN102929996A (zh) * 2012-10-24 2013-02-13 华南理工大学 XPath查询优化方法及系统
CN105005606A (zh) * 2015-07-03 2015-10-28 华南理工大学 基于MapReduce的XML数据查询方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈荣鑫 等: ""M2:一种有效的XPath求值方法"", 《计算机科学》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328595A (zh) * 2021-11-30 2022-04-12 苏州浪潮智能科技有限公司 一种数据查询方法、装置、电子设备及存储介质
CN114328595B (zh) * 2021-11-30 2024-01-09 苏州浪潮智能科技有限公司 一种数据查询方法、装置、电子设备及存储介质
WO2024067303A1 (zh) * 2022-09-30 2024-04-04 深圳市中兴微电子技术有限公司 仿真方法、电子设备、计算机可读介质

Also Published As

Publication number Publication date
CN112115302B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN112115302B (zh) 一种XML文档的并行XPath查询方法、终端设备及存储介质
Deliège et al. Position list word aligned hybrid: optimizing space and performance for compressed bitmaps
Srivastava et al. Operator placement for in-network stream query processing
US9002825B2 (en) Estimating rows returned by recursive queries using fanout
US9069808B2 (en) Indexing provenance data and evaluating provenance data queries in data processing systems
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
US10983998B2 (en) Query execution plans by compilation-time execution
CN110442602B (zh) 数据查询方法、装置、服务器及存储介质
Lynden et al. Aderis: An adaptive query processor for joining federated sparql endpoints
US10248622B2 (en) Variable virtual split dictionary for search optimization
CN105701200A (zh) 一种内存云计算平台上的数据仓库安全olap方法
CN114372174A (zh) 一种xml文档分布式查询方法及系统
CN110704472A (zh) 数据查询统计方法及装置
US11514236B1 (en) Indexing in a spreadsheet based data store using hybrid datatypes
CN100544277C (zh) 一种提高网管系统数据处理效率的方法和装置
CN112528082B (zh) 一种XML文档的流水线XPath查询方法、终端设备及存储介质
CN111310076A (zh) 地理位置查询方法、装置、介质及电子设备
US20120078878A1 (en) Optimized lazy query operators
US20220215021A1 (en) Data Query Method and Apparatus, Computing Device, and Storage Medium
Kanne et al. A linear time algorithm for optimal tree sibling partitioning and approximation algorithms in natix
US11500839B1 (en) Multi-table indexing in a spreadsheet based data store
CN112395286B (zh) 链式数据表连接方法、装置、设备及存储介质
US8713015B2 (en) Expressive grouping for language integrated queries
US11768818B1 (en) Usage driven indexing in a spreadsheet based data store
CN116010420B (zh) 一种基于位图存储的数据查询方法、系统、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant