CN106095951A - 基于负载均衡和查询日志的数据空间多维索引方法 - Google Patents
基于负载均衡和查询日志的数据空间多维索引方法 Download PDFInfo
- Publication number
- CN106095951A CN106095951A CN201610422994.5A CN201610422994A CN106095951A CN 106095951 A CN106095951 A CN 106095951A CN 201610422994 A CN201610422994 A CN 201610422994A CN 106095951 A CN106095951 A CN 106095951A
- Authority
- CN
- China
- Prior art keywords
- index
- query
- hypergraph
- division
- token
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000005192 partition Methods 0.000 claims abstract description 104
- 238000004891 communication Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000000638 solvent extraction Methods 0.000 claims description 72
- 230000002776 aggregation Effects 0.000 claims description 43
- 238000004220 aggregation Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 25
- 238000009826 distribution Methods 0.000 claims description 20
- 230000004931 aggregating effect Effects 0.000 claims description 9
- 238000006116 polymerization reaction Methods 0.000 claims description 6
- 238000005259 measurement Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000002474 experimental method Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000013480 data collection Methods 0.000 abstract 1
- 230000004044 response Effects 0.000 description 17
- 230000000694 effects Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 5
- 238000013138 pruning Methods 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于负载均衡和查询日志的数据空间多维索引方法,涉及数据空间索引技术领域。旨在把倒排索引分布到不同的索引节点中,使得各个索引节点保持负载均衡,同时最小化查询处理涉及的通信开销和减少搜索空间。在垂直划分中,首先利用查询日志和实体中频繁出现的词,聚合索引token词,使用超图表示用户查询与倒排列表间的访问模式;在水平划分中,通过超图刻画用户查询与实体间的访问模式信息,把水平划分问题归约为超图划分问题,使得不同索引节点的负载保持均衡,并降低查询涉及的通信开销。结合垂直划分和水平划分策略,构建二维混合索引并扩展为三维索引。通过在公开数据集DBLP上进行实验表明本发明方法在吞吐量、查询响应时间及扩展性优于已有方法。
Description
技术领域
本发明涉及一种数据空间多维索引方法,涉及数据空间索引技术领域。
背景技术
随着大数据和互联网技术的快速发展,数据空间的场景已经越来越普遍,尤其是在像Wikipedia、Google Base和Linked Data之类的Web和个人信息管理系统领域中。与主要关注特定领域、固定数量属性的传统关系数据库不同的是,数据空间具有异构、稀疏、规模大、相互关联等特点。因此,为用户提供高效的数据空间查询服务具有重要意义。通常,索引往往是提高查询处理效率的重要手段之一,因此,研究一种高效的数据空间索引技术具有重要意义。
目前数据空间索引技术的研究已经引起了研究者广泛关注,并取得了一些研究成果。针对iDM模型,Dittrich和Salles提出了一种朴素的数据空间索引方法。该方法采用传统索引技术分别索引iDM模型中不同组件,从而构成混合索引以支持数据空间查询。为解决朴素数据空间索引不统一导致效率低问题,Dong和Halevy首次系统地研究了数据空间索引问题,提出了一种扩展倒排索引技术,以支持结构感知的查询。其主要思想是把属性标签、属性值、关联与层次信息编码为tokens词。然而,在真实数据场景中,Song和Chen发现三个有趣观察:(1)数据空间具有极端稀疏特性;(2)元组中属性频率分布近似遵循Zipf Law分布;(3)用户往往对top-k结果感兴趣。受此启发,他们研究了数据空间索引的划分问题,从而解决直接扩展的倒排索引易导致数据空间访问效率低问题。针对大图中已知项搜索查询优化问题,Zhong等人提出了一种MVP索引,即,基于启发式事先尽可能地剪枝掉不参与最终top-k应答的匹配顶点,从而显著地减少搜索空间。在此基础上,Zhong等人研究了数据空间效率问题,提出了一种d-距离图索引。它包含两种索引结构:(1)单一关键词的3-in-1语义图索引;(2)针对非字符串数据类型的属性图索引。此外,Wang等人研究了个人数据空间中查询质量问题,提出了一种紧凑索引技术。该技术主要是对文档中最重要和最具代表性的语义构建索引。然而已有的这些方法均无法高效地支持大规模数据查询处理。这是因为在进行大规模数据查询处理过程,硬盘I/O开销代价远高于搜索节省的开销,或者内存无法加载庞大的索引图。
发明内容
本发明的目的是提供一种基于负载均衡和查询日志的数据空间多维索引方法,以高效地支持大规模数据查询处理。本发明旨在把倒排索引分布到不同的索引节点中,使得各个索引节点保持负载均衡,同时最小化查询处理涉及的通信开销和减少搜索空间。
本发明为解决上述技术问题采取的技术方案是:
一种基于负载均衡和查询日志的数据空间多维索引方法,所述方法将倒排索引分布到不同的索引节点中,使得各个索引节点保持负载均衡,所述方法为:
结合基于负载均衡与超图划分的垂直划分索引和基于负载均衡与超图划分的水平划分索引得到二维划分索引框架(2D-IL),从吞吐量和容错率角度出发,扩展二维划分索引框架(2D-IL)为三维索引框架(MIL),基于三维索引框架(MIL)实现数据空间多维索引方法。
所述方法的具实现过程为:
步骤一、获得二维划分索引框架(2D-IL)的过程为:
步骤一一、确定基于负载均衡与超图划分的垂直划分索引
确定垂直划分索引框架
使用查询日志和实体集中tokens偏斜信息来压缩数据空间倒排索引,形成一组聚合后的tokens词;然后,按照负载均衡和超图划分把所述tokens词的倒排列表均衡地分布到相应的索引节点中;
基于负载均衡与超图划分的垂直划分
1)、聚合tokens词的选取:
通过聚合频繁地共同出现在实体或者查询日志中的tokens词来压缩索引;
2)、给出垂直索引分布方式
所述垂直索引分布方式基于聚合tokens词,把压缩后的倒排索引分布到相应的索引节点集中,使得保持各个索引节点负载均衡,同时最小化索引节点与索引服务器的通信开销;
步骤一二、确定基于负载均衡与超图划分的水平划分索引
水平划分索引框架的确定:按照负载均衡和超图划分把实体集的倒排列表分布到相应的索引节点中;
水平划分:基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销;
步骤一三、获得二维划分索引框架:
使二维索引分布在不同索引节点中,使每个索引节点中索引花费对存储空间显著降低,二维索引逻辑上可以看成一个N×M的集群,
数据空间索引在行维度上是一个基于负载均衡与超图划分的水平划分索引,按照实体级划分;
数据空间索引在列维度上是一个基于负载均衡与超图划分的垂直划分索引,按照聚合tokens词划分;
每个索引节点对应tokens词压缩后的倒排索引;
在第i行和第j列中的索引节点ISij中,包含tokens词{a,b,...,f}和实体{o30,...o50},其对应的倒排索引格式如虚线箭头指向的倒排索引;在索引节点ISij中,其索引词汇为原始词汇的一个子集{a,b,...,f},这些词汇在垂直划分后形成三个聚合tokens词,聚合tokens词对应实体集都同属于一个水平划分;
步骤二、扩展二维划分索引框架(2D-IL)为三维索引框架(MIL):
通过为二维索引中每个索引节点ISij复制D份,构成三维立方体的多维索引,在索引节点ISij的每个副本之间保证通信,防止该索引节点ISij失败时导致没有可用的查询结果的情况;
步骤三、利用三维索引框架(MIL)实现数据空间多维索引:
所述三维索引逻辑上可以看成一个N×M×D的3D立方体,其中D是复制的份数;
在索引号(Ni,Mj,Dk)对应的单元格中,黑色点表示索引节点ISijk涉及索引token词{a,b,...,f}、实体{o30,...o50}并且是第k个备份;
当一个查询Q=t1∧t2∧...∧tn被提交时,其处理流程为:(1)找出涉及token词{t1,t2,...,tn}的列集合{Mj};(2)对于这些列集合{Mj},选择出相似性分数大于某个阈值的行集合{Nj};(3)在(Nj,Mj)对应的备份中,随机选择一个立方体;(4)在确定所有的小立方体后,即(Ni,Mj,Dk)对应的立方体,把相应的子查询并发地发送到对应的索引节点ISijk中,进行并发查询;如果当前索引节点ISijk失败,利用通信机制把子查询发送随机发送到其它副本的索引节点中ISijl;(5)最后把所有并发查询结果进行综合并返回给用户。
在步骤一一中,基于负载均衡与超图划分的垂直划分过程中,
聚合tokens词的选取具体为:
利用TokensSelection算法选取聚合tokens词:
TokensSelection(TDB,ξ,T)
输入:TDB是一个事务数据库,其中每个事务为一个实体或者查询日志中一个查询,事务对应的项集为实体包含的tokens词集合或者查询包含的tokens词集合,ξ是最小支持度;
输出:T为tokens词的划分,初始为空;
首先扫描事务数据库TDB,寻找非频繁1-项集NF和频繁1-项集F,并对F按照支持度降序进行排序;
NF中每个token词单独作为一个垂直划分列表加入到集合T中;接下来,对于F来说,再一次扫描TDB,构建FP树,并对F中每个tokenk词分别调用FP-growth(FP树,tokenk)算法,从而产生所有的频繁项集,记为freq_set;
为保证频繁项集互不相交,按照频繁项集对频繁项数量和支持度顺序对freq_set进行降序排序;最后进行不断迭代,直至freq_set为空,在每次迭代中,先取出第一个频繁项集top,并把top作为一个垂直划分加入到集合T中,同时从freq_set中移除top,然后从freq_set中移除与top相交不为空对所有频繁项集;
给出垂直索引分布方式,具体为:
给定一个查询集合Q={q1,q2,...,q|Q|}、词汇表T={t1,t2,...,t|T|}、索引节点集合IS={IS1,IS2,...,ISm}和压缩后的倒排索引其中是聚合tokens并且和访问频率freqi关联,Li是ti对应的倒排列表,每个聚合包括一个或多个ti,不同的交集为空且全体并集为T;
定义超图:一个超图H=(V,E)是由顶点集合V和超边集合E组成,其中每条超边ej∈E与V中顶点子集相连,每个顶点vi∈V具有一个权重wi;
每个顶点表示聚合tokens词,其权重为访问该聚合tokens词对应倒排列表的开销,每条超边表示查询中tokens词在哪些聚合tokens词中出现,即一个查询与相应的每一个进行连接;
Π={V1,V2,...,Vm}是一个m路的超图划分当且仅当每个部分Vk≠φ、Vk I Vl=φ且
超图划分Π是λ-平衡当且仅当对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重;
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1;
超边ej∈E与划分Π的连接度即与超边相连接的部分数;m路超图划分问题可以定义为寻找一个λ-平衡的超图划分,使得最小;
垂直索引划分的目标是:利用查找日志和实体的偏斜信息,生成一组互不相交的聚合tokens词,然后利用用户查询日志中访问倒排列表信息均衡地把聚合tokens词对应的倒排列表分布到不同索引节点中,并使得通信开销最小;利用查询与聚合tokens词的交互信息,按照处理聚合token词的计算负载情况,把所有聚合tokens词均衡地划分到不同对索引节点中,并使得查询涉及的索引节点数量最小;
把聚合tokens词看作超图中顶点,单个索引节点ISk中包含的所有聚合token词看作超图中顶点集的一个部分Vk≠φ,查询日志中一个查询qj∈Q看作一条超边ej∈E,查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π);
垂直索引分布问题归约为λ-平衡的超图划分问题,即Π中每个部分Vk对应分配给索引节点ISk的聚合tokens集合Tk,每个Wk对应ISk的所有计算负载,Γ(Π)对应查询Q涉及的总通信开销。
在步骤一二中,确定基于负载均衡与超图划分的水平划分索引的过程中,
水平划分的过程为:
给定一个查询集合Q={q1,q2,...,q|Q|}、实体集合O={o1,o2,...,o|O|}、实体间的相似性矩阵A={sim(oi,oj)|1≤i,j≤|O|}和索引节点集合IS={IS1,IS2,...,ISn},其中sim(oi,oj)表示两个实体的相似性,每个查询
定义(λ,η)-平衡且相似的超图划分,超图划分Π是(λ,η)-平衡且相似,当且仅当,
(1)对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重;
(2)对每一个部分Vk∈Π,任意两个顶点vi,vj∈Vk,sim(vi,vj)≥η,其中sim(vi,vj)表示两个顶点的相似性;
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1;超边ej∈E与划分Π的连接度即与超边相连接的部分数;m路超图划分问题也可以定义为寻找出一个(λ,η)-平衡且相似的超图划分,使得最小;
水平索引划分的目标是:基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销;
把每个实体oi词看作超图中顶点vi∈V,其权重为处理该实体oi的计算负载wi,单个索引节点ISk中包含的所有实体Ok看作超图中顶点集的一个部分Vk≠φ,并且ISk中实体共享相似的属性,查询日志中一个查询qj∈Q看作一条超边ej∈E,查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π);
水平索引分布问题可以归约为(λ,η)-平衡的超图划分问题,即Π中每个子顶点集Vk对应分配给索引节点ISk的实体集合Ok,每个Wk对应ISk的所有计算负载,每对顶点的相似性对应每对实体间的相似性,Γ(Π)对应查询Q涉及的总通信开销;具体来说,使用超图H=(V,E)表示用户查询集与水平划分中实体集之间的交互;在超图H中,每个实体oi代表一个顶点vi∈V,每个查询qj∈Q代表一条超边ej∈E,每个顶点vi的权重wi代表处理该实体oi的计算负载,每个顶点记录一组它所包含tokens词的访问频率;
假定f(ti)为token词ti的访问频率,即查询日志中token词ti的频率,在查询处理中,顶点vi的权重wi采用下式进行度量:
其中表示每个实体O的平均tokens词个数。
本发明的有益效果是:为高效地访问数据空间,本发明从负载均衡和划分的角度提出了一种分布式的数据空间多维索引。主要思想是基于tokens词划分、实体划分以及复制策略构建数据空间多维索引,并且利用查询日志的访问模式和超图理论,把倒排列表分布到集群的不同节点中,从而保持各个索引节点负载均衡、减少查询通信开销,进而提高数据空间并行查询处理性能。具体来说,(1)在垂直划分中,首先利用查询日志和实体中频繁出现的词,聚合索引token词,以减少查询涉及的倒排列表的聚合/合并开销。接着,使用超图表示用户查询与倒排列表间的访问模式,把垂直划分问题归约为超图划分问题;(2)在水平划分中,通过超图刻画用户查询与实体间的访问模式信息,把水平划分问题归约为超图划分问题,使得不同索引节点的负载保持均衡,并降低查询涉及的通信开销。(3)结合前面的垂直划分和水平划分策略,构建了二维混合索引。在此基础上,从查询吞吐量与容错率角度考虑,利用索引副本策略,将二维混合索引扩展为三维索引。最后,通过在公开数据集DBLP上进行大量实验,实验结果表明本发明方法在吞吐量、查询响应时间及扩展性等方面优于已有方法。
附图说明
图1是基于划分的数据空间倒排索引图,图中:(a)为基于token的垂直划分示意图,(b)为基于实体的水平划分示意图,(c)为基于混合划分的数据空间索引示意图;图2是垂直划分索引框架图,图3是表示查询日志与压缩倒排索引关系的3路超图划分示意图;图4是水平划分索引框架示意图;图5表示查询日志与实体关系的3路超图划分示意图;图6为二维索引架构图;图7为三维维索引架构图;图8为涉及某索引节点数的查询比例对比图;图9为MIL与2D-IL方法的容灾能力对比图;图10为不同K值下的性能对比图;图11为不同并发查询数量下的性能对比图,图中:(a)为不同并发查询数量下的平均响应时间对比图,(b)为不同并发查询数量下的平均吞吐量对比图;图12为不同索引节点下的性能对比图,图中:(a)不同索引节点下的平均响应时间对比图,(b)不同索引节点下的平均吞吐量对比图;图13为不同数据集大小对性能的影响图。
具体实施方式
具体实施方式一:如图1所示,本实施方式针对所述的基于负载均衡和查询日志的数据空间多维索引方法的实现进行详细描述如下:
一、为成功把倒排索引扩展至数据空间中,把属性标签和属性值聚合编码为token词:
定义Token,对于一个属性-值对(a,v),它对应的token定义为t=v//a。
本质上,一个实体往往是由一组属性-值对组成(注意,内容可以看成一个属性-值对)。换句话说,一个实体事实上是一个tokens向量(t1,t2,...,t|D|),其中D表示数据空间中所有不同的token标识。
定义实体向量,一个实体向量定义为o=(w1,w2,....,w|D|),其中wi表示token词ti的权重。
基于划分的数据空间倒排索引(PIL)是在扩展倒排索引(EIL)的基础上,通过引入水平划分(基于实体的划分)和垂直划分(基于token词的划分)的思想改进得到的一种新型数据空间索引。该索引是目前数据空间中最先进的索引技术。具体来说,一个PIL由D中的词汇表和一组混合划分列表组成。每个混合划分列表包含头部和实体列表集两部分。对于每个头部,它包含一个或多个token的聚合词t及其对应出现的水平划分;对于相应的每个实体列表集,实体集按照水平划分分为不同块,在每个块中,相应的实体集根据垂直划分进一步分割为一组子实体列表,如图1所示。
图1展示了基于划分的数据空间倒排索引框架。在图1(a)的垂直划分索引中,对于token词d和f来说,d和f的倒排列表合并在一起,即头部对应聚合token词{d,f},相应的实体列表集由一组实体列表组成,每个实体列表对应d和f的一种组合(如d和f均包含)。在图1(b)的水平划分列表中,对于token词a来说,把a对应的倒排列表划分为不同的类别。即头部表明a在哪些划分中出现,对应的实体列表集则按照相应的划分(S1,S3,S4)分割为多个实体列表。在图1(c)的混合划分索引中,则综合了上述两种划分方法。例如,对于token词c、g和m来说,生成混合列表2,其中头部包括聚合token词{c,g,m}和它出现的水平划分(S1,S2,S3,S4),它对应的实体列表集则由所属水平划分的实体列表组成,每一个实体列表由对应不同token词组合的子实体列表组成。
定义划分向量,假定o为划分P中的任意实体,那么划分P可以表示为:其中,为划分P中token词ti的权重,即
一旦采用向量表示划分P和查询Q={q1,q2,...,q|D|},那么划分P和查询Q的相似性可以采用公式(1):
其中,|D|表示所有tokens的大小,事实上,sim(P,Q)准确表达了划分P中实体与查询的分数最大上界。
定理1:假定划分P由一组实体组成,t是P中任意实体,那么实体t与查询Q的相似度存在上界,即P.bound(Q)=sim(P,Q)≥sim(t,Q).
定理2:假定划分P1,P2,...Pm按照与查询Q的相似度降序排序,t′是在前g个划分中top-k应答相似性分数最小的实体。对于下一个划分Pg+1来说,如果sim(t′,Q)>sim(Pg+1,Q),那么划分Pg+1,Pg+2,...,Pm均可以在查询中被安全地剪枝掉。
二、问题提出
在上面的索引框架中,其划分策略是基于以下三个观察:(1)在数据空间的实体集合中,20%的属性对同时出现的概率为1;(2)同领域(类别)的实体共享相似的属性,不同领域的实体的属性往往彼此不相同;(3)用户往往对top-k应答感兴趣,而不是全体应答。基于观察1,垂直划分策略选择在实体中频繁一起出现的tokens词进行聚合,从而显著减少大数据集下倒排列表聚合和合并的代价;水平划分策略则按照水平划分把单个倒排列表划分为不同的子倒排列表,从而提前剪枝掉大量的、与查询相关性较低的子倒排列表。其剪枝理论依据定理1和2。
然而,该索引也存在以下问题:(1)选择哪些tokens词进行聚合只依赖于数据集中的“二八”偏斜现象。而在实际应用中,用户查询往往也存在偏斜现象。因此,在查询日志中经常一起出现在实体中tokens也应该进行聚合。(2)由于水平划分基于观察2和3,因此可能使得不同类别划分的实体列表集产生严重的偏斜。(3)在大数据量的情况下,内存的大小成为性能瓶颈,直接影响着查询性能的好坏。由于数据集过大,导致索引的空间开销非常巨大,从而使得内存无法加载庞大的索引。
因此,需设计出一种分布式的数据空间多维索引,旨在把倒排索引分布到不同的索引节点中,使得各个索引节点保持负载均衡,同时最小化查询处理涉及的通信开销和减少搜索空间。
三、数据空间多维索引
本发明提出了一种基于负载均衡与超图的垂直划分索引技术以及基于负载均衡与超图的水平划分索引技术;最后,从查询系统吞吐量和容错率角度出发,提出了一种分布式的多维索引技术。
3.1基于负载均衡与超图划分的垂直划分索引,先概述垂直划分索引框架,然后详细描述垂直划分策略。
1)垂直划分索引框架
PIL索引中垂直划分索引的问题是:(1)聚合tokens词的选择只依赖于数据集中的token词的偏斜影响;(2)该索引不适用于大数据量环境。然而,在实际应用中,用户查询日志蕴含大量高价值信息,比如,一些查询tokens频繁地共同出现在实体中。因此代替只使用实体集中tokens偏斜信息,综合使用查询日志和实体集中tokens偏斜信息来压缩数据空间倒排索引,形成一组聚合后的tokens词;然后,按照负载均衡思想和超图划分理论把这些tokens词的倒排列表均衡地分布到相应的索引节点中。
例如,在图2中,假定a、e、h和i总是一起出现在相同的实体或用户查询中,因此,这些tokens词对应的倒排列表总是相同的,从而聚合这些tokens词来压缩倒排索引。其优点是减少硬盘I/O访问开销以及避免查询处理过程中这些tokens对应倒排列表的聚合。此外,除了压缩出现情况完全一样的tokens外,还对具有相似倒排列表的tokens进行压缩。例如,在索引节点2中,由于tokens词d和f频繁一起出现在实体和tokens词d和j频繁地共同出现在用户用查询中,因此对d、f和j进行聚合压缩,形成一个垂直划分列表。即,头部是d、f和j聚合tokens词,实体列表集则是由一组子实体列表组成,每个子实体列表对应tokens词d、f和j的一种组合.最后,把这些垂直划分列表分布到多个索引节点中,使得这些节点负载均衡同时最小化查询涉及的索引节点数量。例如,图2把倒排索引分布到3个索引节点中。
2)基于负载均衡与超图划分的垂直划分策略
从图2中可知,垂直划分索引面临两个关键挑战:(1)聚合tokens词的选取问题;(2)垂直索引分布问题,即如何较好地分布到不同索引节点,从而支持分布式查询处理,进而提高查询处理性能。
聚合tokens词的选取
在用户查询中,词的频率也存在偏斜问题,因此代替只考虑实体中tokens词的偏斜问题,综合考虑实体中tokens和查询日志中tokens的偏斜现象,通过聚合频繁地共同出现在实体或者查询日志中的tokens词来压缩索引。例如,对于tokens词d、f和j来说,如果只考虑实体中tokens词的偏斜情况,则聚合tokens词d和f(如图1(a)),事实上,在真实应用下,tokens词d和j可能频繁一起出现在查询日志,因此,为减少查询处理中倒排列表的合并代价,tokens词d和j也应该聚合在一起,从而压缩索引。所以,压缩tokens词d、f和j可能是一个更佳的选择.
聚合tokens词的选取问题本质上是tokens词集合划分问题,其中每个划分对应一个垂直划分列表头部.当把实体和查询日志中查询看作一个事务,同时实体包含的tokens词集合或者查询包含的tokens词集合看作事务对应的项集时,tokens词划分问题类似于频繁项集挖掘问题,但显著区别是频繁项集是互不相交的。为此,改进经典的FP-growth算法,给出了一个选取聚合tokens词的算法TokensSelection,算法TokensSelection(TDB,ξ,T)过程如下:
输入:TDB是一个事务数据库,其中每个事务为一个实体或者查询日志中一个查询,事务对应的项集为实体包含的tokens词集合或者查询包含的tokens词集合,ξ是最小支持度;
输出:T为tokens词的划分,初始为空;
具体来说,首先扫描事务数据库TDB,寻找非频繁1-项集NF和频繁1-项集F,并对F按照支持度降序进行排序(行1)。由于NF中每个token词都是非频繁的,因此不需要聚合,为此,NF中每个token词单独作为一个垂直划分列表加入到集合T中(行2);接下来,对于F来说,再一次扫描TDB,构建FP树,并对F中每个tokenk词分别调用FP-growth(FP树,tokenk)算法,从而产生所有的频繁项集,记为freq_set(行3-4)。为保证频繁项集互不相交,按照频繁项集对频繁项数量和支持度顺序对freq_set进行降序排序,从而使得越靠前的频繁项集,频繁项的数量越大并且频繁项集的支持度也越大(行5)。最后进行不断迭代,直至freq_set为空。在每次迭代中,先取出第一个频繁项集top,并把top作为一个垂直划分加入到集合T中,同时从freq_set中移除top.然后从freq_set中移除与top相交不为空对所有频繁项集(行6-11)。算法中FP树构建和子算法FP-growth(FP树,tokenk)的详细细节本章不再赘述,感兴趣读者参考文献。
2垂直索引分布策略
尽管算法TokensSelection(TDB,ξ,T)能够利用查询日志和实体中tokens词的偏斜现象聚合一些频繁地、共同出现的tokens词,从而降低潜在查询涉及的倒排列表的聚合代价和存储空间,但是随着数据集激增,倒排索引大小仍然十分庞大,这显然成为内存的瓶颈,从而影响查询性能。为此,一种直观的方法就是按照聚合tokens词均匀划分思想设计一个分布式索引。然而,在实际中,垂直划分列表的长度和查询日志对垂直划分列表的访问频率存在严重偏斜,这将导致查询负载高度不均衡,因此需要一种高效的垂直索引分布策略。它基于聚合tokens词,把压缩后的倒排索引分布到相应的索引节点集中,使得保持各个索引节点负载均衡,同时最小化索引节点与索引服务器的通信开销。
给定一个查询集合Q={q1,q2,...,q|Q|}、词汇表T={t1,t2,...,t|T|}、索引节点集合IS={IS1,IS2,...,ISm}和压缩后的倒排索引其中是聚合tokens(包括一个或多个ti,不同的交集为空且全体并集为T)并且和访问频率freqi关联,Li是ti对应的倒排列表,每个
定义超图,一个超图H=(V,E)是由顶点集合V和超边集合E组成,其中每条超边ej∈E与V中顶点子集相连,每个顶点vi∈V具有一个权重wi。
超图是简单图的一种泛化形式,并且超边反映了多个顶点间的关系。在本小节中,每个顶点表示聚合tokens词,其权重为访问该聚合tokens词对应倒排列表的开销,每条超边表示查询中tokens词在哪些聚合tokens词中出现,即一个查询与相应的每一个进行连接,如图3所示,其中实心黑点表示一个查询,椭圆表示一个tokens词
定义m路超图划分,Π={V1,V2,...,Vm}是一个m路的超图划分当且仅当每个部分Vk≠φ、Vk I Vl=φ且
定义λ-平衡的超图划分,超图划分Π是λ-平衡当且仅当对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重。
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1。因此超边ej∈E与划分Π的连接度即与超边相连接的部分数。本质上m路超图划分问题可以定义为寻找一个λ-平衡的超图划分,使得最小。
从前面的叙述可知,垂直索引划分的目标是:利用查找日志和实体的偏斜信息,生成一组互不相交的聚合tokens词,然后利用用户查询日志中访问倒排列表信息均衡地把聚合tokens词对应的倒排列表分布到不同索引节点中,并使得通信开销最小。也就是说,利用查询与聚合tokens词的交互信息,按照处理聚合token词的计算负载情况,把所有聚合tokens词均衡地划分到不同对索引节点中,并使得查询涉及的索引节点数量最小。此时,把聚合tokens词看作超图中顶点,单个索引节点ISk中包含的所有聚合token词看作超图中顶点集的一个部分Vk≠φ,查询日志中一个查询qj∈Q看作一条超边ej∈E,查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π),因此,垂直索引分布问题可以归约为λ-平衡的超图划分问题,即Π中每个部分Vk对应分配给索引节点ISk的聚合tokens集合Tk,每个Wk对应ISk的所有计算负载,Γ(Π)对应查询Q涉及的总通信开销。
从实体偏斜角度考虑,本发明利用齐夫定律概率来评估排名第i个的token词ti在实体中的概率,如公式(2)所示:
μ代表了实体中tokens词的偏斜程度。例如,倒排列表中80%的实体资源含有的20%的tokens词,则参数μ=log0.8/log0.2=0.14。对于压缩后的垂直划分列表来说,它合并了多个token词的倒排列表,因此聚合tokens词的概率如公式(3)所示。
假定f(ti)为token词ti的访问频率,即查询日志中token词ti的频率,则聚合tokens词的访问频率为所有token词的组合频率,如公式(4)所示。
在查询处理中,影响计算负载的因素主要有倒排列表大小及其访问频率,因此顶点vi的权重wi采用公式(5)进行度量。
其中|E|表示实体个数,表示每个实体E的平均tokens词个数。
图3展示了采用负载均衡与超图的垂直划分索引的例子.其中tokens词a、b、e、h和l分布到索引节点IS1,tokens词d、f、j和k分布到索引节点IS2,tokens词c、m、g和i分布到索引节点IS3,使得索引节点IS1、IS2和IS3的负载均衡。按照这种分布,查询{q1,q2,q3}仅被索引节点IS1处理,查询{q4,q5,q6}仅被索引节点IS2处理,查询{q7,q8}仅被索引节点IS3处理,而查询q9被索引节点IS1和IS2,查询q10被索引节点IS1、IS2和IS3处理,因此总通信代价Γ(Π)=8×0+1×2+1×3=5。
超图划分是一个NP-完全问题,为此采用经典的多级的、直接的、K-路超图划分算法进行近似划分。它主要包含三个阶段:基于高连通匹配的多级粗划阶段、基于迭代二分的初始划分阶段以及多级K-路细化阶段.下面简单介绍每个阶段过程,详细细节参考文献。
基于高连通性匹配的多级粗划阶段:核心思想是通过m级连续的粗化过程,把原始的超图H0转换为一个足够小的超图Hm,使得尽可能保持原始超图的结构。在每级粗化过程时,根据顶点的高连通性匹配启发式原则,把当前超图Hl中顶点集分组为一个集群,集群中的顶点合并为一个超顶点。启发式规则如下:随机访问一个顶点,已访问顶点vi∈Vl与未访问的顶点vj∈Vl相匹配,当且仅当vi∈Vl和vj∈Vl共享的超边数量最多.
基于迭代二分的初始划分阶段:核心思想是采用多级迭代二分机制把最粗的超图Hm划分为K个部分。在每个二分步骤中,采用贪婪的超图增长启发式二分中间超图。在初始划分阶段的最后,不断执行顶点移动操作,直到超图划分是λ-平衡的。
多级K-路细化阶段:核心思想是从最粗超图Hm开始,迭代地执行细化操作和投影操作,直至最细超图H0。在细化操作时,基于FM启发式,移动K部分中的顶点,来调整细化当前超图Hl的划分Πl,并使得在保持划分的各部分负载均衡的条件下总通信开销Γ(Π)最小。在投影操作时,把当前超图Hl和细化的划分Πl投影到上一级的超图Hl-1和划分Πl-1中。
3.2基于负载均衡与超图划分的水平划分索引:先给出水平划分索引框架,然后详细描述水平划分策略。
(1)水平划分索引框架
PIL索引中水平划分索引的问题是:(1)不同类别的实体集大小可能存在严重的偏斜问题,从而导致水平划分负载不均衡;(2)该索引不适用于大数据量环境。然而,在实际应用中,用户查询日志反映不同时期的用户兴趣信息,因此可能存在兴趣偏斜现象,这将导致水平划分的倒排列表的负载不均衡问题。为解决上述问题,按照负载均衡思想和超图划分理论把这些实体集的倒排列表分布到相应的索引节点中。
例如,图4展示了水平划分索引框架。在图4中,假定数据空间中实体根据相似性和负载均衡划分为A、B和C三类以及一个实体只能属于一个类别,则A、B和C三类所属的实体构建的倒排索引分别分布到索引节点1、2和3中,其中有些tokens词可能出现在多个索引节点中,如tokens词a或者f。
(2)水平划分策略
一方面,从实体角度出发,根据实体间的相似性(例如,属性标签)进行划分,可能导致不同划分中实体数量的偏斜问题,从而导致不同索引节点的负载严重不均衡;另一方面,随着时间的演化,用户查询对索引节点的访问频率(或者更准确地说,倒排列表的访问频率)的差距不断加大,进而导致访问频率严重偏斜,因此在剪枝的作用下,将使得索引节点出现严重的负载不均衡现象。为此,需要一种高效的水平索引分布策略。它基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销。
给定一个查询集合Q={q1,q2,...,q|Q|}、实体集合O={o1,o2,...,o|O|}、实体间的相似性矩阵A={sim(oi,oj)|1≤i,j≤|O|}和索引节点集合IS={IS1,IS2,...,ISn},其中sim(oi,oj)表示两个实体的相似性,每个查询
定义(λ,η)-平衡且相似的超图划分,超图划分Π是(λ,η)-平衡且相似,当且仅当,
(1)对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重;
(2)对每一个部分Vk∈Π,任意两个顶点vi,vj∈Vk,sim(vi,vj)≥η,其中sim(vi,vj)表示两个顶点的相似性。
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1。因此超边ej∈E与划分Π的连接度即与超边相连接的部分数。事实上,m路超图划分问题也可以定义为寻找出一个(λ,η)-平衡且相似的超图划分,使得最小。
从前面的叙述可知,水平索引划分的目标是:基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销。此时,把每个实体oi词看作超图中顶点vi∈V,其权重为处理该实体oi的计算负载wi,单个索引节点ISk中包含的所有实体Ok看作超图中顶点集的一个部分Vk≠φ,并且ISk中实体共享相似的属性,查询日志中一个查询qj∈Q看作一条超边ej∈E(这反映了查询中tokens词在哪些实体中出现,因此查询与相关的每个实体相连),查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π),因此,水平索引分布问题可以归约为(λ,η)-平衡的超图划分问题,即Π中每个子顶点集Vk对应分配给索引节点ISk的实体集合Ok,每个Wk对应ISk的所有计算负载,每对顶点的相似性对应每对实体间的相似性,Γ(Π)对应查询Q涉及的总通信开销。具体来说,使用超图H=(V,E)表示用户查询集与水平划分中实体集之间的交互。在超图H中,每个实体oi代表一个顶点vi∈V,每个查询qj∈Q代表一条超边ej∈E,每个顶点vi的权重wi代表处理该实体oi的计算负载,另外,每个顶点记录一组它所包含tokens词的访问频率。
假定f(ti)为token词ti的访问频率,即查询日志中token词ti的频率,在查询处理中,影响计算负载的因素主要有实体大小及其访问频率,因此顶点vi的权重wi采用公式(6)进行度量。
其中表示每个实体O的平均tokens词个数。
图5演示了采用负载均衡与超图的水平划分索引的例子。其中,实体o1、o2和o3分布到索引节点IS1,实体o4、o5和o6分布到索引节点IS2,实体o7、o8、o9和o10分布到索引节点IS3,使得索引节点IS1、IS2和IS3的负载均衡并且每个索引节点内部任意两个实体间的相似性均较高。按照这种分布,查询{q1,q2,q3}仅被索引节点IS1处理,查询{q4,q5,q6}仅被索引节点IS2处理,查询{q7,q8}仅被索引节点IS3处理,而查询q9被索引节点IS1和IS2,查询q10被索引节点IS1、IS2和IS3处理,因此总通信代价Γ(Π)=8×0+1×2+1×3=5。此外,本部分也是采用上一节描述的超图划分算法来划分超图,就不再赘述。
3.3多维索引:
先介绍了二维划分索引框架(2D-IL),它结合基于负载均衡与超图划分的垂直划分索引和基于负载均衡与超图划分的水平划分索引。然后从吞吐量和容错率角度出发,扩展2D-IL为三维索引框架(MIL)。
(1)二维划分索引框架
图6展示了二维索引架构。与只在一个节点构建的集中式PIL索引不同的是,我们的二维索引分布在不同索引节点中,因此每个索引节点中索引花费对存储空间显著降低。也就是说,二维索引逻辑上可以看成一个N×M的集群。在行维度,数据空间索引可以看成是一个基于负载均衡与超图划分的水平划分索引,即按照实体级划分。在列维度,数据空间索引可以看成是一个基于负载均衡与超图划分的垂直划分索引,即按照聚合tokens词划分。每个索引节点对应tokens词压缩后的倒排索引。例如,在第i行和第j列中的索引节点ISij中(如黑色实心点所示),它包含tokens词{a,b,...,f}和实体{o30,...o50},其对应的倒排索引格式如虚线箭头指向的倒排索引。即,在索引节点ISij中,其索引词汇为原始词汇的一个子集{a,b,...,f},这些词汇在垂直划分后形成三个聚合tokens词(“abc”、“de”和“f”),这些聚合tokens词对应实体集都同属于一个水平划分。
当提交一个查询时,可以根据涉及的聚合tokens词和计算的相关性分数较高的划分(见定理1和定理2)迅速定位到较少数量的索引节点,然后并行访问这些索引节点。因此本索引的优点如下:(1)各个索引节点负载均衡;(2)查询处理时,通信开销较低;(3)剪枝率高,从而提高了查询性能。
(2)三维划分索引框架
在查询处理过程中,当某个索引节点(尤其是查询涉及的索引节点)出现故障时,则可能影响top-k查询应答;另一方面,随着用户查询的并发数的激增,查询的吞吐量就构成一个重要瓶颈。为此,通过为二维索引中每个索引节点ISij(即,图6中对应Ni和Mj的单元格)复制D份,从而构成三维立方体的多维索引,如图7所示。注意,在索引节点ISij的每个副本之间保证通信,旨在防止该索引节点ISij失败时导致没有可用的查询结果的情况。
图7展示了三维索引架构。三维索引逻辑上可以看成一个N×M×D的3D立方体,其中D是复制的份数。例如,在索引号(Ni,Mj,Dk)对应的单元格中,黑色点表示索引节点ISijk涉及索引token词{a,b,...,f}、实体{o30,...o50}并且是第k个备份。
当一个查询Q=t1∧t2∧...∧tn被提交时,其处理流程大致如下:(1)找出涉及token词{t1,t2,...,tn}的列集合{Mj};(2)对于这些列集合{Mj},根据定理1和2以及公式(1)计算它们中行划分与查询的相似性,并选择出相似性分数大于某个阈值的行集合{Nj};(3)在(Nj,Mj)对应的备份中,随机选择一个立方体;(4)在确定所有的小立方体后(比如,(Ni,Mj,Dk)对应的立方体),把相应的子查询并发地发送到对应的索引节点ISijk中,进行并发查询;如果当前索引节点ISijk失败(比如故障因素),那么利用通信机制把子查询发送随机发送到其它副本的索引节点中,比如(Ni,Mj,Dl)对应的索引节点ISijl;(5)最后把所有并发查询结果进行综合(例如,进行交运算)并返回给用户。
四、实验结果与分析
首先介绍实验设置情况,然后从效果、性能和可扩展性方面评估本发明方法(包含基于负载均衡与超图划分的垂直划分索引(HP-VIL)、基于负载均衡与超图划分的水平划分索引(HP-HIL)和多维索引(MIL))与基准索引方法(包含垂直划分索引(VIL)、水平划分索引(HIL)和混合划分索引(PIL))。
4.1实验设置
本实验使用来自2015年3月release版本的DBLP数据作为实验所需的基本数据集,抽取的实体类别包括论文、博士论文、作者、会议、期刊、大学机构,数量大小总共大约4.3M。抽取原则如下:(1)论文实体来自于inproceedings记录或者key键以“journals”为前缀的article记录;(2)博士论文实体来自于phdthesis记录;(3)作者实体来自于WWW记录或者author标签;(4)会议实体来自于key键以“conf”为前缀的inproceedings记录中的booktitle标签;(5)期刊实体来自于journal标签或者key键以“journals”为前缀的inproceedings记录中的booktitle标签;(6)大学机构来自于school标签。
由于DBLP数据集没有提供相应的查询日志,因此,本章从预处理后的DBLP数据集中人工合成了具有偏斜特性的用户查询日志。它包含10万条查询,其中前6万条用于构建超图,构建时采用kPaToH超图划分工具(负载系数设置为5%,相似性阈值设置为0.5);中间2万条用于唤醒系统查询;最后2万条用于真实性能评估。实验过程中考虑6种不同的并发查询等级(即,并发查询数m=1,8,16,32,48,64)。垂直划分中索引节点数默认设置为8,水平划分中索引节点数默认设置为8,复制份数设置为3。
实验环境设置如下:采用9个节点、网络互连的PC集群。其中一台为中央代理器(Broker,不存储划分索引),其它为客户机(Worker)。每台PC主机的配置为Intel(R)Core(TM)i5-4570CPU 3.20GHz,内存容量为4G,硬盘容量为1TB,操作系统为WIN 7(64bit),算法均在Java语言下实现。
4.2效果评估
(1)划分质量
实验1评估了本文多维索引MIL与基准索引方法的混合划分索引PIL的划分质量情况。由于基准测试方法PIL是分配在一个索引节点中,因此,为公平起见,本文对PIL划分采用顺序循环分配策略,从而分配给所有索引节点。图8横坐标表示查询处理过程中涉及的索引节点数量(Broker节点除外),纵坐标表示涉及某索引节点数的查询比例。从图8可知,在减少查询涉及的索引节点数量方面,本方法MIL明显优于PIL方法。例如,在MIL方法中,大约25%的查询只被1个索引节点处理,而PIL方法只有14%。主要原因是:本方法划分的优化目标是最小化通信开销(换句话说,查询涉及的索引节点数量)。这表明本方法能够有效地提高共同访问的倒排列表集存储在同一索引节点的概率。
(2)容灾能力
实验2评估了本文多维索引MIL与不采用复制策略的二维索引(2D-IL)的容灾能力情况。图9中横坐标表示索引节点的故障率,纵坐标表示top-k查询平均准确率,从图9中可知,本方法的容灾能力显著优于二维索引(2D-IL)方法。其原因是MIL中一个维度就是索引复制,这样即使某(些)索引节点出现故障,也可以通过其备份节点的索引返回局部查询结果,从而不影响全局查询结果。
4.3性能评估:评估性能的标准是查询响应时间和吞吐量。
(1)频繁K项集大小对性能的影响
实验3评估了频繁K项集大小对两种垂直划分(HP-VIL法与VIL法)性能的影响。为公平起见,HP-VIL法以划分数为1的情况作为比较。图10横坐标表示频繁K项集的K值大小(从1到5),纵坐标表示查询的平均查询响应时间。理想情况下,聚合tokens词压缩效果好的索引方法花费的平均查询响应时间更少。从图10可知,在K值为1时,两种方法性能一样,这是因为均没有进行索引tokens词的压缩;而随着K值变大,HP-VIL法明显优于VIL方法,这是因为除了考虑实体中频繁的tokens词外(如VIL法),本方法HP-VIL还考虑了查询日志中频繁出现在倒排列表的tokens词。另外,随着K值进一步变大,两种方法的效果可能反而下降。这是因为存在一些只包含聚合tokens词中的部分tokens词的查询,这导致一些I/O开销用于读取剩余部分tokens词信息。
(2)不同并发查询数量对性能的影响
实验4评估了不同并发查询数量对性能的影响。性能主要从查询响应时间和吞吐量来度量,实验中频繁项集K为4,垂直划分与水平划分的索引节点数均设置为8,索引复制份数设置为3。图11(a)展示了在不同的并发查询数量下本文方法(包括HP-VIL、HP-HIL与MIL)与基准测试方法(VIL、HIL与PIL)的平均查询响应时间对比情况。随着并发查询数量的增加,平均响应时间不断增加,这主要是因为:并发查询数量的增加导致索引节点处理的查询数量大幅增加。从列方向看,在相同并发查询数下,(1)HP-VIL方法优于VIL方法,这主要是由于本文在聚合tokens词时考虑了查询日志的信息以及索引节点间负载均衡,还使得查询通信开销最小化;(2)HP-HIL方法优于HIL方法,这主要是由于本文在划分实体时不仅考虑实体间相似性,还考虑划分的负载均衡问题,从而剪枝了大量潜在不相关的候选实体;(3)MIL方法优于PIL方法,这主要是由于一方面在划分时候就致力于负载均衡,另一方面通过索引复制的策略,进一步加强负载均衡且降低索引节点的负载量。图11(b)展示了在不同的并发查询数量下本文方法(包括HP-VIL、HP-HIL与MIL)与基准测试方法(VIL、HIL与PIL)的吞吐量对比情况。从图11(b)中可知,(1)在并发查询数为8时,吞吐量显著增加,但随着并发查询数进一步增加,吞吐量趋于平稳状态。这主要是因为:提交的查询数还没有达到索引节点的硬盘访问上限,而并发查询数从16开始,每个索引节点处理的查询太多,从而超过硬盘访问上限;(2)HP-HIL方法明显优于HIL方法。这是因为本文方法划分使得各索引节点负载较均衡;(3)HP-VIL方法优于VIL方法。原因在于:由于在基准测试方法中列表大小及其访问频率的高度偏斜,索引节点负载不均衡;(4)MIL方法明显优于PIL方法。本方法的优化目标是负载均衡,提高了索引节点的利用率。此外,二维索引的复制增加了系统整体处理能力。
(3)不同索引节点数量对性能的影响
实验5评估了不同索引节点数量对性能的影响。主要从查询响应时间和吞吐量来度量,实验中频繁项集K设置为4,并发查询数设置为64。从图12可知,随着索引节点数量的增加,本方法优于基准测试方法,并且随着索引节点数的增加,性能更佳。主要原因是本文方法划分后的索引节点负载相对较均衡。另外,随着索引节点数增加,每个索引节点的负载降低。
4.4扩展性评估
实验6评估了不同数据集大小对性能影响。本实验采用top-10查询的响应时间进行度量。图13中横坐标表示不同数据集大小(百万个实体为单位),纵坐标表示top-10的查询响应时间。从图13中可知,本文方法在不同数据集大小方面展现了较好的扩展性。
Claims (4)
1.一种基于负载均衡和查询日志的数据空间多维索引方法,所述方法将倒排索引分布到不同的索引节点中,使得各个索引节点保持负载均衡,其特征在于:所述方法为:
结合基于负载均衡与超图划分的垂直划分索引和基于负载均衡与超图划分的水平划分索引得到二维划分索引框架(2D-IL),从吞吐量和容错率角度出发,扩展二维划分索引框架(2D-IL)为三维索引框架(MIL),基于三维索引框架(MIL)实现数据空间多维索引方法。
2.根据权利要求1所述的一种基于负载均衡和查询日志的数据空间多维索引方法,其特征在于:所述方法的具实现过程为:
步骤一、获得二维划分索引框架(2D-IL)的过程为:
步骤一一、确定基于负载均衡与超图划分的垂直划分索引
确定垂直划分索引框架
使用查询日志和实体集中tokens偏斜信息来压缩数据空间倒排索引,形成一组聚合后的tokens词;然后,按照负载均衡和超图划分把所述tokens词的倒排列表均衡地分布到相应的索引节点中;
基于负载均衡与超图划分的垂直划分
1)、聚合tokens词的选取:
通过聚合频繁地共同出现在实体或者查询日志中的tokens词来压缩索引;
2)、给出垂直索引分布方式
所述垂直索引分布方式基于聚合tokens词,把压缩后的倒排索引分布到相应的索引节点集中,使得保持各个索引节点负载均衡,同时最小化索引节点与索引服务器的通信开销;
步骤一二、确定基于负载均衡与超图划分的水平划分索引
水平划分索引框架的确定:按照负载均衡和超图划分把实体集的倒排列表分布到相应的索引节点中;
水平划分:基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销;
步骤一三、获得二维划分索引框架:
使二维索引分布在不同索引节点中,使每个索引节点中索引花费对存储空间显著降低,二维索引逻辑上可以看成一个N×M的集群,
数据空间索引在行维度上是一个基于负载均衡与超图划分的水平划分索引,按照实体级划分;
数据空间索引在列维度上是一个基于负载均衡与超图划分的垂直划分索引,按照聚合tokens词划分;
每个索引节点对应tokens词压缩后的倒排索引;
在第i行和第j列中的索引节点ISij中,包含tokens词{a,b,...,f}和实体{o30,...o50},其对应的倒排索引格式如虚线箭头指向的倒排索引;在索引节点ISij中,其索引词汇为原始词汇的一个子集{a,b,...,f},这些词汇在垂直划分后形成三个聚合tokens词,聚合tokens词对应实体集都同属于一个水平划分;
步骤二、扩展二维划分索引框架(2D-IL)为三维索引框架(MIL):
通过为二维索引中每个索引节点ISij复制D份,构成三维立方体的多维索引,在索引节点ISij的每个副本之间保证通信,防止该索引节点ISij失败时导致没有可用的查询结果的情况;
步骤三、利用三维索引框架(MIL)实现数据空间多维索引:
所述三维索引逻辑上可以看成一个N×M×D的3D立方体,其中D是复制的份数;
在索引号(Ni,Mj,Dk)对应的单元格中,黑色点表示索引节点ISijk涉及索引token词{a,b,...,f}、实体{o30,...o50}并且是第k个备份;
当一个查询Q=t1∧t2∧...∧tn被提交时,其处理流程为:(1)找出涉及token词{t1,t2,...,tn}的列集合{Mj};(2)对于这些列集合{Mj},选择出相似性分数大于某个阈值的行集合{Nj};(3)在(Nj,Mj)对应的备份中,随机选择一个立方体;(4)在确定所有的小立方体后,即(Ni,Mj,Dk)对应的立方体,把相应的子查询并发地发送到对应的索引节点ISijk中,进行并发查询;如果当前索引节点ISijk失败,利用通信机制把子查询发送随机发送到其它副本的索引节点中ISijl;(5)最后把所有并发查询结果进行综合并返回给用户。
3.根据权利要求1所述的一种基于负载均衡和查询日志的数据空间多维索引方法,其特征在于:步骤一一中,基于负载均衡与超图划分的垂直划分过程中,
聚合tokens词的选取具体为:
利用TokensSelection算法选取聚合tokens词:
TokensSelection(TDB,ξ,T)
输入:TDB是一个事务数据库,其中每个事务为一个实体或者查询日志中一个查询,事务对应的项集为实体包含的tokens词集合或者查询包含的tokens词集合,ξ是最小支持度;
输出:T为tokens词的划分,初始为空;
首先扫描事务数据库TDB,寻找非频繁1-项集NF和频繁1-项集F,并对F按照支持度降序进行排序;
NF中每个token词单独作为一个垂直划分列表加入到集合T中;接下来,对于F来说,再一次扫描TDB,构建FP树,并对F中每个tokenk词分别调用FP-growth(FP树,tokenk)算法,从而产生所有的频繁项集,记为freq_set;
为保证频繁项集互不相交,按照频繁项集对频繁项数量和支持度顺序对freq_set进行降序排序;最后进行不断迭代,直至freq_set为空,在每次迭代中,先取出第一个频繁项集top,并把top作为一个垂直划分加入到集合T中,同时从freq_set中移除top,然后从freq_set中移除与top相交不为空对所有频繁项集;
给出垂直索引分布方式,具体为:
给定一个查询集合Q={q1,q2,...,q|Q|}、词汇表T={t1,t2,...,t|T|}、索引节点集合IS={IS1,IS2,...,ISm}和压缩后的倒排索引其中是聚合tokens并且和访问频率freqi关联,Li是ti对应的倒排列表,每个聚合包括一个或多个ti,不同的交集为空且全体并集为T;
定义超图:一个超图H=(V,E)是由顶点集合V和超边集合E组成,其中每条超边ej∈E与V中顶点子集相连,每个顶点vi∈V具有一个权重wi;
每个顶点表示聚合tokens词,其权重为访问该聚合tokens词对应倒排列表的开销,每条超边表示查询中tokens词在哪些聚合tokens词中出现,即一个查询与相应的每一个进行连接;
Π={V1,V2,...,Vm}是一个m路的超图划分当且仅当每个部分Vk≠φ、Vk I Vl=φ且
超图划分Π是λ-平衡当且仅当对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重;
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1;
超边ej∈E与划分Π的连接度即与超边相连接的部分数;m路超图划分问题可以定义为寻找一个λ-平衡的超图划分,使得最小;
垂直索引划分的目标是:利用查找日志和实体的偏斜信息,生成一组互不相交的聚合tokens词,然后利用用户查询日志中访问倒排列表信息均衡地把聚合tokens词对应的倒排列表分布到不同索引节点中,并使得通信开销最小;利用查询与聚合tokens词的交互信息,按照处理聚合token词的计算负载情况,把所有聚合tokens词均衡地划分到不同对索引节点中,并使得查询涉及的索引节点数量最小;
把聚合tokens词看作超图中顶点,单个索引节点ISk中包含的所有聚合token词看作超图中顶点集的一个部分Vk≠φ,查询日志中一个查询qj∈Q看作一条超边ej∈E,查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π);
垂直索引分布问题归约为λ-平衡的超图划分问题,即Π中每个部分Vk对应分配给索引节点ISk的聚合tokens集合Tk,每个Wk对应ISk的所有计算负载,Γ(Π)对应查询Q涉及的总通信开销。
4.根据权利要求3所述的一种基于负载均衡和查询日志的数据空间多维索引方法,其特征在于:步骤一二中,确定基于负载均衡与超图划分的水平划分索引的过程中,
水平划分的过程为:
给定一个查询集合Q={q1,q2,...,q|Q|}、实体集合O={o1,o2,...,o|O|}、实体间的相似性矩阵A={sim(oi,oj)|1≤i,j≤|O|}和索引节点集合IS={IS1,IS2,...,ISn},其中sim(oi,oj)表示两个实体的相似性,每个查询
定义(λ,η)-平衡且相似的超图划分,超图划分Π是(λ,η)-平衡且相似,当且仅当,
(1)对每一个部分Vk∈Π,Wk≤(1+λ)Wavg,其中权重Wavg是所有Wk的平均权重;
(2)对每一个部分Vk∈Π,任意两个顶点vi,vj∈Vk,sim(vi,vj)≥η,其中sim(vi,vj)表示两个顶点的相似性;
对于超图来说,如果超边ej∈E与部分Vk中一(多)个顶点相连,则称超边ej∈E与部分Vk的相连,其连通度ψ(ej,Vk)=1;超边ej∈E与划分Π的连接度即与超边相连接的部分数;m路超图划分问题也可以定义为寻找出一个(λ,η)-平衡且相似的超图划分,使得最小;
水平索引划分的目标是:基于查询日志的访问模式信息与超图理论,把实体划分到不同的索引节点中,使得各个索引节点负载保持均衡以及索引节点内部任意两个实体的相似性较高,同时最小化索引节点与索引服务器的通信开销;
把每个实体oi词看作超图中顶点vi∈V,其权重为处理该实体oi的计算负载wi,单个索引节点ISk中包含的所有实体Ok看作超图中顶点集的一个部分Vk≠φ,并且ISk中实体共享相似的属性,查询日志中一个查询qj∈Q看作一条超边ej∈E,查询日志中所有查询访问索引节点ISk中倒排列表的开销看作超图划分Π中部分Vk的总权重Wk,所有查询涉及的所有分布式节点数量看作超图划分Π的总通信开销Γ(Π);
水平索引分布问题可以归约为(λ,η)-平衡的超图划分问题,即Π中每个子顶点集Vk对应分配给索引节点ISk的实体集合Ok,每个Wk对应ISk的所有计算负载,每对顶点的相似性对应每对实体间的相似性,Γ(Π)对应查询Q涉及的总通信开销;具体来说,使用超图H=(V,E)表示用户查询集与水平划分中实体集之间的交互;在超图H中,每个实体oi代表一个顶点vi∈V,每个查询qj∈Q代表一条超边ej∈E,每个顶点vi的权重wi代表处理该实体oi的计算负载,每个顶点记录一组它所包含tokens词的访问频率;
假定f(ti)为token词ti的访问频率,即查询日志中token词ti的频率,在查询处理中,顶点vi的权重wi采用下式进行度量:
其中表示每个实体O的平均tokens词个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610422994.5A CN106095951B (zh) | 2016-06-13 | 2016-06-13 | 基于负载均衡和查询日志的数据空间多维索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610422994.5A CN106095951B (zh) | 2016-06-13 | 2016-06-13 | 基于负载均衡和查询日志的数据空间多维索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095951A true CN106095951A (zh) | 2016-11-09 |
CN106095951B CN106095951B (zh) | 2019-04-23 |
Family
ID=57847023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610422994.5A Expired - Fee Related CN106095951B (zh) | 2016-06-13 | 2016-06-13 | 基于负载均衡和查询日志的数据空间多维索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095951B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239571A (zh) * | 2017-06-28 | 2017-10-10 | 浪潮金融信息技术有限公司 | 基于多维化数据空间技术的索引构建方法 |
CN108228607A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 基于连通度的最大频繁项集挖掘方法 |
CN108256028A (zh) * | 2018-01-11 | 2018-07-06 | 北京服装学院 | 一种云计算环境中用于近似查询的多维动态采样方法 |
CN108304487A (zh) * | 2018-01-02 | 2018-07-20 | 吉旗(成都)科技有限公司 | 一种优化搜索引擎多索引的查询方法 |
CN108664580A (zh) * | 2018-05-04 | 2018-10-16 | 西安邮电大学 | 一种MongoDB数据库中细粒度的负载均衡方法及系统 |
CN112148359A (zh) * | 2020-10-10 | 2020-12-29 | 中国人民解放军国防科技大学 | 一种基于子块过滤的分布式代码克隆检测与搜索方法、系统及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065672A1 (en) * | 2006-09-08 | 2008-03-13 | Oracle International Corporation | Insertion rate aware b-tree |
US20100114905A1 (en) * | 2008-11-03 | 2010-05-06 | Elvin Slavik | Method, System, and Product for Managing Spatial Data in a Database |
CN102436513A (zh) * | 2012-01-18 | 2012-05-02 | 中国电子科技集团公司第十五研究所 | 分布式检索方法和系统 |
CN104809168A (zh) * | 2015-04-06 | 2015-07-29 | 华中科技大学 | 超大规模rdf图数据的划分与并行分布处理方法 |
CN105022837A (zh) * | 2015-08-17 | 2015-11-04 | 杭州史莱姆德泽机器人科技有限公司 | 云端多模场景地图分布式存储结构 |
CN105069094A (zh) * | 2015-08-06 | 2015-11-18 | 苏州大学 | 一种基于语义理解的空间关键字索引方法 |
-
2016
- 2016-06-13 CN CN201610422994.5A patent/CN106095951B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065672A1 (en) * | 2006-09-08 | 2008-03-13 | Oracle International Corporation | Insertion rate aware b-tree |
US20100114905A1 (en) * | 2008-11-03 | 2010-05-06 | Elvin Slavik | Method, System, and Product for Managing Spatial Data in a Database |
CN102436513A (zh) * | 2012-01-18 | 2012-05-02 | 中国电子科技集团公司第十五研究所 | 分布式检索方法和系统 |
CN104809168A (zh) * | 2015-04-06 | 2015-07-29 | 华中科技大学 | 超大规模rdf图数据的划分与并行分布处理方法 |
CN105069094A (zh) * | 2015-08-06 | 2015-11-18 | 苏州大学 | 一种基于语义理解的空间关键字索引方法 |
CN105022837A (zh) * | 2015-08-17 | 2015-11-04 | 杭州史莱姆德泽机器人科技有限公司 | 云端多模场景地图分布式存储结构 |
Non-Patent Citations (1)
Title |
---|
刘琳婷: "一种分布式空间数据库引擎的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228607A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 基于连通度的最大频繁项集挖掘方法 |
CN108228607B (zh) * | 2016-12-14 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 基于连通度的最大频繁项集挖掘方法 |
CN107239571A (zh) * | 2017-06-28 | 2017-10-10 | 浪潮金融信息技术有限公司 | 基于多维化数据空间技术的索引构建方法 |
CN107239571B (zh) * | 2017-06-28 | 2021-04-09 | 浪潮金融信息技术有限公司 | 基于多维化数据空间技术的索引构建方法 |
CN108304487A (zh) * | 2018-01-02 | 2018-07-20 | 吉旗(成都)科技有限公司 | 一种优化搜索引擎多索引的查询方法 |
CN108256028A (zh) * | 2018-01-11 | 2018-07-06 | 北京服装学院 | 一种云计算环境中用于近似查询的多维动态采样方法 |
CN108256028B (zh) * | 2018-01-11 | 2021-09-28 | 北京服装学院 | 一种云计算环境中用于近似查询的多维动态采样方法 |
CN108664580A (zh) * | 2018-05-04 | 2018-10-16 | 西安邮电大学 | 一种MongoDB数据库中细粒度的负载均衡方法及系统 |
CN112148359A (zh) * | 2020-10-10 | 2020-12-29 | 中国人民解放军国防科技大学 | 一种基于子块过滤的分布式代码克隆检测与搜索方法、系统及介质 |
CN112148359B (zh) * | 2020-10-10 | 2022-07-05 | 中国人民解放军国防科技大学 | 一种基于子块过滤的分布式代码克隆检测与搜索方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106095951B (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095951B (zh) | 基于负载均衡和查询日志的数据空间多维索引方法 | |
AL-Zawaidah et al. | An improved algorithm for mining association rules in large databases | |
Roshdi et al. | Information retrieval techniques and applications | |
Song et al. | K nearest neighbour joins for big data on mapreduce: a theoretical and experimental analysis | |
Queiroz-Sousa et al. | A review on OLAP technologies applied to information networks | |
CN110674318A (zh) | 一种基于引文网络社区发现的数据推荐方法 | |
Trabelsi et al. | Strubert: Structure-aware bert for table search and matching | |
Li et al. | Context-based diversification for keyword queries over XML data | |
Deshpande et al. | Efficient reverse skyline retrieval with arbitrary non-metric similarity measures | |
Silva et al. | MapReduce-based similarity join for metric spaces | |
Tseng | Mining frequent itemsets in large databases: The hierarchical partitioning approach | |
Yang et al. | A MapReduce approach for spatial co-location pattern mining via ordered-clique-growth | |
Yuan et al. | XML structural similarity search using MapReduce | |
Su et al. | Supporting correlation analysis on scientific datasets in parallel and distributed settings | |
Álvarez-García et al. | Compact and efficient representation of general graph databases | |
Sun et al. | A scalable and flexible basket analysis system for big transaction data in Spark | |
Li et al. | Mining association rules based on deep pruning strategies | |
Hooda et al. | Distributed synthetic minority oversampling technique | |
Tao et al. | Range aggregation with set selection | |
Tian et al. | An efficient processing of k-dominant skyline query in mapreduce | |
Zhang et al. | VMPSP: Efficient skyline computation using VMP-based space partitioning | |
Jiang et al. | Ranking in genealogy: search results fusion at ancestry | |
Li et al. | Evaluating spatial keyword queries under the mapreduce framework | |
Zhao et al. | Organizing structured deep web by clustering query interfaces link graph | |
Wang et al. | Efficient group-by reverse skyline computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190423 Termination date: 20200613 |